哪來的程式設計天才?
注:本文原載於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實戰》的過程就是一個不斷學習的過程。
我們中的大多數人不大可能成為世界級的程式設計師,其中之一的原因是,我們之間的學習練習積累已經遠遠比不上那些從小學時就程式設計的人,另外一個原因則是,我們也不會年復一年的去堅持大量的學習和練習,這有性格的因素,也有現實的因素。但是,這也不代表我願意隨波逐流,一事無成的過一輩子,我總希望自己有所成就,即使不大,但至少會讓生活充實點,讓家人生活更好點。因此我們不必非要從成功學的角度來讀這本《哪來的天才?》,但我也很討厭某些人動不動就來“一萬個小時”,奶奶的,老子只是個凡人。
相關文章
- 一個天才程式設計師的黑幫大佬人生程式設計師
- 天才模擬器程式設計師死於網路暴力中程式設計師
- Go 設計哲學:少即是多,哪裡來的?Go
- 我今天才知道:學習程式設計和學習程式語言是兩碼事程式設計
- 老程式設計師都去哪了?程式設計師
- 老程式設計師都去哪兒了?程式設計師
- 哪個Scratch少兒程式設計好用?程式設計
- 程式設計師只吃青春飯?大齡程式設計師都去哪了?程式設計師
- 好程式設計師分享-疫情過後 學哪個程式設計有前景程式設計師
- 程式設計師的工資到底花到哪裡去了?程式設計師
- 併發程式設計帶來的挑戰程式設計
- 程式設計入門之學哪種程式語言?程式設計
- 任天堂系列(一):傳世經典背後的天才設計師
- 程式設計師生活之路--來自程式設計師爸爸的一封信程式設計師
- 用十六年打造程式設計師版“天才請就位”,百度之星正在出圈程式設計師
- 學程式設計,Python和Java哪個更好?程式設計PythonJava
- 一位失足程式設計師的來信程式設計師
- 讓程式設計快樂起來的過程程式設計
- 程式設計天才“樓教主”—— 專訪兩屆“黑客杯”世界程式設計大賽季軍、清華大學博士生樓天城...程式設計黑客
- 程式設計中尋找成就感:哪個程式設計崗位適合您?程式設計
- 1024程式設計師節即將到來,致敬那些默默工作的程式設計師們程式設計師
- web前端程式設計小白應該從哪個環節開始,這裡來解析!Web前端程式設計
- 真的要做一輩子的程式設計師嗎?來自10年程式設計師的心聲程式設計師
- 程式設計為什麼不用中文?未來用中文程式設計可能麼?程式設計
- 中文程式設計之後,再來表格程式設計,這無程式碼超車的速度有點快程式設計
- 程式設計師,選擇和努力哪個重要?程式設計師
- 程式設計師只能吃青春飯?程式設計師該怎麼規劃自己的未來程式設計師
- 程式設計師的打怪升級之路,程式設計師未來職業規劃全路線程式設計師
- 程式設計師薅羊毛神器來了!程式設計師
- 來自一個程式設計師的內心世界程式設計師
- 《程式設計師的數學》第2版來了!程式設計師
- 你是如何離程式設計越來越遠的?程式設計
- Python併發程式設計之從效能角度來初探併發程式設計(一)Python程式設計
- 反轉!BAT程式設計吸金榜來了,AI程式設計師刷爆了......BATAI程式設計師
- "無程式碼"時代的到來,還需要程式設計師嗎?程式設計師
- 花了30天才肝出來,史上最全面Java設計模式總結,看完再也不會忘Java設計模式
- 初學程式設計,Scratch和Python哪個更合適?程式設計Python
- 學習Python程式設計哪種線路科學?Python程式設計
- 做個清醒的程式設計師之努力工作為哪般程式設計師