我寫程式的時間夠長了,還記得 Stack Overflow 還沒出現的時候。
如果你不懂某些東西,就去查閱文件。
如果查閱文件沒有幫助,你就自己去嘗試。
如果實驗失敗,你會遭受損失。
正是那段苦難經歷,造就瞭如今的年輕人很少有機會創造的東西:
除錯本能。
在過去十年指導了 37 位初級開發人員後,我發現了一個規律。
他們並不懶惰。
他們並不愚蠢。
他們沒有這個權利。
在YouTube上看起來很簡單的世界裡,他們卻感到不知所措。
如今的年輕開發者們成長於內容創作的黃金時代。
有:
10 小時 React 課程
5分鐘「打造Netflix克隆版」影片
人工智慧編寫程式碼的速度比人類思考的速度還快
擁有 5 萬顆星的倉庫
一切看起來都很乾淨。
但生產程式碼並非教程。
教程中:
npm install
npm start
✨ It works.
現實生活中:
依賴衝突。
環境不匹配。
CI failing.
Docker 無法建置。
2019 年有人把憑證硬編碼進去了。
沒人知道它為什麼有效。
沒人願意碰它。
那是他們的第一份工作。
初級:
“我們應該採用微服務架構嗎?”
資深人士(內部):
你還沒有交付過一個整體式產品。
他們讀過以下內容:
分散式系統
事件驅動架構
CQRS
無伺服器
Kubernetes
但他們並沒有感受到:
凌晨 2 點的生產漏洞
記憶體洩漏會慢慢摧毀伺服器
害怕刪除一行遺留程式碼
建築設計是創傷知情設計。
這是透過痛苦換來的。
他們看到一位資深人士在 10 分鐘內修復了一個漏洞。
他們看不到的是:
模式辨識的十年歷程。
已修復的200個類似漏洞。
首先查看日誌的本能反應。
拒絕猜測。
資深開發人員打字速度並不快。
我們只知道屍體埋在哪裡。
年輕人的心態:
“我今天寫了600行。”
老年人的心態:
“我今天刪掉了800行程式碼。”
我職業生涯中最有價值的程式碼,就是我刪除的程式碼。
初級開發人員希望透過建立專案來證明自己。
資深開發人員透過簡化來證明自己的能力。
我們教授:
句法
框架
工具
模式
我們很少教:
如何有系統地進行除錯
如何不引起恐慌地閱讀遺留程式碼
如何提出好問題
如何在困惑中保持冷靜而不放棄
從初級到高級,最大的變化不是技術方面的。
這是情緒調節。
當所有方法都行不通的時候,你能保持冷靜嗎?
你能承認你不知道嗎?
你能忍住不重寫所有內容嗎?
我的一位學生曾經告訴我:
“我不想成為房間裡最聰明的人,我只想成為最冷靜的人。”
那時我就知道他們肯定能成功。
因為軟體開發與智能無關。
關鍵在於在不確定情況下保持冷靜。
不再開設更多課程。
不再需要更多框架了。
不再提供人工智慧提示。
他們需要:
允許掙扎
是時候打破常規了
長者們不僅要解釋“是什麼”,更要解釋“為什麼”。
減少建築辯論
更多除錯會話
他們需要看到高年級學生公開失敗。
我們曾經也很糟糕。
我們還:
所有東西都過度設計了。
重寫了原本不需要重寫的程式碼。
學習了設計模式之後,我們都覺得自己是天才了。
在不了解限制條件的情況下對遺留程式碼進行評判。
經驗並不會讓你更聰明。
它使你更加謙遜。
如果你是一位正在閱讀本文的初級開發人員:
你並沒有落後。
你來得早了。
如果您是老年人:
記住二年級時的樣子。
導師制並非在於炫耀你懂得多少。
這是為了讓別人減少恐懼。