如何成為程式高手
更新日期:2012.02.15
 
製作:曾老師
 
程式訓練程序的精髓在於:
「寫程式(輸入) → 遇見 Bug → 尋找最佳解(優化) → 輸出結果」
的不斷循環。


馬丁·福勒 (Martin Fowler) —— 《重構》作者、
軟體工程大師「任何傻瓜都能寫出電腦看得懂的程式碼。但優秀的程式設計師,寫的是『人類看得懂』的程式碼。」


約翰·卡馬克 (John Carmack) —— 3D 遊戲之父(《毀滅戰士》主程式設計師)
「專注在一件事情上,並且做到極致。如果你每天花 10 個小時在程式碼上,持續好幾年,你絕對會成為某個領域的專家。」


蓋伊·史提爾 (Guy Steele) —— Java 語言規格共同制定者
「如果你給某人一項工具,他們能用它來做工作。但如果你給他們一項可以『創造工具』的工具,他們就能徹底改變世界。」


傑夫·阿特伍德 (Jeff Atwood) —— Stack Overflow 共同創辦人「最好的程式碼,就是根本不用寫的程式碼 (The best code is no code at all)。」核心思維:程式碼越多,Bug 就越多。真正的頂尖高手不會盲目追求程式碼的行數,而是善用現有工具、框架或精簡的邏輯,用最少的代碼解決最複雜的問題。



轉載程式高手分享心法,大家參考!
成為編程高手的八大奧秘[轉載]

不知不覺做軟件已經做了十年,有成功的喜悅,也有失敗的痛苦,但總不敢稱自己是高手,因為和我心目中真正的高手們比起來,還差得太遠。世界上並沒有成為高手的捷徑,但一些基本原則是可以遵循的。

  1、扎實的基礎

  數據結構、離散數學、編譯原理,這些是所有計算機科學的基礎,如果不掌握它們,很難寫出高水平的程序。程序人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學OOP,即使你再精通OOP,遇到一些基本算法的時候可能也會束手無策。因此多讀一些計算機基礎理論方面的書籍是非常有必要的。

  2、豐富的想像力

  不要拘泥于固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想像力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等等。開闊的思維對程序員來說很重要。

  3、最簡單的是最好的

  這也許是所有科學都遵循的一條準則,復雜的質能轉換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮復雜的方案。

  4、不鑽牛角尖

  當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當我遇到難題的時候會去玩遊戲,當負責遊戲的那部分大腦細胞極度亢奮的時候,負責編程的那部分大腦細胞就得到了充分的休息。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解。

  5、對答案的渴求

  人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。

  6、多與別人交流

  三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會給你很大的啟發。

  7、良好的編程風格

  注意養成良好的習慣,代碼的縮進編排,變量的命名規則要始終保持一致。大家都知道如何排除代碼中錯誤,卻往往忽視了對注釋的排錯。注釋是程序的一個重要組成部分,它可以使你的代碼更容易理解,而如果代碼已經清楚地表達了你的思想,就不必再加注釋了,如果注釋和代碼不一致,那就更加糟糕。

  8、韌性和毅力

  這也許是“高手”和一般程序員最大的區別。高手們並不是天才,他們是在無數個日日夜夜中磨鍊出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。


參考資料: