當我開始認真地在我的業餘專案中使用人工智慧工具時,我期待工作會變得更輕鬆。人工智慧可以處理繁瑣的重複性工作,讓我專注於更有趣的部分。這就是它承諾的。
事情並沒有變得更容易。反而,那些有趣的部分變得更難、更頻繁、更令人疲憊。
我並非孤例。一位谷歌高級工程師最近因為離職而走紅網絡——並非因為薪水或福利,而是因為工作變得倉促且意義不大。人工智慧被強行塞進不該涉足的領域。他經常凌晨兩點被叫醒。他寫道: “我不想成為別人的執行工具。”
如果這種情況發生在Google——全球科技實力最強的公司之一——那麼我們就有必要探討人工智慧究竟會對軟體工程產生怎樣的影響。不是在新聞稿裡,而是在實際操作中。
我認為事情的真相是這樣的。
在軟體工程發展的大部分歷史時期,這項工作大致可以分解為以下幾種類型:
80%——執行
編寫樣板程式碼
修復重複出現的錯誤
行動工單和更新文件
設定配置和環境
為已知行為撰寫測試
20%——深度思考
理解真正的問題
在約束條件下設計系統
除錯無人預料到的極端情況
在資訊不完整的情況下做出權衡
知道什麼不該建
80%是基礎性工作,雖然必不可少,但可以學習。真正考驗經驗的,是剩下的20%——資深工程師的頭銜並非取決於打字速度,而是取決於思維清晰度。
像 Claude Code、Cursor 和 GitHub Copilot 這樣的工具在執行層確實非常出色。樣板程式碼?不存在。標準的 CRUD 端點?幾秒鐘就能完成。重複的測試?在你喝完咖啡之前就生成好了。
當時的說法是:這是個好訊息。工程師們從枯燥乏味的工作中解放出來,可以專注於解決有趣的問題。
從某種意義上來說,這沒錯。但以下這些話卻沒人說出口:
那20%的時間之所以難熬,正是因為它需要持續、高度集中註意力。如今,工程師們卻被要求長期維持這種狀態──而人腦並非為此而生。
20%的工作量已經變成了新的80%。而且,它帶來的疲憊感與以往80%的工作量完全不同。
寫三小時的樣板程式碼固然枯燥乏味,但大腦終究會恢復。而花三小時設計分散式系統的故障模式、權衡架構優劣、除錯只在特定負載下才會出現的競態條件——這才是另一種疲憊。人工智慧非但沒有減少你做這些工作的頻率,反而增加了。
人工智慧領域一直在討論上下文視窗的問題。模型可以容納多少個詞元?我們如何優化檢索?我們如何確保模型在正確的時間獲得正確的資訊?
這是一個完全合理的工程問題。但還有另一個沒人提及的背景資訊。
⚠️ 人類工程師的上下文視窗並沒有擴大。它的大腦仍然是原來的大腦——只是現在需要處理更複雜的架構,在不確定性下更快地做出決策,並在系統間更頻繁地切換上下文。與模型不同,你無法簡單地升級到更長的上下文。你無法為你的前額葉皮質增加記憶體。
這位谷歌工程師描述了凌晨兩點被呼叫,直到早上五到六點才能再次入睡的情況。這不是生產力問題,而是認知負荷問題。而這種情況正在成為常態,而非例外。
我不是紙上談兵。我每天都在我的五個副業專案中使用這些工具。
生產力提升是實實在在的——我的產品交付速度比以往任何時候都快。但認知負荷也比以往任何時候都高。節省下來的每一小時執行時間,都直接投入更深入的思考。上週,我花了一整個下午來思考一個架構決策:如何處理單體倉庫中五個產品之間的共享狀態。以前,這個決策需要好幾天才能做出,因為執行工作本身就給了我一些思考的時間。現在,執行工作瞬間完成──思考的時間必須刻意安排,否則根本無法實現。
我並沒有減少程式碼編寫量,反而增加了決策量。而決策才是成本最高的部分。
現在比以往任何時候都更需要保護你的深度工作時間。當人工智慧處理淺層工作時,淺層幹擾造成的損失也會隨之增加。以前一則 Slack 通知可能只會讓你浪費十分鐘,但現在卻可能讓你做出錯誤的架構決策。我現在每天早上都會預留兩個小時,之後才會打開任何與人工智慧相關的程式。
要習慣說「我需要考慮一下」。人工智慧帶來的速度優勢會讓人感到壓力,迫使他們更快做出決定。要抵抗這種壓力。把「讓我好好想想」當作一種專業的回應,而不是承認自己反應慢,這是目前最被低估的技能之一。
將認知恢復視為工作的一部分。過去,80% 的工作時間能讓大腦自然休息——從深度思考切換到日常執行,其實就是一種變相的恢復。但這種休息方式已經不存在。刻意用一些輕鬆的任務來結束深度工作,會帶來顯著的改變。
要知道何時不該使用人工智慧。有時候,慢慢寫程式反而有助於你理解系統。我曾經讓人工智慧為我的一個產品產生了一整層資料獲取層。它看起來很簡潔,通過了我的快速審核,然後我就發布了。三週後,我遇到了一個無法除錯的快取錯誤——因為我根本無法理解這層程式碼的工作原理。我花了整整兩天時間修復這個問題,如果是我自己寫,兩個小時就能搞定。理解上的不足是真實存在的,而且它總是在最糟糕的時候顯現出來。
這位谷歌工程師說,工作變得倉促且意義不大。我不認為人工智慧本身就讓工作意義不大——但它帶來的快節奏,如果不加註意,確實會讓人產生這種感覺。
而我反覆思考的問題是:剩下的20%——系統設計、權衡取捨、在不確定性下除錯、以及知道哪些功能不該建造——這些過去需要數年時間才能開發完成。初級工程師們在80%的執行工作奠定的基礎上,逐步建立這些功能。而如今,這部分基礎正迅速消失。
人工智慧不會取代工程師,它只是縮短了工程師所有工作的時間。這究竟是福是禍,完全取決於你如何精心安排剩餘的工作。
自從引進人工智慧工具以來,你覺得工作難度增加了,還是真的變得更輕鬆了?你團隊中的初級工程師狀況如何?他們是否獲得了所需的基礎,還是在準備不足的情況下就被推入了深水區?