【今日薦文】三十五年經驗分享:程序員進階八法

如果你的目標僅僅是提高自己,那麼很容易實現,但是如果你的目標是成爲一個偉大的程序員,那麼這就不簡單了。

很多人都願意說,我想變得更好,但是更好是什麼卻很模糊,而且人們也不知道該怎麼樣去做。

時間到了,提高你的編程技能,認真+嚴肅,走起!

我在這裏分享八法來幫助你順利提高你的編程技能。這些小智慧來自三十年深耕該領域,許多都令你再熟悉不過了,你可能早就認知了它們。

1、要記得你並非無所不知

在你前進的路上,有一隻巨大的攔路虎,它的名字叫做“我無所不知”。那些計算機學科畢業的大學生們以及有經驗的程序員都好犯這樣的毛病。

實際上,這是一個陷阱,掉進去就很難爬上來。但是,你仍然要克服它。只有機器人才願意認爲自己無所不知,但是人類的特點是,能夠認識到自己的不足,然後去學習新知。

所以,你要明白,想要成爲一個更好的程序員,第一步就是意識到自己總有新物要學,保持謙遜的態度,這纔是學習的一貫正途。

2、停止去證明你有多正確

但是經驗也會使我們不斷重複錯誤的行爲導致養成不好的習慣。如果你是有8年經驗的程序員,你也有可能連着8年都在重複同樣的錯誤。

克服這一謬感的方法就是,時刻檢視自己,並不斷地發問:在這一點上,我是否還能做得更好一些。

舉個有趣兒的例子,一個經驗豐富的軟件開發者,他寫出了令自己也豔羨不已的代碼,於是他覺得這個代碼簡直太完美了,他不斷寫文章去證明自己有多麼的正確,代碼功能多麼優秀。

真正優秀的程序員,他們都喜歡去證反,就是去證明自己有多麼的錯誤,因爲他們知道,長久來看,用戶一定會發現軟件的問題和失誤,而他們希望自己首先發現這些問題,而不是等待別人去發現。

你看到優秀和平庸之間的差距了嗎?

3、代碼沒有死亡,它始終活着

第一步你總是要寫出高質量的代碼來滿足用戶的特殊需求,但是優秀和平庸的區別體現在哪裏?

如果你只是匆匆忙忙地進入下一個任務中,那麼你不可避免地成爲了窮忙族。

你寫出代碼並不意味着你的工作結束了,相反,一切都纔剛剛開始,你不需要火急火燎地趕往下一個站點。停止,僅僅意味着階段性的展示和賞析,但是你的工作沒有結束,要依靠迭代讓產品變得好上加好。

如何讓產品變得更好?我們依據不同的應用,會提出不同的問題,比如,更快是不是對產品價值的增值?更容易記錄是不是呢?更容易重複使用呢?更可靠呢?

這些問題雖然不同,但是程序猿對產品不懈追求的動機是一致的。

4、寫第三次

好的程序員認爲寫出的軟件能運行就好了,偉大的程序員認爲軟件要運行得極其完美。但這很少在第一次就成功,最好的軟件通常要寫三次

在那些最好的開發者身上,你並不會明顯地看到這種級別的工作流程,他們做的一切都看起來聰明極了,但是在他們背後,他們多少次將第一版和第二版扔進垃圾桶,你是不得而知的。

你想做到更好,你就要將摒棄代碼與重新開始這條方法融進你自己的工作流程之中。

如果沒有什麼特殊情況,“寫三次”可以教你認識到:解決一個問題有很多種方法,它使你避免在一棵樹上吊死。

5、儘可能去讀代碼,越多越好

要提高編程技能,你就要去讀別人的代碼。這一點太重要了。

你讀別人的代碼就能發現他們是怎樣解決一個編程問題的。但是不要僅僅把它們當作參考文獻,你要把它們當作挑戰,去學技能,讓自己的編碼能力得到提高。

你可以這樣問自己:我能學到什麼呢?我怎麼用到自己的代碼中去呢?我以前可從來沒想到還可以這樣做呢!我能做什麼來提高我的代碼的質量呢?

注意:閱讀大量的代碼並不能使你變成偉大的程序員,就好比一些想要超越偉大的文學家的人閱讀了大量的優秀文學作品結果卻並不一定提高自己的寫作能力一樣。

大量的開發者只是爲了簡單地解決問題而去閱讀,他們急於找到一個答案,所以大部分時候,他們只是複製和粘貼了別人的代碼。

你這樣做的話,就會變成一個特別糟糕的程序員,因爲你對他人的智慧視而不見。如果你只是抄襲而不去花時間理解的話,你喫的就只是bug而不是夏日午餐。這樣,你其實就成爲了一個bug生產廠。

6、不要只爲工作寫代碼

接一個私人的編程項目有許多的好處。比如,你不僅有機會獲得在目前的工作中很難學習到的工具和技術,而且還能夠使你更具有市場眼光。

因爲熱愛而寫代碼的另一個好處就是你很容易依靠自己去解決許多問題。你不能把困難拋給別人,你會停止一遇到問題就立即向別人尋求幫助。

提示:不要只選擇你有把握的私人項目,你需要一些無把握的嘗試。

7、儘可能與其他開發者合作

傾聽他人是合作的基本原則。無論你是組隊編程還是參加黑客馬拉松,或者就是參加一個編程人聯合會,比如Vermont編程人聯合會。

當你爲一個開源項目無私貢獻的時候,你要注意來自用戶和其他開發者的反饋意見。你在這些評論中看到那些共性了嗎?

其實你這是很幸運地遇到了可以信任的私人顧問,他們能在你需要的代碼技術和職業選擇的一系列問題上給你指導。不要浪費這些機會。

8、你學的是技術,而不是工具

編程語言、工具和方法論千帆過境,數不勝數。這就是爲什麼你在語言、框架上的經驗要儘可能地多。你必須集中精力在編程的基礎上,因爲基礎基本不變;你還要把注意力放在構建而不是編寫上。

任何時候,你堅信只有一條正確的道路通向真理,那麼你就該自我反省一下了。教條會阻礙你學習新的知識,使你變得不愛改變。

道理怎麼講都講不完,但是自我提升的核心要點就是你知道在哪裏止步。




更多iOSAndroidPythonJavaMySQL的文章,請點擊:

http://blog.csdn.net/jamiecheung


更多JavaUnity3D的文章,請點擊:

http://blog.csdn.net/u010841622
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章