哪來的程式設計天才?
注:本文原載於http://www.juvenxu.com/2013/03/28/programming-talent-is-overrated/
《哪來的天才?》是一本值得一讀的書,書的核心觀點大致為“卓越的能力並非天生,而是後天長時間的刻意練習而得的”,這觀點適用於所有領域,包括體育、音樂、醫學、商業等等,當然,放到程式設計領域來說也適用。書中有大量的案例來佐證作者的這一觀點,包括家喻戶曉的莫扎特和老虎伍茲,這裡我不再贅述。基本上,我是認同作者的觀點的,那麼接下來的問題是,何為‘刻意練習’?如何去做?
作者說刻意練習:
- 它是為了提高績效而被設計出來的。
- 它可以反覆很多次。
- 對結果的反饋是可以持續得到的。
- 這是非常費神的。
- 這並沒有多少樂趣。
在某些領域,這很好理解,比如我曾經練過一段時間的吉他,基於老師指導的練習基本就符合這五條,還有運動員的練習,也完全符合。回過頭來看看程式設計領域,存在這樣的練習嗎?
Robert C. Martin在《程式設計師的職業素養》中有兩章與這一話題相關,其中第6章‘練習’介紹了Coding Dojo和Coding Kata等方法,這些方法的確有效,也基本滿足上述五條,但大部分的Dojo或Kata基本都基於小型問題的練習,而軟體開發涉及的領域太廣太複雜了,往下到作業系統記憶體排程,往上到大規模網際網路企業的架構,業界基本無法提供針對這類技術的練習,大家只能在實際工作中積累。該書中的第14章“輔導,學徒期與技藝”強調教導的重要性,這非常暗合上述的第1和第3條,導師能幫你設計適當的練習(這也可能是實際工作),同時給你反饋。但不幸的是,正如作者所說,我們的行業嚴重缺乏這樣的導師機制。
除此之外,我認為結對程式設計也是一種行之有效的刻意練習,這種程式設計方式非常費神自然不必說,實踐過的人都能體會,這裡的關鍵是,通過結對程式設計這種工作方式,你能持續地得到反饋,這對於提升技藝來說無比重要的。
同時我也發現一個不幸的事實,那就是大量簡單的閱讀對提升技藝其實並沒有很大的幫助。閱讀如果缺乏明確的目標(讀完一本書不算個明確的目標),如果不去反覆咀嚼,那效果就甚微了,更何況大部分時間我們都是獨自在閱讀,根本得不到任何反饋。有些教材類的書會有習題和答案,那是一種很好的練習及獲取反饋的方式,但工作以後,行業中這類書幾乎沒有。有一種充分發揮閱讀功效的方式是小組閱讀,一組人讀同一本書,定期分享心得體會,如此,反饋就比較充分了。
Robert C. Martin並不是唯一一個認識到刻意練習價值的程式設計大師,Andy Hunt在他的著作《程式設計師的思維修煉》中也花了大量的篇幅講主動學習,介紹了很多具體的方法和工具,例如SMART目標(Specific, Measurable, Achievable, Relavent),SQ3R閱讀,思維導圖等等,這些內容都非常的有價值。Andy還提到說教學是學習的一種很好的方式,這一點我深有體會,我寫《Maven實戰》的過程就是一個不斷學習的過程。
我們中的大多數人不大可能成為世界級的程式設計師,其中之一的原因是,我們之間的學習練習積累已經遠遠比不上那些從小學時就程式設計的人,另外一個原因則是,我們也不會年復一年的去堅持大量的學習和練習,這有性格的因素,也有現實的因素。但是,這也不代表我願意隨波逐流,一事無成的過一輩子,我總希望自己有所成就,即使不大,但至少會讓生活充實點,讓家人生活更好點。因此我們不必非要從成功學的角度來讀這本《哪來的天才?》,但我也很討厭某些人動不動就來“一萬個小時”,奶奶的,老子只是個凡人。
相關文章
- 天才程式設計師 Fabrice Bellard程式設計師
- 一個天才程式設計師的黑幫大佬人生程式設計師
- 第一章:程式設計師的天才神話程式設計師
- 驅動力來自哪裡——獻給迷茫的程式設計師程式設計師
- 驅動力來自哪裡-獻給迷茫的程式設計師程式設計師
- 程式設計師該用哪種姿勢來理財程式設計師
- 非程式設計天才參與開源專案的14種方式程式設計
- 轉載網路文章:22年前的天才程式設計師今安在?程式設計師
- 程式設計的未來程式設計
- Go 設計哲學:少即是多,哪裡來的?Go
- 天才模擬器程式設計師死於網路暴力中程式設計師
- 雲端計算技術背後的那些天才程式設計師:Qemu的作者法布里斯貝拉程式設計師
- 老程式設計師都去哪了?程式設計師
- 你在用哪種程式設計字型?程式設計
- 程式設計師的未來程式設計師
- ITWorld:2014年全球最傑出的14位程式設計天才程式設計
- 奇思妙想II:16位天才揭祕未來的計算
- 哪個Scratch少兒程式設計好用?程式設計
- 老程式設計師都去哪兒了?程式設計師
- 老程式設計師都到哪裡去了?程式設計師
- 程式設計師迷茫的未來程式設計師
- 《奇思妙想II:16位天才揭祕未來的計算》前言
- 程式設計師的工資到底花到哪裡去了?程式設計師
- 女程式設計師的時間都去哪裡了?程式設計師
- 我今天才知道:學習程式設計和學習程式語言是兩碼事程式設計
- 好程式設計師分享-疫情過後 學哪個程式設計有前景程式設計師
- 程式設計師只吃青春飯?大齡程式設計師都去哪了?程式設計師
- 程式設計入門之學哪種程式語言?程式設計
- 新手學程式設計,從哪裡開始?程式設計
- 未來程式設計的9大猜想程式設計
- 糟糕的、差勁的,以及不該來當程式設計師的程式設計師程式設計師
- web前端程式設計小白應該從哪個環節開始,這裡來解析!Web前端程式設計
- 程式設計師最多能用多少時間來程式設計?程式設計師
- 程式設計中尋找成就感:哪個程式設計崗位適合您?程式設計
- 學程式設計,Python和Java哪個更好?程式設計PythonJava
- 程式設計師,選擇和努力哪個重要?程式設計師
- 你們喜歡哪種結對程式設計?程式設計
- 併發程式設計帶來的挑戰程式設計