核心觀點#

音樂家練習時不應該聽起來好聽——如果練習時總是表現完美,代表你沒有在挑戰自己的極限。同理,軟體開發者需要區分「練習」和「表演」,把工作之外的時間用來刻意練習,而非在工作中邊做邊學。

關鍵概念#

作者借用爵士樂練習的三大分類,提出軟體開發者的練習框架:

  • Physical/coordination(基礎技術):程式語言的冷門角落、regular expressions、多執行緒、stream libraries、API 等。就像音樂家練習手指靈活度,開發者需要精熟工具箱中的每一項技能。
  • Sight reading(視譜能力):快速閱讀和理解陌生程式碼的能力。到 open source 專案中找 feature 來實作,練習在有限時間內理解大型程式碼庫。
  • Improvisation(即興演奏):在壓力下快速、創造性地解決問題。用自我施加的限制條件練習——例如不用變數賦值寫程式,或用最少的程式碼完成任務。

不要在工作中練習!工作是你的「演出」,練習應該在閒暇時間進行。你有責任自己找時間練習。

行動建議#

  1. TopCoder — 註冊帳號,利用 practice room 中的程式設計題目進行練習。
  2. Code Kata — 完成 Dave Thomas 的二十一個 Code Kata 練習,記錄心得日誌,完成後寫自己的 kata 並分享。