提高程式設計能力的10種方法
轉自:http://www.codeo4.cn/archives/529
1、學習一種新的程式語言
學習新的程式語言會強迫你運用全新的方法來思考,特別是當這門語言使用一種你還不怎麼熟悉的正規化。你能夠學習到很多將來你會在你熟悉的語言中用到的思考方式,而且甚至你還可能用新的語言來實現一個正式的專案。
2、讀一本優秀且具有挑戰性的程式設計書籍
我們能從書中學到很多東西。儘管實踐很重要,讀一本真正好且具有挑戰性的程式設計書籍是挑戰你的思維並將其提升一個層次的極佳方式。這樣具有挑戰性的書包括:《計算機程式設計藝術》(如果你想要一個真正的挑戰)、《計算機程式設計與解釋》(SICP)、《程式設計學(A Discipline of Programming)
你也可以讀沒那麼具有挑戰性的書,但要避免讀像《天才班》叢書一樣、試圖在“24小時”或者“21天”教會你東西的書;你很難從中真正提高程式設計技能。
3、加入一個開源專案
加入一個開源專案有什麼好處呢?你將會同別人合作(當你以前只是在週末從事於個人專案時這尤其不錯),而且你必須深入研究和學著理解一個你不熟悉的程式碼庫(這會是非常具有挑戰性的)。
4、解決程式設計難題
你會經常解決程式設計難題,而且的確存在很多難題。你可以在Project Euler——可能是關於程式設計難題的最熱門的網站——在上找到各種基於數學的問題。
你也可以嘗試程式碼高爾夫(code golf)——程式設計師用最少的擊鍵次數來解決一個給定的程式設計問題。這能教會你很多更隱晦和特殊的語言特性,並且你將必須對編碼進行創造性的思考(而這非常有趣)。
5、編碼
開始從頭到尾寫一個程式。設計各種體系架構並實現它,如此往復。
最好的學習編寫程式的方法就是編寫程式。你會從你自己犯的錯誤中學習,而且完成一個專案會給人以動力,這比讀一本書可有趣的多。
6、讀原始碼,從中學習
研究著名的軟體專案,像Linux核心(提示:它很龐大)。一個適於學習用途的優秀作業系統是MINIX3.你可以從中學到很多新的語言慣用語法,一兩種軟體體系架構。讀不熟悉的程式碼一開始是令人畏懼的,但報酬也是豐厚的。
你還能夠增進對你常用的一些API的理解,或者程式語言——通過讀它的實現方式。
7、活躍在程式設計網站上和多看部落格
活躍在像論壇或者Stackoverflow
8、寫關於程式設計的文章
開始在部落格上寫關於程式設計的文章,儘管可能寫出的文章只有你一個人看。你還可以在不同的問答網站或論壇上回答問題,或者在一些網站(如DreamInCode)上編寫教程。在你寫關於程式設計的文章的時候,你得確保使用正確的術語並且知道為什麼以便解釋問題和技術。這能夠讓你反省你的程式設計知識並且提高你的英語語言能力,而這對於程式設計很重要。
9、學習底層的程式設計
學習底層的程式設計及對應語言對於獲取對底層機器的更好理解很有用。試試C,也許還可以學學一些處理器的組合語言。
瞭解計算機是如何執行一個程式和作業系統是怎麼工作(在高一層)。如果你真的想認真嘗試低階語言程式設計,你可以讀一些關於計算機組織、作業系統、嵌入式系統、作業系統驅動開發等等方面的書(我現在就在讀)。
10、別急著求助於StackOverflow。請認真思考先!
當你遇到一個困難,在試著花半分鐘解決無果之後,你是怎麼做的?求助於StackOverflow。千萬別。而是花一些時間獨立試著自己解決。拿一張紙和一支鉛筆,草擬出解決辦法。假如這沒有用,停下來一會兒以保證大腦清醒,然後繼續。
如果一個小時(具體時間取決於問題的大小)後還是沒有結果,這時你才應求助於StackOverflow,反正求助之前你得自己想清楚。