“這段為什麼不直接用AI 產生的那個?反正測試都過了。”
類似的對話,也越來越頻繁地出現在各家公司的code review 現場。年輕的工程師能飛快地把功能”做出來”——PR 乾淨、測試通過、需求關閉;可一旦被追問”這裡為什麼這麼寫””半夜線上炸了你第一步查哪兒””這個寫法將來會不會埋坑”,往往就答不上來了。真正讓帶他的人後背發涼的,不是某一次卡殼,而是一個更冷的念頭:如果AI 已經替他抹平了大部分掙扎,他還會不會有機會長出那套本該在掙扎裡形成的判斷力?
而在管理階層那邊,這筆帳算得清清楚楚。一位技術負責人最近就幫我算過一筆。
他的團隊今年有三個交付節點撞在一起。按過去的辦法,他得招兩三個初級工程師,先把人補進來,再讓團隊裡的老人慢慢帶。但前半年,這幾個人大概率不是產出,而是成本:需求要一句句講,代碼要逐行review,線上問題不敢讓他們獨立碰,寫出來的東西還得有人收尾。等他們真能獨當一面,專案窗口多半早過去了。
所以他沒這麼做。他為現有團隊配齊了AI 程式設計工具,讓幾個中高階工程師把需求拆得更細,把樣板程式碼、介面聯調、測試腳本和文件交給AI。結果很直接:節點沒誤,人沒多招,預算還省了一截。
從任何一個季度看,這都是一個無可指摘的決定。
問題是,今年幾乎每家科技公司都在做同樣的決定。當所有人都發現”資深工程師+ AI”就能頂掉大半新人補位的活,一件沒人願意挑明的事正在發生:這個行業供給資深工程師的入口,正在悄悄收窄。
這不是一個”AI 搶走年輕人飯碗”的故事,真相要冷靜得多。 AI 沒有直接殺死新人,它只是讓企業越來越沒有理由去招募、培養、容忍新人。企業用AI 填上了今天的產能缺口,卻把人才供給的窟窿,挪到了幾年以後。
這是一筆很像”技術債”的帳:眼下無痛,短期甚至相當划算,卻會在未來某一刻集中到期。差別只在於,技術債拖垮的是一個程式碼庫,而人才債拖垮的,是一個產業的下一代。
最先消失的,不是程式設計師,而是”新人入場的理由”
要理解這筆賬,得先想清楚一件事:過去,初級程式設計師憑什麼能進一家公司?
答案有點反直覺:恰恰不是因為他們能力強。他們寫得慢、想得淺、容易漏掉邊界狀況,對線上系統還沒什麼敬畏心。但即便如此,企業還是年年招他們——因為團隊裡總有一大堆低風險、低難度、卻又必須有人幹的雜活:改一個頁面、補一個接口、寫一個腳本、修一個邊角bug、整理一份文檔、跑一遍測試用例。
這些活看著不起眼,卻是新人踏進工程世界的第一張門票。公司用它們換來未來的人才儲備,新人用它們換來在真實系統裡練手的機會。這筆交易過去談不上完美,甚至常常粗糙,但它一直都在。
AI 出現之後,最先被吃掉的,恰恰是這類活。樣板程式碼能生成,單元測試能補齊,介面文件能整理,簡單bug 能讓模型先定位,前端頁面能從一張截圖直接還原。過去一個新人要磨兩天的東西,現在一個中級工程師帶著AI,半天就交了。
於是企業的算盤變了。它不再問”AI 能不能完全取代一個初級工程師”——答案顯然是不能;它問的是一個更現實的問題:”既然現有團隊加上AI 就能頂住交付,我為什麼還要招一個半年內不穩定、需要人帶、還可能出錯的新人?”
這才是關鍵。初級崗位不是被AI 正面打敗的,而是失去了進入組織的理由。
這比”AI 替代程式設計師”隱蔽得多。它不會表現為一場轟轟烈烈的失業,而是悄悄藏在招聘計劃裡少掉的幾個校招名額、HC 審批裡劃掉的一行junior、部門負責人一句”先不招了,讓現有團隊用工具頂一頂”裡。每一步都很理性──可是所有理性加在一起,就成了結構性的斷檔。
短期看,這是一筆划算的買賣
得先承認:企業這麼做,不蠢,也不壞。
過去技術團隊擴張靠的是一套粗放邏輯:需求多了就加人,專案多了就擴組,老人帶新人,慢慢頂上來。這套打法天生低效——新人頭幾個月的產出,往往蓋不住帶教的成本;業務又變得快,人還沒帶出來,方向已經改了。 AI 給了管理者一個舒服得多的選項:不擴編,先提效——資深的人拆任務、把關,中級的人用AI 出初稿。溝通成本更低,交付更確定,管理半徑更小,還省下了培養新人那段漫長又不確定的投入。在降本增效的周期裡,這幾乎是最容易被簽字通過的方案。
數據也在往同一個方向走。美國勞工統計局的職缺與勞動力流動調查顯示,資訊產業招募熱度已明顯低於2022 年高點。同時,多項招聘市場觀察都指向同一個現象:入門級技術職位承壓更明顯。紐約聯邦儲備銀行關於近期畢業生的數據也顯示,電腦科學、電腦工程應屆生的失業率近年來明顯抬升,已不再低於全體應屆生的平均水準。
需要說明的是,依專業拆分的應屆就業資料樣本有限、年度波動也大,不宜把某一年的排名過度解讀成”讀計算機不如讀某某專業”。但放長看,趨勢是清楚的:過去”學CS 就有確定性入場券”的時代,正在鬆動。
這背後的邏輯並不複雜:AI 是個擴大機,不是替代品。它能放大一個人已有的判斷力,卻無法憑空給一個人判斷力。 一個資深工程師用AI,能更快地寫代碼、查問題、驗證方案——因為他知道哪裡該信、哪裡該改;一個毫無工程經驗的新人用AI,很可能只是更快地產出一堆連自己都講不清的代碼。於是企業自然傾向:留住會判斷的人,再用AI 去補執行力。
這正是這一輪變化最冷的地方:AI 並不平均地托舉每個人。它先抬高那些已經會判斷的人,再擠出那些本該靠幹活來練出判斷力的人。短期看,這叫效率提升;長期看,這叫訓練場消失。
資深工程師不是招來的,是熬出來的
業界有一個常被忽略的事實:資深工程師,不是從招募網站長出來的。
一個人從”能寫代碼”到”能在復雜系統裡做出可靠判斷”,中間隔著無數不體面的過程:看不懂祖傳代碼,被線上bug 折磨到崩潰,被review 打回去重寫,中間隔著無數不體面的過程:看不懂祖傳代碼,被線上bug 折磨到崩潰,被review 打回去重寫,在一次次事故複盤裡才明白”這裡為什麼不能圖快”。這些經歷很慢、很笨,也很難寫進效率報表,可工程能力恰恰就是這麼長出來的。
一個可靠的工程師,值錢的從來不是”能不能寫出一個函數”,而是”他知道這個函數丟進系統之後會發生什麼”——邊界在哪,哪裡將來會變成技術債,哪個看似簡單的需求會把整個系統拖下水。這種判斷力,灌不進去,也生成不出來,它只來自真實的回饋。而過去,新人正是靠那些低階任務一點點攢下回饋的:寫錯了被review,上線掛了被追責,程式碼難維護被老項目反噬。
現在的問題是,AI 正在替新人把這些過程統統跳過。
Anthropic 的一項研究顯示,在學習陌生程式碼庫的任務中,使用AI 的一組測驗平均得分為50%,手寫程式碼的一組為67%,差距最大的是偵錯題。真正拉開差距的,不是”用不用AI”,而是怎麼用:把AI 當概念討論對象的人,更容易保留理解;把它當代筆的人,則更容易繞過理解。
同樣一件事,對資深和新人,意味著完全不同的結果。資深的人無所謂,他腦子裡早有一套成熟的模型,知道AI 寫的程式碼哪裡可疑、什麼時候該推翻重來。新人沒有這套底子。他要是一上來就把AI 當答案機器,就會很快嚐到一種虛假的成就感——需求做完了、PR 合併了——可讀懂系統、定位問題、為後果兜底這些真本事,根本沒跟著長出來。
於是供給端被兩頭收緊:一頭,企業減少初級招聘,新人越來越難擠進真實系統;另一頭,就算擠進來了,也可能靠著AI 繞過最該經歷的磨練。這才是”人才負債”的真正意義-不是今天少招一個人,明天就少一個人寫代碼;而是今天少給一個新人真實的訓練機會,五年後就少一個能在關鍵時刻兜底的人。
更普遍的結果,是市場上會出現一批”資深新手”:履歷上寫著五六年經驗,認知深度卻還停留在當年新人的水平。他們能熟練地調用各種AI 工具、把功能”做出來”,卻獨立定位不了一個沒有現成日誌、由競態條件引發的幽靈bug——因為真正需要靠時間和事故餵出來的那部分判斷力,從來沒在他們身上長出來過。
別全怪AI:這條管道本來就不夠結實
把鍋子全甩給AI,也是一種偷懶。
現實是,很多公司過去也沒真正建起過完整的培養體系。所謂”帶新人”,不少時候就是把人丟進專案裡自生自滅:老人沒空帶,專案不允許慢慢教,績效也從不獎勵帶人。所謂師徒制,說到底只是組織缺乏系統訓練能力之後,湊合打的一塊補丁。
所以有一種反方觀點值得認真聽:AI 並沒有打斷一條原本健康的管道,它只是讓這條管道本來就脆弱的真相顯了形。這話沒錯──但脆弱,不等於沒用。過去管道再脆弱,至少還在轉:新人總能靠”活總得有人幹”被捲進來,公司再不情願,也得分點低階任務給他們;老人再忙,也會在review 和救火裡順手教上兩句。這套機制談不上理想,卻好歹維持著產業的世代流動。
AI 一來,連這個不理想的入口也在關上。過去是公司不擅長培養新人,現在是公司開始有理由不招新人──前者讓新人長得慢,後者讓新人壓根進不來。這是兩件事,後一件要命得多。
在中國,這個問題來得更早,也更狠
放到中國,這件事更尖銳。
中國科技業本就長期擰著一個矛盾:嘴上喊缺高級人才,手上卻不願為高級人才的養成付錢。招人時人人都想要”即插即用”——最好三年經驗、熟悉業務、來了就能上線,還得便宜;校招生和初級工程師則被當成不確定性,要帶、要試錯、要容忍低效。
業務高歌猛進時,這個矛盾被成長蓋住了:人手緊缺,初級崗位有的是入口,新人能在一片混亂裡硬熬出來。可增長一放緩,邏輯全變了。校招收縮、外包化、降本增效、35 歲焦慮,已經把技術人的職涯路徑壓得更短、更急、更功利。如今AI 又添了一把火:既然工具能讓存量工程師多工作,為什麼還要給新人留練等級的空間?
於是一個危險的循環成形了:企業不招新人,因為新人不夠好用;新人沒有真實項目練手,所以更不好用;企業便更不願意招。最後,所有公司都在市場上搶”已經成熟的人”,卻沒有一家願意為”把人變成熟”買單。
更麻煩的是,中國科技業本來就壓著年齡這根弦。一個工程師剛熬到有判斷力的年紀,就開始要面對”年齡偏大、成本偏高、不夠卷”的打量。新人入口在收窄,中年出口在提前,整個職業結構就被擠成了一個掏空的沙漏:底部進不來,頂部留不住,中間被AI 和績效兩頭壓。這不是哪個人努力就能解的題,它是組織激勵的問題。
一場沒有人負責的公地悲劇
把鏡頭拉遠,這是一場典型的”公地悲劇”。對每一家公司來說,用AI 武裝現有團隊、解決眼前的產能,都是無可挑剔的買賣;至於五年後還招不招得到合格的架構師,那是市場的事、是下任CTO 的事、是競爭對手的人才池該操心的事。每家都把”培養”的成本甩給社會,把”提效”的收益留給自己。
但人才不會憑空冒出來──業界每一個資深工程師,都曾是某家公司花了真金白銀養出來的新人。當所有人都盤算著從”別處”挖人、卻沒人再肯養人,那個”別處”遲早會被抽乾。
更遠處還有一層風險:今天的大模型高度依賴高品質的人類代碼來訓練,當越來越多”能跑但平庸”的AI 代碼回流進公共代碼庫、再被餵給下一代模型,理論上可能形成一個自我退化的閉環,學界稱之為”模型坍縮”。這事尚無定論,卻指向一個讓人不安的方向──人類工程能力一旦退化,最終可能連AI 自己也跟著變得平庸。
真正該重建的,是AI 時代的學徒制
所以,出口不是反AI。讓公司放棄AI 工具不現實,讓工程師不碰AI 也沒意義。真正該討論的是:在AI 時代,業界該怎麼重新設計新人的培養機制。
過去的學徒制,是新人跟著老人寫程式、改bug、做需求,在真實專案裡慢慢長大。 AI 時代的學徒制,不能只讓新人”更快交活”,而要讓他學會監督AI、質疑AI、看懂AI 寫出來的東西。換句話說,新人不該只被考核”你用AI 做了多少”,更該被考核”你知不知道AI 為什麼這麼做”。
這至少要重新設計三件事。
其一,把初級崗位當成長期投資,留住一定比例的入口。這不是出於情懷,而是出於供給——就像企業不能為了短期利潤砍掉研發,也不該為了AI 提效就徹底關上新人的門。
其二,把”結對”從人機結對改回師徒結對。今天流行講”人和AI 結對編程”,但要培養新人,更該回到老手帶新手:老手可以用AI 探索方案,但每一行交付的代碼,都要向新人講清它的意圖、邊界和風險,新人能複述出來,才允許提交。這也意味著code review 要變——過去只看程式碼能不能進庫,今後還要看提交者是不是真懂自己提交的東西,即使它出自AI 之手。
其三,給”帶人”重新定價。很多公司不培養新人,不是不懂它的重要,而是帶人這件事不被獎勵──一個資深工程師花時間把新人帶出來,短期產出下降,績效卻未必體現。只要組織還只獎勵短期交付,就不會有人真心願意為長期的人才供給買單。
教育端也需要跟著變。未來的電腦教育,不能只停在”手寫語法和演算法細節”,也不能簡單放任學生把作業交給AI。更重要的訓練,應該是系統拆解、問題定義與批判性評估:給學生一段AI 產生、藏著並發與邏輯漏洞的程式碼,讓他找出來、講清楚、修復。 AI 時代真正要教的,不是如何當提示詞打字員,而是如何當代碼的判斷者。
說到底,這不是技術問題,而是管理問題。 AI 能產生程式碼,卻生成不了組織責任;它能幫新人寫出看起來能跑的功能,卻替不了他經歷真實系統的回饋,也替不了他建立起對複雜性的那份敬畏。一個產業可以用AI 臨時補上產能的缺口,卻沒辦法用AI 偽造下一代資深工程師。
帳單總會到期
AI 沒有親手殺死新人培養體系,是一連串完全理性的決定,合力做到了這件事。
每個團隊負責人都能為自己的選擇辯護:預算有限,專案緊急,新人難帶,AI 好用,先扛過這個季度再說。每個決定單看都沒錯,甚至很專業。但一個行業,從來不是由某個季度組成的。今天少招一個新人,系統不會立刻崩;今天少帶一個新人,也不會馬上寫進財報。它只會變成一筆安靜的表外負債,掛在未來的人才供給上。
這正是人才負債最危險的地方:它沒有明確的責任人,也沒有即時的懲罰。技術債至少會在系統變慢、bug 變多時露頭;人才債更陰,等它浮出水面,往往已經不是哪一家公司能單獨補救的窟窿,而是整個行業的代際斷層。
所以真正該問的,不是”AI 會不會取代程式設計師”——這個問題太窄了。該問的是:當企業用AI 乾淨利落地還清了今天的產能賬單,那筆被推遲的人才賬單,最終會記在哪一年,又由誰來還?
AI 不是兇手,它只是讓那筆被長期忽視的人才帳單提前到期。程式碼可以大量生成,判斷力不能大量列印;今天沒有新人的訓練場,明天就不會憑空長出資深工程師。
華客|新聞與歷史:程序員的下一代,誰來培養?
探索更多來自 華客 的內容
訂閱即可透過電子郵件收到最新文章。