天天看點

10個成為優秀程式員的有效方式

一個優秀的程式員在穿過單行道的時候總是會看到兩條路。~Doug Linder

在IT行業中的軟體工程師,驅動我們每天工作的是沉醉在程式中的樂趣和激情。但是要想使程式成為樂趣并從中得到永久的喜悅,你需要學習還要附帶着使你成為一個優秀程式員所需的基礎知識。

我并是在寫一個成為一個優秀程式員的黃金法則,寫這個真正的意圖是整理一些我自己在這個行業中學到的和實作的好的結果的一些幫助提示。一個優秀的程式員沒有具體的定義,但是在這我們引用一些已經在這個行業發展的很好的程式員一些經驗是為了幫助這個行業中所有正在成長的程式員。

1. 緻力于基礎

概念的了解是成功的關鍵這一說法适用于任何一個行業和工作。除非你有一個很好概念基礎,否則他/她都不可能成為一個優秀的程式員。核心概念的了解可以幫助你以一個最好的方式和解決方案去設計和實作你的程式。如果你仍然感到自己的核心計算機知識和你的程式設計語言的具體概念,現在去複習你的基礎它永遠都不會太遲。

2. 開始為你寫的每個代碼集放一個問題标簽(how, what)

我可以在優秀的和業餘的程式員之間劃分一個明确的分界線,那就是對程式将要發生什麼和是怎麼樣發生的激情。有一小部分人還是會寫一些當程式運作時不知道準确發生什麼的代碼。我了解緊迫的最後期限,我們沒有足夠的時間,是以我們不得不寫下那樣的代碼。盡管看起來處理這樣的情況情有可原,但是作為一名程式員應該盡自己所能去專研進而達到更高的級别。相信我,這将随着時間成為一種習慣,接着你每一次将不知不覺地都那樣去做。

3. 幫助别人你将學到更多

我們中大多數人都是在需要幫助時才會出現在論壇或者我們的團隊。一個優秀的和業餘的程式員另一個明确的差別就是前者經常去這些地方幫助其他人。通過解決别人的問題是他們學到更多的東西。在一個團隊内,去幫助自己的隊員解決問題。相信我,在他們的情境下去了解他們的問題,研究和提供解決方案你将比之前收獲的更多。

4. 寫一個簡單的、容易了解的并富有邏輯的代碼

如在生活方方面面一樣,KISS(Keep it simple and short)公式也同樣适用于程式。寫富有邏輯但避免複雜的代碼。有時人們寫一些複雜的代碼為了證明他們有能力去寫這樣的代碼。我的經驗告訴我簡單且富有邏輯的代碼總是工作的更好,出現較少的問題和具有更好的擴充性。我記得一個非常棒的引言---“好的代碼本身就是最好的文檔。當你要加注釋的時候,問問你自己,我應該怎樣提升代碼的品質進而不需要注釋了呢?”~Steve McConnell

5. 花費更多的時間去分析問題,你将需要更少的時間去解決問題

花費更多的時間來了解和分析問題并為它設計解決方案。你将會發現餘下的事情是十分簡單易行的。設計并不意味着總是用模組化語言和工具,它可以就像看着天空一樣簡單并在你的腦海中思考着解決方案。按鍵盤(編碼)的這些人在得到問題的那一刻有個習慣,通常去解決問題而不是繼續編碼。如果在你洗澡的時候不能想象出程式的所有結構,證明你并沒有準備好去編寫程式。~Richard Pattis

6. 帶頭去分析和回顧你的代碼

盡管這有一點困難,但是盡量在其他人有能力了解你的程式之前審查你自己的程式,在這樣的過程中你将學會如何去編寫幾乎沒有缺陷的程式經常要回顧你的代碼。也不要猶豫把你的代碼拿給其他人看。和優秀的程式員一起工作和收到他們的建議将幫助你也成為一個優秀的程式員。

7. 不要使自己沮喪看看變化的技術世界

在IT行業的期間内,我遇到過很多人對他們的工作感到失望甚至離開了工作去尋找新的工作說他們想要學習和工作在技術前沿。我對這種渴望并沒有看出任何問題,但是‘latest technologies’是一個非常不準确的詞。我們每一天都會聽到這有了新的工具、APIs、架構和其它的一些東西可以使程式更加容易和快速。這總是推動者技術世界的發展。但是我們要了解核心和一些基礎的知識将比那些架構、工具和APIs來說很少改變。這就像大海一樣,表面的水移動地非常迅速而深水在一定程度上是平靜的和濃密的和大多數的水生物在這裡生存。是以,體驗一下在深水和接近核心知識的感覺。例如在Java企業級應用中,存在許多Web架構和每隔一周就出現新的。但是請求的核心概念就是基于用戶端-伺服器的交流,MVC模式,filters/servlets/JSP,資源的建構,XML解析等等技術。是以花更多的時間去學習這些核心的知識而不是擔心總在改變的架構和工具。相信我,随着你對核心概念的了解,你将總是更容易的去學習新的架構、工具和APIs。

8. 變通方法不要長時間工作

軟體工程師可能有許多次在這種情況下完成工作(可能由于缺乏時間,缺乏對問題的了解或者缺乏技術經驗)。但是在此期間工作所得到的解決方案通常是不可靠的代碼,擴充性和可維護性很差,進而浪費更多的時間。當你知道解決方案的時候總是更喜歡去實作它。我明白在一些情況下它是不可避免的,但是它就像一個通常應該說的事實但是你卻在某些情況下說了謊。

9. 閱讀文檔

一個優秀的程式員最基本的行為就是他們讀了許多的文檔。它可能是規範,JSR,API文檔,教程等等。閱讀文檔可以幫助你建構必要的基礎,可以使你以一個最好的方式去編寫程式。

10. 你也能從他人的代碼中學到東西

我和一些非常棒的程式員互動,這些程式員實際上就是始終在我IDE上的Java源碼工程,我閱讀/引用它在每日的工作上。做這件事情不但滿足一些基本知識的需求而其也學到了寫一個優秀程式的方式。閱讀和引用這些可信賴的知名的源碼或者一些進階的代碼,也能幫助你使你的程式更好。

最後一點,上面并沒有列出的: 不要拿自己和别人比較

你和其他人比較的唯一結果就是消極情緒的演變和不健康的競争。每一個有他的長處和缺點。我們了解好我們自己的優缺點并利用好是非常重要的。 我曾經看到過很多次被稱作‘fundoo-programmers’ (fundamentally strong programmer) 也犯過許多低級的錯誤。是以,了解你自己,列出你需要提高的領域并努力吧。程式設計真的很有趣,享受它吧。

任何傻瓜都能寫出計算機可以了解的代碼。優秀的程式員寫出人類可以了解的代碼 ~Martin Fowler

原文連結:http://java.dzone.com/articles/10-effective-ways-become-good

繼續閱讀