成為優秀程序員的10個有效方法
一個優秀的程序員就是那種即使是過單行道都要往兩邊看的人。——Doug Linder
作為一個在IT行業的軟件程序員,每天促使我去上班的動力就是對編程的樂趣和激情。但是為了激發樂趣并獲得永恒的快感,我們需要學習和遵守一些基礎知識以成為一名優秀的程序員。
當然我總結的這些東西沒有那么神,你說你要想學了之后就一定可以成為優秀程序員,那是不可能的。這只是從我的經驗角度出發提供的一些捷徑。對于優秀程序員的定義,此處可以理解為能開發出超棒的IT解決方案并且能促進行業整體發展的程序員。
1.掌握基礎知識
不管任何行業和任何工作,概念的理解都是成功的關鍵。除非你有強大的概念基礎,否則就不可能成為一名優秀的程序員。核心概念的理解有助于你用最佳的 方式設計和實施解決方案。如果你覺得你現在還沒有好好掌握關于核心計算機科學和編程語言的特定概念,那么現在回過頭去重新學習這些基礎知識猶未晚矣。
2.給自己寫的每個代碼集都貼上標簽(how,what)
我發現區分程序員優劣的一條很明顯的分割線就是,是否有這個熱情去知道“what and how”。有的程序員對于自己的代碼是如何執行的以及執行結果等知道得一清二楚。我也理解有時候因為時間緊迫,我們不得不在只知道這些代碼可以完成工作的 情況下就立刻進行下一步。雖然這對解決問題而言,似乎是另一個方向的話題,但是作為一個程序員,我們應該盡可能地深入研究問題以達到最高水平。相信我,隨 著時間的推移,你會在不知不覺中養成這個好習慣,然后受益無窮。。
3.通過幫助他人從而學到更多
可能我們中的大多數人只有在自己需要幫助的時候才會上論壇和群。有一條區別程序員是否優秀的分割線就是,優秀者經常會去這些地方以幫助他人。而且他 們在幫助別人的同時,自己也能學到很多東西。如果是在一個團隊中,也應該互相幫助。相信我,理解別人的問題背景、研究并提出解決方案會讓你學到的更多,成 長的更快。
4.代碼要寫得簡單、易懂、有邏輯
正如在生活中其他方面一樣,KISS(Keep it simple and short)規則同樣適用于編程領域。代碼要有邏輯,避免過于復雜。有些人之所以要將代碼寫得那么復雜只是為了證明自己有寫復雜代碼的能力。但是我的經驗 告訴我,簡單且邏輯化的代碼才能有效工作,不但問題少而且更易擴展。我記得有這么一句話
好的代碼本身就是最好的文檔。在你要添加注釋之前,先問問自己,“我怎么改進代碼,才能不需要寫這個注釋?”——Steve McConnell
5.多花時間分析問題,后面就可以少花時間去修復
多花點時間用來理解和分析問題,設計出最優的解決方案,然后你會發現接下來的工作將事半功倍。設計過程并不意味著一定要使用建模語言和工具,也可以 很簡單,例如抬頭仰望天空,然后在腦子里來一場頭腦風暴。那些一拿到問題就習慣性去噼里啪啦寫代碼的程序員,最后拿出來的成果往往會與要求的不同。
你如果在洗澡的時候腦子里還沒有程序的整體結構,那就意味著還沒有做好開工寫代碼的準備。——Richard Pattis
6.第一個分析審核自己的代碼
雖然有點困難,但是在其他人發現之前自己先知道問題的所在,能讓你學會如何寫出“接近于無bug”的代碼。自己對自己的代碼審核要公正嚴謹,也要能毫無猶豫地接受他人的審核。近朱者赤,與優秀的程序員一起工作,積極聽取他們的反饋,必然也會幫助你成為一名優秀的程序員。
7.面對日新月異的技術千萬不要沮喪
最近一段時間在IT行業里,我碰到的很多人——要么念叨著對他們的工作失望了,要么甚至于已經辭職在找新工作了——都一致表示,他們想要學習并使用 最新的技術。對于這個愿望我認為可以理解,但是這個詞“最新的”,我覺得不甚正確。我們每天都能聽到有人在說“現在又出來什么新的工具、API、框架和其 他方法等”可以使得編程工作更加的簡捷。這在技術領域其實一直在發生。真正需要我們去關注和理解的是核心和基本技術的轉變,在這個基礎上再去看新的框架、 工具和API。舉個例子,在很多Java公司可能每隔一周就會換上新的web框架,但是其基于客戶端—服務端通信模式的需求方式、MVC模式、filters/servlets/JSP、資源綁定、XML解析等核心概念依然是相同的。所以,與其時刻擔心框架和工具的變化,還不如花點時間好好學習這些核心概念。相信我,在理解這些核心概念的基礎上,我們才可以更快地掌握新的框架、工具和API。
8.應急措施并不能長久有效
很多時候,軟件程序員可能會采取應急和變通的解決方案(或因為時間緊迫,或缺乏對問題的深刻認識,或技術經驗不足)。但是,這些應急方案會破壞代 碼,導致其后期很難擴展和維護。我能理解,有的時候這種情況真的很難避免,但是就像我們都應該講實話一樣,你講了謊話,那就得知道謊言總有戳穿的那一天。
9.閱讀文檔
優秀程序員的基本習慣之一就是閱讀大量的文檔,技術指標、JSR、API文檔、教程等等。閱讀文檔為我們用最好的方式編程打下了必需的基石。
10.學習他人的代碼
我非常喜歡與那些在IDE里有java源代碼的優秀程序員交流互動,閱讀/參考他們的代碼。因為這么做不但能了解基本知識,還可以學會寫項目的新方法。閱讀和參考一些可靠和已知的開放源碼或者自己的高級代碼,也有助于我們更好地編程。
最后一點,前面沒有列進去的:不要和別人比
俗話說,人比人,氣死人,拿自己與別人作比較只會導致負面情緒,并演變成不良競爭。尺有所短寸有所長,每個人都有自己的長處和短處。我看到過很多次一些所謂的特別牛叉的程序員也會犯一些很愚蠢的錯誤。所以,剖析自己,列出不足之處,努力改進自己,才是正途。
編程是一種真正的樂趣,歡迎樂在其中。
譯文鏈接:http://www.codeceo.com/article/10-effective-way-good-programmer.html“任何一個傻瓜,都寫得出能讓計算機理解的代碼,但是,優秀程序員寫出來的代碼,能讓全人類理解。”——Martin Fowler
翻譯作者:碼農網 – 小峰