下面是一位 CTO Ken Mazaika 的觀點,目前已有 6700+ 贊同
有經(jīng)驗的程序員會做到下面 29 項事情,這也是每個新手程序員應(yīng)該知道的事情。
如果你想成為更好的開發(fā)者,你應(yīng)該尤其注意第 15 點和第 29 點。
1.積極大膽地谷歌。你得知道如何有效地組織搜索關(guān)鍵字,查閱別人寫的代碼,然后合理地用在代碼里,從而解決問題。
2.擁抱變化,堅持不懈。老手程序員在接觸新技術(shù)時,能欣然接受像個初學(xué)者一樣處處受挫,并總能在完成工作的同時自學(xué)成才。
3.承認(rèn)細(xì)節(jié)的重要性。例如變量和函數(shù)的命名、CSS 屬性的命名、該用哈希還是用數(shù)組,以及其他看起來微不足道,但可能對項目有深遠(yuǎn)影響的事情。
4.承認(rèn)大多數(shù)的“重要決定”其實并沒有那么重要。一般的開發(fā)者經(jīng)常在技術(shù)選型等“重大問題”上陷入唇槍舌戰(zhàn),而程序員老鳥們會避免浪費時間在罵戰(zhàn)中。這一點上,他們就像禪宗大師一樣(zen-like)。
5.選擇合適的工具解決問題。網(wǎng)上有無數(shù)的開源庫、工具和框架,讓人眼花繚亂。而老手們清楚地知道針對怎樣的問題,應(yīng)該用什么樣的工具。
6.明白代碼「不值錢」(該刪就刪)。你必須習(xí)慣于刪掉幾百行代碼來重寫程序的某一部分,毫不留情。
7.在評估技術(shù)的時候要全面。例如,我一直在鼓吹Elixir。它語法優(yōu)美,社區(qū)完善,有很大的潛力。但Elixir誕生的時間太短,所以如果要構(gòu)建復(fù)雜的功能,可能會難以找到能幫你提高效率的開源工具。因此,在評估要不要選擇使用一項技術(shù)時,你得把所有這些因素都考慮在內(nèi)。
8.學(xué)會說“我不知道”。沒有比拒絕承認(rèn)自己不知道更能浪費一個開發(fā)者的時間了。
9. 仔細(xì)分析錯誤信息里的線索。傳統(tǒng)教育告訴我們:失敗是壞事。報錯信息這種東西也經(jīng)常被跟失敗聯(lián)系起來,然而優(yōu)秀程序員明白,這些錯誤消息里其實隱藏著能將你指向最終正確解決方案的線索。
10. 了解過早優(yōu)化和必要的“炫技式”優(yōu)化的區(qū)別。老手們清楚在什么時候需要寫一些看上去沒那么好懂,但會讓程序運行更快的代碼。
11.每個人都會犯錯,為自己的過失負(fù)責(zé)。而尤其在團(tuán)隊里,把責(zé)任推來推去沒有任何意義,因為錯誤的發(fā)生往往不只是一方的因素造成的。
12. 成為你所用的開發(fā)工具的重度用戶。如果長期在某個開發(fā)環(huán)境下有相當(dāng)比例的開發(fā)工作,那你應(yīng)該去掌握使用它的細(xì)節(jié)。
13. 學(xué)會用Vim(至少會一點)。 你至少應(yīng)該在這個編輯器里學(xué)會勉強地移動和翻頁。
14. 不要接陌生技術(shù)領(lǐng)域的私活。個人做自由職業(yè)項目,其中很大一部分挑戰(zhàn)就是評估項目時間。不要規(guī)劃自己未知領(lǐng)域的事情,那會讓你處于想當(dāng)尷尬的境地。
15. 不要數(shù)你干活花了幾個小時。技術(shù)大牛會把時間花在有深度的工作上,并且他們清楚花了多少時間完全不重要。
16. 學(xué)會坦然接受批評。當(dāng)你的代碼因為各種原因四分五裂時,你需要培養(yǎng)用理性和邏輯的方式來應(yīng)對(而不是情緒化處理)。
17. 同有更多經(jīng)驗的人結(jié)對編程。沒有比這個更高效的編程學(xué)習(xí)方式了。
18. 一定要先自己做一遍代碼審查。當(dāng)你在GitHub上發(fā)起一個pull request之前,先把代碼當(dāng)成別人寫的,自己先審查一遍。
19. 認(rèn)識到做自由職業(yè)的難點不是寫代碼,而是其余的所有事情。銷售、推廣、客戶支持,質(zhì)量保證以及產(chǎn)品管理,所有這些都會花費大量時間。
20. 發(fā)現(xiàn)并解決更大的問題。優(yōu)秀的程序員不拘泥于眼前的問題,而是清楚如何用更長遠(yuǎn)的方式徹底的解決這一類問題。
21. 深入了解一些大型開源項目的核心能讓你開發(fā)時如虎添翼。如果你知道如何給你的項目打猴子補丁(Monkey Patch), 那么你將無所不能。
22. 跳過多數(shù)的會議。你的公司雇你是來寫代碼的,而不是談代碼的。當(dāng)會議多到失控的時候,不去參加也沒有任何問題。而且一旦你開始這樣做,別人會更珍惜你的時間。
23.知道什么時候開始回饋。 到了某個時候你需要將你的技能和經(jīng)驗傳授給年輕的開發(fā)人員,就像你的導(dǎo)師當(dāng)時教授你一樣。
24. 能寫爛代碼。有時候可以當(dāng)一當(dāng)“膠帶式程序員”。關(guān)鍵是隨著時間推移,你需要弄清楚什么時候可以走捷徑,什么時候必須走捷徑。這其實是最難掌握的技能之一。
25. 禮貌地告訴別人你工作到很晚。如果你是辦公室里最后一個,可以發(fā)一封簡短的匯報郵件。別人一般會注意到郵件上的時間戳的。
26. 像一個領(lǐng)導(dǎo)者(Leader)一樣做事,而不是老板(Boss)。老板是讓別人為他工作的人,領(lǐng)導(dǎo)者是人們追隨的人。做個領(lǐng)導(dǎo)者。
27. 去打打桌上足球。從長期來看,同其他開發(fā)者(或不同崗位上的同事)建立聯(lián)系會比在緊巴巴的期限里交付一個功能更有價值。
28. 在壓力下學(xué)習(xí)。你需要知道如何應(yīng)對像系統(tǒng)宕機而你要負(fù)責(zé)將它復(fù)原的情況,即使一開始你完全沒有頭緒。
29. “Move fast and break things” 別讓完美主義阻止你做事。錯誤往往是最好的學(xué)習(xí)機會。所以別把犯錯當(dāng)作失敗,而應(yīng)該把它們當(dāng)作值得學(xué)習(xí)的經(jīng)歷,并意識到:正是不斷克服和突破這些錯誤,作為一個程序員,你才能不斷成長起來。
像生活中的很多事情一樣,編程也是你做的越多,了解的就越多。所以如果你是一個新手程序員,還是直接去編碼吧。記得將這些最佳實踐應(yīng)用在日常工作中,來不斷提升你的編程技藝。
-
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30288
發(fā)布評論請先 登錄
阿里云升級通義靈碼AI程序員,全面上線
TMS320C55x DSP CPU程序員參考補充

UCD3138A64/UCD3138128程序員手冊

機械革命發(fā)布CODE AI程序員本
AI編程工具會不會搶程序員飯碗
軟通動力子公司鴻湖萬聯(lián)助陣鴻蒙1024程序員節(jié)成功舉辦

第五屆長沙·中國1024程序員節(jié)開幕
京東上萬程序員都AI用它!

程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

助力程序員告別困擾已久的夢魘-Bug

大模型時代,程序員當(dāng)下如何應(yīng)對 AI 的挑戰(zhàn)

評論