大家都同意 AI 讓資深工程師更有價值。幾乎沒有人會問,下一代資深工程師究竟要從哪裡來。AI 自動化掉的工作,從來都不是浪費;那其實是學徒訓練,而招聘資料已經說明,最底層的那一階,已經不見了。

現在業界很愛講一個故事:AI 讓資深工程師變得更有價值。那些有判斷力的人、那些一看就能聞出設計有問題的人,會是這波變革的贏家。這是一個讓人安心的故事。它甚至是真的。

只是這個故事中間有個洞,大到足以讓凍結招募直接開進去。資深工程師不是可再生資源。沒有人一出生就預裝了 15 年的傷疤。你合作過的每一位資深工程師,當初都是從初階工程師開始,接下那些不起眼的工作,花了好幾年才一路走到今天。而 AI 則悄悄吞掉了這些年原本應該做的那些工作。

這篇不是在討論 AI 會不會寫出好程式。它確實寫得不少。這篇要談的是:能判斷程式好壞的人,供給會發生什麼事。

資深工程師到底是怎麼來的

去問一位資深工程師,究竟是什麼讓他變成資深,你不會聽到「證照」。你會聽到的是:他搞壞過哪些系統、坐過哪些事故處理、花了幾週才看懂的程式碼庫。判斷力不是下載來的,而是透過成千上萬次與真實系統的小碰撞累積出來的;其中大多數都不光鮮,很多當下甚至很無聊。

這正是「資深工程師會贏」這個敘事略過的部分。它把資深人才供給看成天氣,彷彿那東西本來就漂浮在外面,自己會補充。其實不是。那是被「製造」出來的。速度很慢、成本很高,靠的是那些願意給別人站上底層階梯的團隊,並容忍那段搖搖晃晃的過程。

你的招募計畫大概假設,當 2030 年需要資深工程師時,可以直接從市場上招。好啊。但市場其實只是別家公司以前的初階工程師。總得有某個人、某個地方,在做學徒訓練;不然根本沒有資深工程師可以招。

粗活其實就是課綱

想想看,在 AI 工具變得好用之前,初階開發者一週的工作其實長什麼樣:

  1. 樣板程式(boilerplate)—— 搭 CRUD API 端點、做表單驗證,讓你學會框架的形狀、東西放在哪裡、慣例是什麼,以及它們為什麼存在。
  2. 小型 bug 修正—— 沒人想接的 ticket,教你先看 stack trace,再看 log,然後最重要的是,看別人的程式碼。不是你會寫的程式碼,而是實際存在的程式碼。
  3. 膠水程式(glue code)—— 把 service A 接到 queue B,讓你理解系統真正是怎麼串起來的:timeout、重試、只有在 production 才重要的設定值。
  4. 追蹤別人的程式碼—— 那些「搞清楚為什麼會這樣」的任務,建立起每一個未來架構決策都要依賴的心智模型。
  5. PR 挑毛病—— 你第一個 pull request 上那 40 則留言很刺痛,但那也是業界有史以來最快的知識傳遞機制。

沒有人會替這些工作辯護。我們稱它為苦工、雜務、繳學費的東西。所以當 AI 出現,開始在幾秒內把這些全做掉時,我們很高興。終於,初階工程師可以跳過那些無聊的部分,直接做真正的工程。

可問題是,那些無聊的部分本來就是訓練。學徒水電工要花好幾年拉電線、裝接線盒。不是因為師傅不能更快完成,而是因為你必須先學會建築物到底怎麼運作,才會被允許碰那些可能致命的配電盤。把拉電線這件事交給機器人,你還是會得到有配線的建築物;只是你不再培養出水電工了。

AI 的自動化就是這麼做的。它不是減少浪費,而是刪掉了課綱,只留下考試。

而這也讓今天的初階工程師陷入一種怪異的困局:有了 AI,他們能產出比歷史上任何初階工程師都更多的輸出,同時卻累積到比歷史上任何初階工程師都更少的實作經驗。輸出從來都不是初階工作的重點。學習才是產品,ticket 只是交付機制。

資料其實已經出來了

如果沒有資料,這些話就會像空泛的思辨文。但資料已經在顯示這件事,而且是從好幾個不同方向同時顯示。

SignalFire 的《科技人才現況報告》發現,現在應屆畢業生只占大型科技公司招聘的 7%,而應屆畢業生的招募量比疫情前 2019 年水準 下降超過 50%。報告也把大家心裡話直接說出口:37% 的主管表示,比起雇用 Z 世代員工,他們更想用 AI

史丹佛大學 Erik Brynjolfsson 團隊分析了 ADP 的薪資資料,涵蓋數百萬名勞工,並發現自 2022 年底以來,在 AI 暴露程度最高的職業中,22 到 25 歲的初入職場勞工就業相對下降了 16%。軟體工程就是最具代表性的案例之一。與此同時,在同一批職業中,30 歲以上的勞工到 2025 年 5 月則成長了 6% 到 12%。同樣的工作,方向卻完全相反,並且清楚地按照年齡切開。經濟衰退不會看你的出生年份;AI 採用似乎會。

下游影響在畢業生結果上也看得出來:紐約聯邦準備銀行的資料顯示,近期電腦科學畢業生失業率為 6.1%,而整體近期畢業生平均為 4.8%。整個世代被告知該選的科系,現在表現比平均還差。

而這些數字背後的情緒也一點都不含蓄。根據 Stack Overflow 報導的調查資料70% 的招募主管表示他們認為 AI 能做實習生的工作,而 57% 表示他們對 AI 的輸出,比對剛畢業不久的人更信任。

最底層那一階不是「正在變鬆」。它已經不在梯子上了。

對單一公司來說理性,對整體來說卻在餓死未來

這裡最令人不舒服的地方是:這個故事裡沒有人做錯事。

把帳算在單一團隊、單一季度上,答案非常清楚。雇用一個初階工程師,除了完整薪資外,還要吃掉一位資深工程師一大塊時間,通常一年以上才會轉正產出;之後他還可能為了加薪 30% 跳槽到別處。AI 寫程式工具的成本,比團隊的咖啡預算還低,而且今天下午就能開始產出。如果你是手上有一個開缺、又有交付期限的工程經理,不招初階工程師,才是正確決策。任何 CFO 都會點頭;大多數也真的會。

問題在於,大家都在用同一張試算表。每家公司都個別決定,要從「市場」找資深工程師,而不是自己培養;但市場其實只是其他公司初階計畫的產物。跳過初階工程師,就是在搭便車吃別人的學徒訓練。這個做法在變成普遍現象之前都很漂亮,一旦普遍化就完蛋。

這是典型的公地悲劇,而 2031 年的資深工程師人才池,就是那片公地。沒有任何一家公司擁有它,沒有任何一家公司會因為這一季消耗它而受到懲罰,而任何人的損益表上也沒有哪一行真正反映它。

危險就在於時間差。2025 年沒被雇用的初階工程師,會變成 2028 年不存在的中階工程師,以及 2031 年不存在的資深工程師。而缺少的那一批,之後也無法補回來,因為你真正要招的,是累積多年的判斷力。你可以在一個預算週期內把薪資帶往上調;你不能把經驗調出來。

三條職涯階梯的時間線圖,分別標示 2026、2029、2032;每隔幾年就少一個底層階梯:先是初階工程師消失,接著中階階梯開始裂開,最後只剩一個負荷過重的資深階梯,圖說為「缺口每隔幾年就往上爬一階」

「也許 AI 之後就變成資深了」

誠實地說,反方論點值得好好聽,因為它並不蠢。它是這樣說的:模型進步很快,所以等到資深缺口真正出現時,AI 也會開始做資深工程師的工作。擔心初階人才管道,就像 1910 年還在擔心馬廄容量,而福特汽車已經開始大規模量產。

如果認真看,這個說法還是會卡在一個頑固的事實上:總得有人在 merge 上簽自己的名字。

當 AI 生成的 migration 在凌晨 2 點把 production 弄掛時,沒有人會接受「模型做的」這種事故報告。你的客戶不接受,審計也不接受;如果你在金融科技或醫療產業,監管機關更不會接受。責任在軟體組織裡是承重結構,不能外包給一個不能被開除、不能被彈劾、也不能被升遷的系統。最後還是得有真人審查輸出、批准它,並且對它負責。

而且 review 不是勾選方塊。要做好 review,必須知道哪些 diff 風險高、哪些只是例行更動,知道 schema change 的 blast radius 有多大,知道測試變綠是因為程式真的正確,還是只是沒測到失敗模式。那就是判斷力。也正是過去學徒訓練會產生的東西,而且正是我們現在停止訓練的人身上應該具備的東西。

所以「AI 會變成資深工程師」這個未來,反而在吃掉自己的前提:AI 寫的程式越多,人類工作就越變成 review;而業界現在卻正把賭注押在這種技能上,同時拆掉唯一已知能培養它的機器。

史丹佛的資料還有一個細節可呼應這點:在 AI 只是輔助人類的角色裡,就業保持穩定甚至成長;而那些用 AI 來學習、驗證自己工作的人,表現也比把整件事都交給 AI 的人更好。市場已經在篩選人了,不是看你有沒有用 AI,而是看你用 AI 的方式,是在培養判斷力,還是在替代判斷力。

讓學徒制繼續活著

你不可能坐在辦公桌前,改變整個產業的招募誘因。但你能控制的是:在你和你團隊已經在做的工作裡,學習還有沒有發生。

如果你還在職涯早期:

  • 先掙扎,再提問。 每個問題都先自己真正嘗試過,再去問模型。掙扎不是要被最佳化掉的低效率;它才是把課堂內容寫進你腦袋的機制。當 AI 幫你解釋你已經苦戰過的東西時,它是絕佳家教;但如果你連問題都還沒形成,它就先回答了,那它只是在撕毀你的學習。
  • 把每一個 AI diff 都當成 reviewer 來看,因為你本來就是 reviewer。 就 git blame 和你的團隊來看,那段程式就是你寫的。如果你無法解釋 diff 裡的某一行,你就還沒完成。要把「理解」變成交付物,而不是只把 merge 當成果。
  • 刻意用慢的方法做幾件事。 親手追一次 framework 的呼叫流程。先自己寫 migration,再去求助。你不是在當原教旨主義者,你是在做 reps;就像運動員明明有堆高機,還是會繼續舉重一樣。
  • 早點把 review 練好。 未來的工作重心就是 review。主動去做,研究你團隊裡最好的 reviewer 怎麼留言,學會把「為什麼這裡有風險」說清楚。這項技能的複利,比純輸出高得多。

如果你是帶團隊的人:

  • 真的聘一位初階工程師,而且要有計畫。 不是做公益,也不是拿來撐 ticket 產能。要有計畫:輪調到不同子系統、有明確指派且保留時間的 mentor、參與事故檢討。刻意培養出的一位初階工程師,原則上比零好,實務上也比三位沒有支援的初階工程師更強。
  • 分配的是理解,不只是產出。 讓他們簡報付款流程端到端怎麼跑。把他們排進 on-call shadow 輪值。叫他們先寫 postmortem 草稿。這些都不會直接交付功能,但每一件都在製造你五年後會急著想招來的那種人。
  • 保留那些有教育意義的 ticket,並交給真人。 不是那些把人榨乾的票。那些就大方自動化掉吧。但 legacy 模組裡那個逼人真的去讀系統的棘手小 bug?那種 ticket 就是學費,別拿去給模型。
  • 一起檢查 AI 的使用方式。 像 pair programming 一樣,成對看 prompt 和 diff。初階工程師怎麼用模型,現在就是他的工作流程;如果流程是隱形的,他的缺口也會是隱形的。

這些都不會出現在本季度的 velocity 上。這正是重點。學徒訓練本來也不會出現在 velocity 上,所以它才那麼容易被自動化掉,還沒人發現那原本是什麼。

不是業界決定不再培養資深工程師,而是它用一季又一季看似完全合理的決策,把生產資深工程師的機器給自動化掉了。五年後還有足夠資深工程師的團隊,會是那些從來沒有停止培養他們的團隊。


P.S. 感謝你花時間閱讀這篇文章!文中的想法與觀點皆為我個人意見。英文不是我的母語,所以我會使用 AI 幫忙修正文法,讓我的寫作更清楚、更容易閱讀。如果還是有些地方讀起來有點彆扭,還請多多見諒!


原文最初發表於 nazarboyko.com

喜歡這篇嗎?歡迎保持聯絡——我在 LinkedIn 上,隨時都很樂意聊天、交換想法,或 պարզապես 打個招呼。👋


原文出處:https://dev.to/nazar-boyko/the-junior-developer-pipeline-is-broken-and-ai-broke-it-1aai


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝10   💬1   ❤️6
318
🥈
我愛JS
📝2   💬6   ❤️3
114
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登