每年的一月一日,工程師社群總是充滿雄心壯志:
「今年我要每週讀一篇論文!」
「我要刷爆 LeetCode,進軍 FAANG!」
「我要每天貢獻一個 commit 到 Side Project!」
熱情澎湃地開始,買了新書、訂了課程、開了新的 GitHub Repo。
第一週,鬥志高昂。
第二週,有點忙,但還撐得住。
一個月後,書本積了灰,LeetCode 的上次登入是一個月前,Side Project 的最新 commit 停留在 Initial commit。
我們總把失敗歸咎於「意志力薄弱」、「天生懶惰」或「工作太忙」。
我們覺得自己像是作業系統裡一個有缺陷的 process,總是莫名其妙地就被 kill 掉。
但如果問題根本不在你,而在於你執行任務的「系統」呢?
這個顛覆性的觀點,正是我重讀詹姆斯.克利爾 (James Clear) 的經典之作 《原子習慣:細微改變帶來巨大成就的實證法則 》 後,感受最深的一點。
這本書告訴我們:別再當個用意志力硬幹的英雄,你該成為一個設計精良系統的架構師。
這本書的關鍵觀念,與其說是「習慣養成」,不如說是「系統設計」。
它完全顛覆了我對「努力」的看法。
我們常常把目標和系統搞混。
目標 (Goal) 是你想要的「結果」。例如:「我要減重 10 公斤」、「我要學會 Kubernetes」。
系統 (System) 是你達成結果的「流程」。例如:「我每週運動三次」、「我每天花 30 分鐘操作 minikube」。
目標能提供方向,但真正驅動進步的,是你的系統。
只盯著目標,就像只看著 CI/CD pipeline 的最終結果是「部署成功」,卻完全不關心 pipeline 本身的穩定性與效率。一個好的 DevOps 工程師,會花 99% 的時間在優化那條 pipeline,而不是祈禱部署成功。
贏家和輸家都有相同的目標,但贏家擁有更好的系統。
書中最震撼我的,就是「1%」的數學。這個概念我在《窮查理的普通常識》也提過,但《原子習慣》將它聚焦在「習慣」上,威力更強大。
每天進步 1%,一年後,你會強大 37 倍 (1.01^365 = 37.78)。
每天退步 1%,一年後,你會弱化到趨近於零 (0.99^365 = 0.03)。
這就像我們在重構程式碼。
每天花 15 分鐘,把一小段重複的邏輯抽成一個函式,或為一個變數換上更有意義的名稱。
這些微小的改動,當下似乎沒什麼了不起。但一年後,你的程式碼庫會變得極其健康、易於維護。
相反地,如果每天都說「這點小問題先放著」,不斷地複製貼上、寫下醜陋的臨時解法,一年後,要面對的將是無法挽救的技術債地獄。
好習慣讓時間成為你的盟友,壞習慣讓時間成為你的敵人。
這是本書最深刻的洞見。
改變習慣最有效的方法,不是專注於「你想達成什麼 (結果)」,而是專注於「你想成為誰 (身分)」。
結果導向:「我想寫出一篇技術文章。」(I want to write a tech article.)
身分導向:「我是一個樂於分享的開發者。」(I am a developer who shares knowledge.)
當你認同自己是「一個樂於分享的人」,「寫文章」就不再是一件痛苦的差事,而是你身分的自然展現。
每一次你選擇花 30 分鐘寫作,而不是滑手機,你都是在為你的新身分投下一票。
每一次你選擇重構一小段程式碼,而不是視而不見,你都是在為「我是一位重視程式碼品質的工匠」這個身分投下一票。
你的每一個 git commit
,都是在投票給你渴望成為的那種工程師。
《原子習慣》像一位資深的系統架構師,幫我們 review 了那套漏洞百出的「人生作業系統」。
它告訴我們,持續失敗不是因為我們的硬體 (意志力) 不足,而是我們的軟體 (系統) 設計有根本性的缺陷。
在我們明天深入探討打造這個系統的「四大法則」之前,先花點時間思考這三個 mindset 轉變:
專注於系統,而非目標:你想建立什麼樣的「每日工作流 (daily workflow)」,來讓你自然地朝目標前進?
擁抱 1% 的複利:今天你能做哪一件微不足道的小事,來為明天的自己「還一點技術債」?
建立身分認同:你渴望成為什麼樣的人?你今天的哪個行動,能為這個身分投下一票?
停止鞭策自己,開始設計你的系統。
明天,我們就來聊聊這個強大系統的 API——「提示、渴望、回應、獎賞」四大法則。
#原子習慣 #自我成長 #習慣養成 #系統思維 #吳桑泥的升級書單