科技在變,核心不變#

作者首先透過自身經歷,對比了早期電腦與現代 Mac Pro 的巨大差異:

硬體演進的驚人數據

與作者最早使用的電腦相比,現代 Mac Pro:

項目變化倍數
處理速度快了 8,000 倍
記憶體大了 2,000,000 倍
儲存能力多了 16,000,000 倍
耗能僅為 0.01 倍
體積僅為 0.01 倍
價格僅為 0.04 倍

儘管硬體經歷了指數級的飛躍,但軟體工程師的核心工作本質卻驚人地相似:
我們依然在寫 if 判斷、while迴圈和賦值(assignment)敘述。
這意味著,要提升開發速度,關鍵不在硬體,而在於的操作熟練度。

任何事情想要做得快,都離不開練習
對程式設計師而言,練習的重點在於加快「編碼/測試」這個循環的過程。


練習的核心方法:Kata (對打)#

作者借用武術術語 Kata (形/對打) 來描述程式設計的練習法。

關鍵維度核心定義與意涵實踐細節與重點預期效果
定義固定招式 (Kata)一套預先設計好、模擬
真實搏鬥(開發)情境的動作序列
建立結構化基礎
練習目標肌肉記憶
(Muscle Memory)
反覆演練將招式化為本能,
確保壓力下能反射性正確回應
達到技術純熟度
核心意義磨練過程而非答案重點不在解決未知難題,
而是針對已知解案重複鍛鍊動作與決策
優化執行精確度

練習夠多,你將能窺見程式碼流動的韻律 (Rhythm)
這種直覺能讓你面對真實世界的複雜問題時,迅速正確反應。

作者推薦的經典 Kata#

作者常用「保齡球計分」來示範 TDD,以下是他鍾愛的練習題目:

題目核心目標重點與挑戰連結
保齡球
(The Bowling Game)
複雜邏輯處理處理補投 (Spare)
全倒 (Strike) 的計分邏輯狀態轉移
點此前往
質因數
(The Prime Factors)
演算法演進體現 TDD 如何引導出
最簡潔的遞迴或迴圈演算法
點此前往
自動換行
(Word Wrap)
邊界條件處理練習處理字串切分、空值以及
最短邊界等極端情況
點此前往

多元練習模式#

除了獨自練習 Kata,作者也提倡與他人互動的練習方式。

1. 雙人練習:Wasa#

這是一種類似桌球的互動練習:

  • 角色 A:撰寫一個會失敗的單元測試
  • 角色 B:撰寫程式碼讓測試通過
  • (交換角色繼續)

2. 參與開源專案#

如何跟上技術的最新進展?最好的方式就是為開放原始碼專案 (Open-source project) 貢獻程式碼。
這能讓你接觸到不同的設計思維與高標準的審查。


專業職責:利用「自我時間」#

最後,作者強調了練習的時間點與職業道德。

執行面向核心觀點實踐建議與細節最終價值
責任歸屬專業發展自負盈虧老闆負責提供工作,而防止技能退化
則是工程師個人的責任
維持職涯競爭力
時間管理運用非辦公時間應利用自我時間
進行技術練習與深度鑽研
確保技術不落伍
回報機制能力即資產雖無直接薪資,但會轉化為專業能力,
換取未來豐厚回報
實現職涯長遠收益

就像音樂家不會在演奏會上才開始練習音階,專業程式設計師也不該在客戶的專案上練習基本功。