“經(jīng)驗(yàn)是最嚴(yán)厲的老師。它上來就把你考倒,爾后才授教于你。”奧斯卡·王爾德這句話用來形容新手程序員的生活很貼切。程序員要從實(shí)踐中學(xué)習(xí)。在實(shí)踐中,你會犯錯(cuò)誤,但只要你能從錯(cuò)誤中吸取教訓(xùn),就能獲得成長。
來回顧一下吧,你的哪些特征曾“透露”出這是一個(gè)新手。
結(jié)構(gòu)混亂的代碼
新手開發(fā)人員編寫的代碼常常結(jié)構(gòu)混亂,如果有輕量級結(jié)構(gòu)就已經(jīng)很不錯(cuò)了。而造成這點(diǎn)的原因在于他們過于關(guān)注代碼的運(yùn)作,經(jīng)驗(yàn)豐富的開發(fā)人員知道,作為一名開發(fā)者,你還有更多的工作要做。
編寫代碼并使其運(yùn)作只是開發(fā)人員工作的一小部分,新手開發(fā)人員卻把它當(dāng)成了重中之重。隨著經(jīng)驗(yàn)的積累,你會意識到你的大部分工作是維護(hù)項(xiàng)目,而不是從頭開始構(gòu)建新項(xiàng)目。意識到這一點(diǎn)之后,你將以完全不同的方式進(jìn)行編碼。這會使代碼更容易維護(hù),更易于其他開發(fā)人員理解。
如果沒有意識到這一點(diǎn),就會出現(xiàn)函數(shù)堪比一篇文章大小的情況。很多問題也隨之而來,例如可測試性。你要如何測試堪比論文的函數(shù),而且它還要實(shí)現(xiàn)五個(gè)不同的功能?
如果只是想讓代碼運(yùn)作起來,在大多數(shù)情況下,這樣的代碼都是沒有經(jīng)過深思熟慮的,代碼質(zhì)量會因此受到影響。這種類型的代碼通常看起來像過程代碼,不遵循諸如單一功能原則這樣的編碼原則。當(dāng)進(jìn)入維護(hù)階段,你就會意識到代碼質(zhì)量欠佳會帶來多大的問題。
亂槍除錯(cuò)
新手開發(fā)人員遇到問題時(shí),常常會開始胡亂調(diào)試,想到哪里試哪里。在不知道實(shí)際問題是什么的情況下,隨機(jī)修改代碼中的一些內(nèi)容,希望瞎貓碰上死耗子,成功解決問題。
很明顯,這在大多數(shù)情況下是行不通的,這樣做只會引入更多的bug。開發(fā)人員應(yīng)該做的不是胡亂調(diào)試,而是收集有關(guān)問題的更多信息。
首先要做的是找出重現(xiàn)問題的方法。在更改代碼之前收集信息是很重要的,這樣就可以了解到底是什么導(dǎo)致了bug。打開日志文件是調(diào)試之旅的一個(gè)良好開端。看看能否找到一些有用的信息,指引你找到正確的方向。
找到了bug的出處并修復(fù)之后還不算完,如果真的想把事情做好,至少應(yīng)該為修復(fù)程序編寫一個(gè)測試,以便在未來出現(xiàn)問題的時(shí)候得到保護(hù)。
過于關(guān)注技術(shù)
新手開發(fā)人員仍在學(xué)習(xí)技術(shù)的階段。因此,他們關(guān)注的重點(diǎn)通常是掌握自己的技術(shù)棧。這也說得通,因?yàn)槿绻阆氤蔀橐粋€(gè)出色的開發(fā)人員,就需要掌握相關(guān)技術(shù)棧。但是開發(fā)人員應(yīng)該關(guān)注的不僅僅是技術(shù)。
當(dāng)了解了技術(shù)棧的所有細(xì)節(jié)后,不應(yīng)該把業(yè)務(wù)拋在腦后。因?yàn)檫@就是你做這份工作的原因。你是在為公司創(chuàng)造價(jià)值,還是在一些與公司無關(guān)的事情上花費(fèi)了太多的時(shí)間?這是一個(gè)應(yīng)該一直問自己的重要問題。
作為開發(fā)人員,你不能僅僅專注于工作的技術(shù)方面,還需要牢記業(yè)務(wù)和經(jīng)濟(jì)因素才是評判你工作價(jià)值的關(guān)鍵因素。
做事的差別
團(tuán)隊(duì)工作中的一些小細(xì)節(jié)也會“暴露”新手開發(fā)人員,他們常常喜歡用自己的方式做事,而不是和團(tuán)隊(duì)中的其他人保持一致。有時(shí)這種情況是無意中發(fā)生的,新手開發(fā)人員不能認(rèn)識到解決方案中的某些模式。
為了與團(tuán)隊(duì)成員統(tǒng)一步調(diào),你可以查看創(chuàng)建好的所有pull請求。不必全部都看,只要確保了解其他開發(fā)人員是如何解決某些問題的就可以了。他們的解決方案和你解決問題的方式是否相似?如果不是,問問他們?yōu)槭裁催x擇這種解決方案,以及是否考慮過你的解決方案。
別擔(dān)心,每個(gè)優(yōu)秀的程序員都是從菜鳥時(shí)期走過來的。轉(zhuǎn)變思路,汲取經(jīng)驗(yàn),你離告別新手期并不太遠(yuǎn)。
責(zé)編AJX
-
開發(fā)
+關(guān)注
關(guān)注
0文章
370瀏覽量
40920 -
編程
+關(guān)注
關(guān)注
88文章
3637瀏覽量
93986 -
源代碼
+關(guān)注
關(guān)注
96文章
2946瀏覽量
66959
發(fā)布評論請先 登錄
相關(guān)推薦
低代碼在敏捷開發(fā)中的應(yīng)用
擁有低功耗低成本的Open開發(fā)應(yīng)用,開發(fā)人員必看!
![擁有低功耗低成本的Open<b class='flag-5'>開發(fā)</b>應(yīng)用,<b class='flag-5'>開發(fā)人員</b>必看!](https://file1.elecfans.com/web3/M00/03/7A/wKgZO2dpDkyAIex2AAPB9ScSjTg510.png)
MSPDebugStack開發(fā)人員指南
![MSPDebugStack<b class='flag-5'>開發(fā)人員</b>指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
C2000 ePWM開發(fā)人員指南
![C2000 ePWM<b class='flag-5'>開發(fā)人員</b>指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
《軟件開發(fā)珠璣》+60條戒律
OpenAI API Key獲取:開發(fā)人員申請GPT-4 API Key教程
![OpenAI API Key獲取:<b class='flag-5'>開發(fā)人員</b>申請GPT-4 API Key教程](https://file1.elecfans.com/web2/M00/B1/D3/wKgZomVddfqAVkq0AABxTmjVfN0431.png)
嵌入式開發(fā)就業(yè)前景怎么樣?
DevEco Device Tool 如何生成靜態(tài)庫供第三方使用
三星停止自動(dòng)駕駛研究,開發(fā)人員轉(zhuǎn)到機(jī)器人領(lǐng)域
AMD ROCm 6.1升級MIPOpen 3.1,引入AI參數(shù)預(yù)測模型
MWC2024亮點(diǎn) 愛立信旗下Vonage攜手AWS加速向數(shù)百萬開發(fā)人員提供新的解決方案
三星電子最新消息 成立AI芯片開發(fā)團(tuán)隊(duì) 出售所持ASML剩余股份
蘋果推送VisionOS 1.1第三版測試更新,新增iMessage功能
關(guān)于恩智浦S32通用平臺的介紹
![關(guān)于恩智浦S32通用平臺的介紹](https://file1.elecfans.com/web2/M00/C1/1B/wKgaomXTEpiAYp1nAABLvt2wM44250.png)
評論