📌 30 秒摘要(Layer 3|讀完用自己的話寫一句)

這本書的一句話:軟體是在大腦裡創造出來的,所以與其只升級語言與工具,不如「重構你的濕件(大腦)」——刻意訓練學習力、思考力與直覺,讓自己從照規則辦事的新手,一路走向靠情境直覺判斷的專家。

🗺 心智圖(Canvas)

程式設計師的思維修煉

程式設計師的思維修煉

開發認知潛能的九堂課

🎚 從新手到專家

🎯 什麼情境該想到我

當你想判斷自己在某項技能上到底在哪個程度、下一步該怎麼進步,或者想知道怎麼帶不同程度的人的時候。

出處:Andy Hunt《程式設計師的思維修煉》(Pragmatic Thinking and Learning,站內為簡體譯本,引文保留原書字形)。對應第 2 章。

⚙️ 怎麼用

前提:針對每一項技能

「德雷福斯模型针对每项技能。」「这是一个情境模型,而不是个性或能力模型。」——「你可能只是烹饪新手,但却可能是跳伞专家。」

五個階段

階段原書的描述需要什麼
1. 新手很在乎能不能成功,出錯容易慌亂;不知道哪條規則最相關,意外發生就不知所措「与情境无关的规则」,形式是「当 X 发生时,执行 Y」;「新手需要指令清单」
2. 高級新手能稍微擺脫固定的規則,自己嘗試任務,但仍難以解決問題;想快速找資訊(例如快速翻文件找方法的定義)還沒有全貌——「高级新手不想要全局思维」
3. 勝任者能建立問題領域的概念模型;能獨立解決問題;「开始寻求和运用专家的意见」;常被視為「有主動性」「足智多謀」但還不能反思與自我糾正
4. 精通者「需要全局思维」;「精通者能够自我纠正」;能從他人的經驗與案例中學習;能理解並運用「格言」(在情境中使用,不是指令清單);能有效運用設計模式全貌與情境
5. 專家知識的主要來源;約占 1%–5%;「专家凭直觉工作」,而且「不需要理由」;可能完全說不清自己怎麼得出結論不要用規則束縛他們

三個轉變:從依賴規則轉向依賴直覺;問題不再是一堆同樣重要的單元,而是只有部分相關的整體;從問題的旁觀者變成系統的一部分。

原書也指出:「经验」要能改變思維——「一年的经验重复了九次」不算。

原書引用的研究

  • 規則會斷送專家:研究者請資深飛行員替新手訂出最佳實踐的規則,新手照著做確實進步了;但再要求專家遵守自己訂的規則,「结果专家的表现明显不如以往」。
  • 大多數人停在第二階段:技能的分布不是鐘形曲線——「大多数人的大多数技能……从来没有高于第二阶段高级新手」。
  • 一次用掉 17 個設計模式:一位開發者剛讀完 GoF,就把 23 個模式中的 17 個塞進一小段平凡的程式碼——高級新手與勝任者常把設計模式當成指令清單用。

自我定位最大的障礙:「二階不勝任」

原書引用 Kruger 與 Dunning 的研究——一位銀行搶匪以為臉上塗了檸檬汁,攝影機就拍不到他。缺乏準確自我評估的狀態,原書稱為「二阶不胜任(second-order incompetence),也就是说,不知道自己不知道」。低技能的人會高估自己;唯一的矯正方法是提升技能,進而提升元認知能力。

原書的實踐單元

  1. 自我評價:你工作中的主要技能,在模型的什麼位置?
  2. 辨別哪些技能在哪個階段——「注意可能会出现二阶不胜任的情况」。
  3. 「对于每项技能,判断你需要做什么才能提高一个级别」。

第 9 章的提醒:「保證誠實。你需要更多的訣竅還是更多的情境?更多規則還是更多直覺?」

用在帶人

「一种规格并非处处适用」:

  • 新手需要「快速成功和与情境无关的规则」——給他們需要的幫助,而不是全貌。
  • 專家需要全貌——「不要用约束性、官僚的规则妨碍他们」。
  • 團隊理想上混合各種層次。

在工作中的樣子:一個工程師的自評

技能階段需要什麼才能進一級
Go 語言勝任者讀好的開源專案、讓資深者 review,理解各種寫法背後的取捨(情境)
Kubernetes高級新手一份「遇到 X 就查 Y」的檢查清單,加上親手處理幾次事故
系統設計新手從具體的規則開始(例如 工具-容量估算 的步驟)

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • 專家不是完人:專家會犯錯、有認知偏誤,彼此之間也會有分歧。
  • 專家不等於老師:教學是另一項技能;專家常說不清自己怎麼決策,所以「处在胜任水平的人可能更合适教一名新手」。
  • 模型是工具,不是鏡子:原書引用了形式模型可能造成的危害,例如把模型和現實混為一談。不要拿階段去替別人貼標籤。

🔗 相關工具

德雷福斯五階 新手使用規則,專家使用直覺

多數人一生停在「高級新手」 能辦事,但不想理解全局

逼專家講死規則 反而會讓他表現變差

🧠 認識並調試你的大腦

雙 CPU:L 模式線性語言 /R 模式整體直覺

好點子常來自被忽略的 R 模式

神經可塑性:大腦終生可重塑 成年人也能靠刻意練習長出新能力

📖 主動學習

🎯 什麼情境該想到我

當你要讀一本技術書學新東西,卻發現讀完就忘、或者讀了很多卻抓不到重點的時候。

出處:Andy Hunt《程式設計師的思維修煉》(Pragmatic Thinking and Learning,站內為簡體譯本,引文保留原書字形)。對應第 6 章 6.7 節。SQ3R 原出自 Robinson 的《Effective Study》。

⚙️ 怎麼用

前提:閱讀是效率最低的學習方式

原書說:「书面的指令通常被认为是最无效的」;「相比于任何由经验式的学习方法,阅读是一种效率最低的学习方法」。要讓閱讀有效,就要讓它更主動。

五個步驟

步驟原書的說法做法
調查 Survey「扫描目录和每章总结,得出总体看法。」看目錄、各章的介紹與總結,在深入細節前得到整體印象
問題 Question「记录所有问题。」寫下你想弄明白的所有問題;「把各章节的标题改写成问题」
閱讀 Read「阅读全部内容。」可以隨身帶著,空檔時讀;「在困难的部分放慢速度,如果内容不是很清楚就重新阅读」
復述 Recite「总结,做笔记,用自己的话来描述。」邊讀邊用自己的話復述、回想;原書也建議用圖像:「这个主题作为一部电影看起来像什么?卡通吗?」
回顧 Review「重读,扩展笔记,与同事讨论。」必要時重讀、擴展筆記,可以用心智圖

原書的例子:讀一本新程式語言的書

  • 調查:翻目錄,看到語法介紹、幾個簡單的專案,還有目前不感興趣的進階特性。
  • 提問:它是單繼承、多繼承還是混合?迭代器怎麼用?模組怎麼建立與管理?執行效能如何?
  • 閱讀:時間多就多讀,時間緊就少讀。
  • 復述:「自欺欺人并不难,你可以认为”是的,我能记住全部”。但是这并不容易。」
  • 回顧:做筆記、在關鍵表格上註解、在白板上塗鴉,然後跟朋友或郵件列表討論。

側欄:測試驅動學習

「重复阅读同样的材料或者重复学习相同的笔记,不会有助于你记住材料。尝试测试吧。」做法包括:

  • 用新語言寫一個程式——原書特別強調要「与书中的简单例子和练习不同」。
  • 向同事解釋新方法的關鍵部分。
  • 間隔測試:2-2-2-6——兩小時、兩天、兩週、六個月後各測一次自己。原因是遺忘大致呈指數曲線,間隔測試能顯著增強記憶。

結合心智圖

讀書時用心智圖做筆記;進入回顧階段時,依你的理解重畫與修改——「这种方法比其他笔记形式或者重新看书要有效得多」。

在工作中的樣子:讀一份新框架的官方文件

  • S:看文件的側邊欄目錄與「Getting Started」。
  • Q:這個框架怎麼處理錯誤?怎麼測試?效能瓶頸通常在哪?
  • R:先讀跟你的問題有關的章節。
  • R:讀完一節,關掉文件,用自己的話寫三行摘要。
  • R:用它寫一個跟教學範例不一樣的小工具;一週後再回來看筆記。

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • SQ3R 只是其中一種方法:「广为使用的好方法为数不少……与其功效类似的方法还有很多。」「没有放之四海而皆准的办法。」
  • 2-2-2-6 不是最有效的:原書自己說它「不是使用时间的最有效方法,特别是当有大量的材料时」——每個事實的遺忘曲線不同,手動追蹤太困難,建議用 SuperMemo 這類間隔重複軟體(依每個項目的遺忘情況安排複習)。
  • 閱讀本身仍然是效率最低的:最有效的是觀察與模仿,以及實際去做。

🔗 相關工具

🎯 什麼情境該想到我

當你要整理一個還不確定結構的主題——學新東西、做設計、除錯、規劃——線性的大綱寫不出來的時候。

出處:Andy Hunt《程式設計師的思維修煉》(Pragmatic Thinking and Learning,站內為簡體譯本,引文保留原書字形)。對應第 6 章 6.8 節。

⚙️ 怎麼用

定義與步驟

「思维导图是一种图表,显示各个主题和它们之间的关系。」原書說它由托尼・布贊首創,但類似的圖表至少從三世紀就有了。

「规则是松散的,但是大致步骤如下」:

  1. 準備一張很大的無格白紙。
  2. 在紙中間寫上標題,用圓圈框起來。
  3. 每個主要子標題從圓圈引出一條線,寫上標題。
  4. 對其他層次的節點重複同樣的做法。
  5. 其他單獨的事實或想法,從合適的標題引出線寫上。

原則:所有節點都要相連(沒有孤立的節點);只有一個根節點;用顏色、符號標記;可以用橫跨頁面的長箭頭連接相關的標籤。「避免顺时针地填写元素——这只是一种绕圈形式的大纲。」

為什麼比大綱好

  • 每加入一個新想法都要問「这属于哪一块?」——所以你必須評估想法之間的關係。
  • 線性大綱的層次結構,會壓制那些不符合結構的想法。
  • 空間位置、顏色、符號增加了表達的豐富性。

重畫:增強記憶

學到新東西之後,在白紙上再畫一遍——「重画和从记忆中重新获取信息有助于增强连接」。作者提到他整理課堂筆記的經驗:「即使我从没有再看过这些笔记……整理草稿笔记的过程是最有价值的。」

兩種用法

練習版(「試一試」):

  1. 寫下一份對你很重要的 4–5 項無序清單。
  2. 用筆在紙上畫成心智圖。
  3. 等一天。
  4. 花 15–20 分鐘修飾:加粗線、上色、塗鴉、圖片、卡通。
  5. 一週後回顧,看有沒有意外的發現。

探索版(設計、除錯、規劃):

  • 用詞語當標題;重要的連線用粗線,不確定的用細線。
  • 「非常快速地做第一次迭代——就像一次印象派素描。这会有利于摆脱 L 型的统治」(L 型是作者對線性、分析式思考的稱呼)。
  • 隨身帶著,不必一次畫完——「让它乱一会」。

原書引用 Jared Richardson 的話:「我在写作或者编程时使用思维导图改变和关注我自己。它强迫我后退一步,清空想法,然后告诉我如何前进。」

協作版:每人拿便利貼和筆,頭腦風暴後把便利貼貼上白板,歸類同主題、圈起來連線,拍照寄給大家。

在工作中的樣子

除錯:中心寫「訂單重複扣款」;分支是「客戶端重送」「閘道重試」「訊息佇列重送」「資料庫交易」——每個分支下寫已知的事實與待驗證的假設,不確定的連線畫細線。畫的過程會逼你問:「這個現象屬於哪一個分支?」

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • 適合不確定的時候:「当你不完全确定你会发现什么时,思维导图是最有效的。」內容已經很確定時,普通的清單可能更有效率(這是從原書推導的,原書沒有明講)。
  • 軟體工具與手繪:原書說軟體「更有利于协作和文档——而不是头脑风暴、学习和探索性思维」,這些活動建議手繪。作者說他在電腦上畫的心智圖很酷,但「这与手动就是不一样」。
  • 不要強迫:修飾、塗鴉這類非目標導向的「玩」,「千万不要过于强迫」。

🔗 相關工具

大腦不是等著被填滿的容器 而是需要被點燃的火焰

🎯 經營學習投資

🎯 什麼情境該想到我

當你想有系統地學習,但總是被緊急的事情排擠,或者學了很多卻沒有方向的時候。

出處:Andy Hunt《程式設計師的思維修煉》(Pragmatic Thinking and Learning,站內為簡體譯本,引文保留原書字形)。對應第 6 章 6.2、6.3 節。

⚙️ 怎麼用

為什麼隨機學習會失敗

原書說,把學習流放到「空閒時間」,「就等同于失败」。「时间是无法创造和销毁的。时间只能分配。」

原書對一般企業培訓的批評:「学习不是强加于你的」「仅仅掌握知识,而不去实践,没有用」「随机的方法,没有目标和反馈,往往会导致随机的结果」。

SMART 目標

「具体的、可度量的、可实现的、相关的和时间可控的(Specific, Measurable, Achievable, Relevant, and Time-boxed)」

先分清目標與目標任務:目標(goal)是「一种理想状态……是你努力要达到的状态」;目標任務(objective)是「一种帮你接近目标的事物」。SMART 是套用在目標任務上的。(原書也說「不要在这上面太过计较」。)

特性原書的說法
S 具體不是「我想學 Erlang」,而是「我想要用 Erlang 编写一个可以动态生成内容的 Web 服务器」
M 可度量「如何知道你何时完成?」「如果你认为无法度量自己的目标任务,那么很可能它还不够具体」
A 可實現「一个你无法达到的目标不是目标,只是一种疯狂、吸食灵魂的自我挫败」;要從現在的狀況出發
R 相關與你有關、有熱情、在你的掌控之中
T 時間可控「这可能是目标最重要的一个特性」——沒有期限,就會被每天更緊急的事排擠

原書的例子:「我想要苗條」不是目標,只是願景——減多少?什麼時候完成?控制熱量還是增加運動?

卡住時:建立五到十分鐘的小任務。原書引 Johanna Rothman:「你创建的小任务越多,你就越容易看清自己与目标的距离。」

務實投資計畫:像管理金融投資一樣管理知識投資

  1. 制定具體的計畫:用 SMART,分三層——現在(下一步行動)、明年的目標、五年後的目標。時間範圍可以調整;發展慢的行業也可以是現在、三年、十年。原書引艾森豪:「作计划比计划本身重要得多。」
  2. 多樣化:組合不同的語言、環境、技術、行業,以及非技術領域(管理、公開演講、人類學、音樂、藝術)。也要權衡風險與回報——原書的例子是:學 .NET 低風險低回報,早期學 Java 高風險高回報。原書說:「所有知识投资都有价值」,即使工作用不上,也會影響你思考和解決問題的方式。
  3. 主動(而非被動)地投資:「你需要客观地按天来评估你的计划」——依最新的發展增加新項目、取消沒有效益的。
  4. 定期投資(成本平均法):「养成一种习惯。」每次坐下來學習之前,先計畫好要做什麼——原書的例子:學一個新框架前,先準備好書、下載好軟體、想好要寫什麼;「只是周六下午或者周二晚上很可能是不够的」。

在工作中的樣子

層次範例
現在這週讀完 pprof 的官方文件,並對我們的訂單服務跑一次 CPU profile
明年能獨立完成一次服務的效能調校,把 p99 降低 30%
五年成為團隊中效能與可靠性的負責人
多樣化另外每季讀一本非技術的書(例如本站的溝通類書籍)
定期每週二、四早上 8:00–8:45,開始前先寫下這次要做什麼

🧪 我實際套用的紀錄

  • (待填)

⚠️ 注意 / 什麼時候不適用

  • 時間不等於價值:「时间和价值不是等同的」——看球賽、玩遊戲不會增加你的價值,除非你是四分衛或遊戲開發者。
  • 目標本身不保證成功:「目标本身并不能保证你成功。」
  • 要放在更大的脈絡裡看:目標要考慮家庭、事業、財務、社區;原書提醒,整個專案都靠加班達成,會讓團隊與家庭付出代價。

🔗 相關工具

用 SMART 目標與投資組合心態 管理知識,別靠碰運氣

⏱ 控制注意力

情境切換成本高昂 被打斷後重載心智情境約需 20 分鐘

時間無法創造或銷毀,只能分配 多工其實是效率殺手

Link to original

🧰 這本書給我的工具(連到 tools/ 工具卡)

✨ 關鍵重點(Layer 1–2|高亮遞進)

  • 德雷福斯技能模型:技能養成分五階,新手靠規則、專家靠直覺;同一個人在不同技能上可能落在不同階段。
  • 多數人一生停在「高級新手」:能處理日常任務,但不想理解全局、也不主動反省。
  • 大腦像雙 CPU:偏線性語言的 L 模式與偏整體直覺的 R 模式,好點子常來自被忽略的 R 模式。
  • 專家的本事來自直覺與情境模式匹配,而不是有意識地套規則——所以逼專家講死規則反而會讓他變差。
  • 神經可塑性:大腦終生可重塑,成年人也能靠刻意練習長出新的能力,不是「定型」了。
  • 情境切換成本高昂:被打斷後重新載入心智情境約需 20 分鐘,多工其實是效率殺手。
  • 主動學習遠勝被動灌輸:大腦不是等著被填滿的容器,而是需要被點燃的火焰。
  • 要刻意經營自己的學習:用 SMART 目標與投資組合的心態管理知識,別靠碰運氣。

💬 金句原文(Layer 0|讀時貼進來)

  • 「软件是在头脑中创建的。」
  • 「新手使用规则,专家使用直觉。」
  • 「大脑不是一个用于填充的容器,而是一束需要点燃的火焰。」(普盧塔赫)
  • 「时间是无法创造和销毁的。时间只能分配。」

🔗 相關

  • 軟體工程 —— 主題索引,那裡收錄本書的認知與學習工具在整體技術地圖中的位置