🎯 什麼情境該想到我

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

出處: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」的檢查清單,加上親手處理幾次事故
系統設計新手從具體的規則開始(例如 工具-容量估算 的步驟)

🧪 我實際套用的紀錄

  • (待填)

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

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

🔗 相關工具