新聞中心
作為一個在 IT 行業(yè)的軟件程序員,每天促使我去上班的動力就是對編程的樂趣和激情。但是為了激發(fā)樂趣并獲得永恒的快感,我們需要學(xué)習(xí)和遵守一些基礎(chǔ)知識以成為一名優(yōu)秀的程序員。

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


咨詢
建站咨詢
