成為優秀程式設計師的10個有效方法

2014-12-21    分類:程式設計師人生、首頁精華12人評論發表於2014-12-21

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

一個優秀的程式設計師就是那種即使是過單行道都要往兩邊看的人。——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原始碼的優秀程式設計師交流互動,閱讀/參考他們的程式碼。因為這麼做不但能瞭解基本知識,還可以學會寫專案的新方法。閱讀和參考一些可靠和已知的開放原始碼或者自己的高階程式碼,也有助於我們更好地程式設計。

最後一點,前面沒有列進去的:不要和別人比

俗話說,人比人,氣死人,拿自己與別人作比較只會導致負面情緒,並演變成不良競爭。尺有所短寸有所長,每個人都有自己的長處和短處。我看到過很多次一些所謂的特別牛叉的程式設計師也會犯一些很愚蠢的錯誤。所以,剖析自己,列出不足之處,努力改進自己,才是正途。

程式設計是一種真正的樂趣,歡迎樂在其中。

“任何一個傻瓜,都寫得出能讓計算機理解的程式碼,但是,優秀程式設計師寫出來的程式碼,能讓全人類理解。”——Martin Fowler

譯文連結:http://www.codeceo.com/article/10-effective-way-good-programmer.html
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章