新手開發(fā)者的四大特征:這些細節(jié)會“暴露”你欠缺經(jīng)驗
本文轉(zhuǎn)載自公眾號“讀芯術”(ID:AI_Discovery)。
“經(jīng)驗是最嚴厲的老師。它上來就把你考倒,爾后才授教于你。”奧斯卡·王爾德這句話用來形容新手程序員的生活很貼切。程序員要從實踐中學習。在實踐中,你會犯錯誤,但只要你能從錯誤中吸取教訓,就能獲得成長。
來回顧一下吧,你的哪些特征曾“透露”出這是一個新手。
結構混亂的代碼
新手開發(fā)人員編寫的代碼常常結構混亂,如果有輕量級結構就已經(jīng)很不錯了。而造成這點的原因在于他們過于關注代碼的運作,經(jīng)驗豐富的開發(fā)人員知道,作為一名開發(fā)者,你還有更多的工作要做。
編寫代碼并使其運作只是開發(fā)人員工作的一小部分,新手開發(fā)人員卻把它當成了重中之重。隨著經(jīng)驗的積累,你會意識到你的大部分工作是維護項目,而不是從頭開始構建新項目。意識到這一點之后,你將以完全不同的方式進行編碼。這會使代碼更容易維護,更易于其他開發(fā)人員理解。
如果沒有意識到這一點,就會出現(xiàn)函數(shù)堪比一篇文章大小的情況。很多問題也隨之而來,例如可測試性。你要如何測試堪比論文的函數(shù),而且它還要實現(xiàn)五個不同的功能?
如果只是想讓代碼運作起來,在大多數(shù)情況下,這樣的代碼都是沒有經(jīng)過深思熟慮的,代碼質(zhì)量會因此受到影響。這種類型的代碼通常看起來像過程代碼,不遵循諸如單一功能原則這樣的編碼原則。當進入維護階段,你就會意識到代碼質(zhì)量欠佳會帶來多大的問題。
圖源:unsplash
亂槍除錯
新手開發(fā)人員遇到問題時,常常會開始胡亂調(diào)試,想到哪里試哪里。在不知道實際問題是什么的情況下,隨機修改代碼中的一些內(nèi)容,希望瞎貓碰上死耗子,成功解決問題。
很明顯,這在大多數(shù)情況下是行不通的,這樣做只會引入更多的bug。開發(fā)人員應該做的不是胡亂調(diào)試,而是收集有關問題的更多信息。
首先要做的是找出重現(xiàn)問題的方法。在更改代碼之前收集信息是很重要的,這樣就可以了解到底是什么導致了bug。打開日志文件是調(diào)試之旅的一個良好開端??纯茨芊裾业揭恍┯杏玫男畔ⅲ敢阏业秸_的方向。
找到了bug的出處并修復之后還不算完,如果真的想把事情做好,至少應該為修復程序編寫一個測試,以便在未來出現(xiàn)問題的時候得到保護。
過于關注技術
新手開發(fā)人員仍在學習技術的階段。因此,他們關注的重點通常是掌握自己的技術棧。這也說得通,因為如果你想成為一個出色的開發(fā)人員,就需要掌握相關技術棧。但是開發(fā)人員應該關注的不僅僅是技術。
當了解了技術棧的所有細節(jié)后,不應該把業(yè)務拋在腦后。因為這就是你做這份工作的原因。你是在為公司創(chuàng)造價值,還是在一些與公司無關的事情上花費了太多的時間?這是一個應該一直問自己的重要問題。
作為開發(fā)人員,你不能僅僅專注于工作的技術方面,還需要牢記業(yè)務和經(jīng)濟因素才是評判你工作價值的關鍵因素。
做事的差別
團隊工作中的一些小細節(jié)也會“暴露”新手開發(fā)人員,他們常常喜歡用自己的方式做事,而不是和團隊中的其他人保持一致。有時這種情況是無意中發(fā)生的,新手開發(fā)人員不能認識到解決方案中的某些模式。
為了與團隊成員統(tǒng)一步調(diào),你可以查看創(chuàng)建好的所有pull請求。不必全部都看,只要確保了解其他開發(fā)人員是如何解決某些問題的就可以了。他們的解決方案和你解決問題的方式是否相似?如果不是,問問他們?yōu)槭裁催x擇這種解決方案,以及是否考慮過你的解決方案。
別擔心,每個優(yōu)秀的程序員都是從菜鳥時期走過來的。轉(zhuǎn)變思路,汲取經(jīng)驗,你離告別新手期并不太遠。