沒有開發經驗的程序員都具有這四個特征
程序員就是從實踐中學習,在學習的過程中,你難免會犯錯誤,但是這完全沒有關系,只要你從錯誤中去學習總結,一定可以獲得經驗。
作為一個缺乏經驗的開發人員,你每天都會遇到各種各樣的問題,但是,你知道么,每一個缺乏經驗的程序員往往可以一眼就被看穿,因為這一類程序員通常具備以下特征:
非結構化代碼
編寫非結構化代碼是缺乏經驗的程序員最顯著的特征之一,因為在這個階段,他們關注的重點是,代碼能跑起來就行,作為開發人員,編寫代碼并使其工作只是工作中的一小部分。盡管缺乏經驗的開發者認為這是他們工作中最重要的部分。隨著你越來越有經驗,你會發現你大部分的工作是維護項目,而不是一直不斷地重復構建新項目。
一旦你開始意識到這一點,你將以一種完全不同的方式編寫代碼,這樣一來,你的代碼也會更易于維護和易于其他開發人員理解,如果沒有意識到這一點,你的代碼會帶來很多問題,例如可測試性。當你的目標只是讓代碼運行,大多數的代碼都沒有經過深思熟慮,你的代碼質量就會因此受到影響。這種類型的代碼通常看起來像過程性代碼,并不遵循諸如單一責任原則之類的編碼原則。一旦這樣的代碼進入維護階段,碰見它的程序員都會嫌棄。
強制調試
當缺乏經驗的開發人員遇到問題時,他們通常會開始強制調試——他們隨機修改代碼中的一些東西,企圖在沒找出實際問題原因的情況下就想把問題解決。顯然,這在大多數情況下都不起作用,很有可能通過這些隨機的改變,你只會引入更多的bug。你應該做的是收集更多關于問題的信息,而不是輔助調試。
在調試代碼時,有更好的方法。你要做的第一件事就是找出如何重現這個問題。在開始對代碼進行任何更改之前,請確保你知道如何做到這一點。打開日志文件(希望你已經有了日志文件)是調試的一個良好開端。看看你是否能找到一些有用的信息,引導你走向正確的方向。在開始修改代碼之前收集信息是很重要的,這樣你就可以了解到底是什么導致了錯誤。
一旦你找到了錯誤的原因并修復了它,也別著急,如果你真的想把事情做好,你這時候還應該編寫一個測試來修復,以保萬無一失。
過于關注技術
沒有經驗的開發者仍在學習他們的技術。因此,他們的重點主要是成為技術大師,其實這是沒錯的,因為如果你想成為一個偉大的開發人員,你需要掌握你的技術堆棧。但你需要關注的不僅僅是技術。
當你了解了技術堆棧的所有細節后,你不應該失去視線之外的業務。你的工作是為公司創造價值,還是花了太多時間在與公司無關的事情上,這是你一定要關注的問題,作為一名開發人員,不僅僅是對工作的技術方面感興趣,商業和經濟因素也是你工作存在的理由。
喜歡與眾不同
當你在一個團隊中工作時,你可以通過做一些與團隊其他成員不同的事情來嗅出缺乏經驗的開發人員。沒有經驗的開發者傾向于按照自己的方式做事,而不是按照別人的方式做事。有時這是無意的。沒有經驗的人不能認識到解決方案中的某些模式。為了與團隊中的其他人以同樣的方式做事,你可以查看所有創建的pull請求。你不必審查所有的問題,但要確保你了解其他開發人員是如何解決某些問題的。他們的解決方案和你的解決方案有什么區別,如果有區別,可以問問他們選擇這個解決方案的原因,以及他們是否考慮過別的解決方案。