軟件行業的工作經驗和你從事這個行業的工作年限直接相關。這句話在某種程度上是對的,但是你從事這項工作的年限,并不一定代表你獲得了相同年限的工作經驗,正如一句話所說:“我們以為我們是工作了十年,其實卻只有一年的工作經驗,只不過又重復用了九年”。
根據開發人員的某些習慣,可以非常明顯地分辨出誰更專業,誰更業余。讓我們深入剖析下業余程序開發人員的 7 種表現,每個程序開發人員都應該引以為戒,這些錯誤會阻礙我們的職業發展。
一次性提交大量代碼
回憶下,你是否碰到過一次性提交大量代碼的人,你都不想給他做代碼評審。是的,不專業的開發人員就會這樣做。他們會在一次代碼評審請求中包含多個模塊的修改,而且會催促你優先評審他們的代碼。是啊,能不急嗎,排到后邊,還需要解決代碼沖突的問題。這個問題在很多高級開發工程師中也存在,他們在功能開發期間不做任何提交,只有在功能徹底完工后,才會提交所有修改,于是代碼評審中的任何意見都會引起大量的修改。
你能做什么:
? 進行小的代碼提交。一個好的做法是:每個工作日都進行代碼提交。
? 不要提交沒有編譯或者會導致構建失敗的代碼。
代碼寫的很爛
缺乏經驗的開發人員寫不出漂亮的代碼,他們寫出的代碼會很混亂,而且分布在代碼庫的各個部分。
當你嘗試閱讀這類代碼時,會感覺自己身處一座迷宮之中。你會逐漸忘記自己是從什么地方開始的,要尋找什么以及這段代碼完成了什么功能。
你能做什么:
? 編寫代碼之前,對你要實現的功能有個清晰的了解。為了清楚地理解需求,你需要盡量多問問題。
? 讓你的代碼簡潔而優雅。其他團隊成員可以讀懂代碼并理解它打算做什么。
同時開展多項工作
缺乏經驗的開發人員不知道什么時候開始一項任務、如何推進、什么時候結束。他們試圖并行處理多項任務。他們不知道如何將一項大任務分解為小的模塊,從而減輕實現的難度。
當他們收到一項任務時,并不是第一時間和上級確認需求,而是立刻就開始編程,而且在做任務期間,也不會和上級就任務進度進行溝通。只有當任務完成時,他們才會向你反饋。到那個時候,你只能祈禱他們完成的功能就是你想要的。
你能做什么:
? 專注完成小的任務。將收到的任務分解為小塊,明確需求的優先級,一小塊一小塊地完成。
? 領取一項任務,完成后再開始新的任務。
不能從之前的錯誤中學到經驗
我一直認為,對于軟件開發人員,反饋機制是一個很有效的工具。來自他人的反饋,會讓我們明白自己的短板是什么以及如何去改進。一個聰明的開發人員明白如何借助他人反饋來促進自己的成長。
根據一個開發人員對建設性意見的反應,你可以判斷出他是否缺乏經驗。缺乏經驗的開發人員不接受任何建設性的建議,甚至代碼評審中的評論,他都會認為是對他個人的一種攻擊。
你能做什么:
? 對每個反饋保持積極的態度。對于每個反饋,你可以選擇是接受還是拒絕,但拒絕之前要保持心平氣和的態度。
? 從錯誤中學習,沒有人能永遠正確,保持終身學習才能讓自己持續強大。
盲目追逐技術潮流
開發人員缺乏經驗的另一個表現是面對技術潮流的態度。你會發現他們總是在談論技術潮流,當有一個新的潮流出現時,他們會立刻丟棄原來的潮流,投入新的懷抱。
缺乏經驗的開發人員總是在學習教程。毫無疑問,教程是很有用的學習工具,但是,不進行任何實踐而只是按照教程一步步操作無疑是浪費時間。它會讓你虛幻地覺得自己好像都掌握了,但是知識是否掌握了,需要通過真實的項目進行檢驗。
你能做什么:
? 花費時間和精力學習那些能在工作中或者實際項目中真正用到的技術。
? 從教程中學習并及時練習,相對于新手教程,自己實現一個功能能學到更多的東西。
總結
缺乏經驗的開發人員會因為自己的效率低下進而降低整個團隊的效率。他對待自己工作的錯誤態度,會讓其在職業發展中錯失很多機會。
了解并避免這種錯誤的態度和工作方式,是聰明人的做法。如果你不幸染上了這些壞習慣,隨著時間的推移,你會越來越難以擺脫。