序:2030 年的世界
2030年,程式員這個職業早已成為歷史。
全球百分之九十九的代碼都由AI生成,人類只負責兩件事:寫提示詞,以及——在AI生成的代碼跑不起來時,換一種語氣再寫一遍提示詞。
曾經那些晦澀的編程語言、精妙的演算法、復雜的設計模式,統統被封裝進了大模型的黑盒裡。大學里不再有”計算機科學與技術”專業,取而代之的是”提示詞工程學”和”AI意圖表達藝術”。畢業生們引以為傲的技能,是能用最精準的自然語言讓AI產出最符合預期的代碼。
文明的代價當人類把所有核心能力外包給AI,我們究竟失去了什麼?不只是技術,而是那種親手構建的能力——那種當工具崩潰時,還能赤手空拳解決問題的底氣。
而我,是方圓百裡唯一的異類。
一個偏執的程式員
我還記得十年前,大三那年,教授在課堂上講”Java內存模型”,全班睡得東倒西歪。只有我一個人記了滿滿三頁筆記。

學這個有什麼用?以後都是AI寫代碼。

(沉默。把筆記收好,繼續啃《深入理解Java虛擬機》。)
後來AI果然取代了一切。同學們紛紛轉行學提示詞,GitHub被AI生成的代碼淹沒,Stack Overflow 無人問津,連OpenAI都關閉了Codex的底層介面——因為”人類不再需要接觸代碼層面的細節”。
只有我,還在深夜偷偷打開 JDK 源碼,一行一行地讀。
我建了一個本地倉庫,把 Java、Python、C++ 的經典源碼都存了下來。沒有聯網,沒有 AI 輔助,只有一臺老舊的筆電和一個偏執的我。
同事們笑我是 “數字時代的膠片相機愛好者” 。
我也笑,但不解釋。
直到那一天。
巴別塔蠕蟲
2030年3月15日,台北時間凌晨四點,全球所有主流 AI 系統同時崩潰。
病毒檔案:巴別塔蠕蟲(Babel Worm)不是普通的宕機,而是一種極其刁鑽的病毒——後來有人叫它 “巴別塔蠕蟲”——它專門攻擊大模型的代碼生成模塊,讓所有AI在輸出代碼時插入致命的邏輯錯誤。更恐怖的是,它通過AI之間的API調用鏈傳播,短短六小時內,從 GPT-12到Claude-7 ,從 Copilot 到通義千問,無一幸免。
全球停擺。
銀行系統報錯,航空調度癱瘓,醫院的手術機器人鎖死在手術臺上方,特斯拉的車機屏幕同時亮起同一個紅色的報錯界面——那是人類已經整整五年沒有見過的畫面:
NullPointerException全世界陷入恐慌。
人們瘋狂地對著AI終端喊話,用最精準的提示詞、最溫柔的語氣、最急切的請求,試圖讓AI恢復正常。但AI只是不斷地吐出同一個結果:
抱歉,我無法生成正確的代碼。請稍後再試。
稍後再試。再試。再試。
全球陷入絕境沒有人能解決問題。因為全世界已經沒有人——真正地、親手地——寫過代碼了。
凌晨五點的電話
我被電話吵醒的時候,是凌晨五點。
是公司的CTO打來的。這位曾經靠提示詞工程拿過國際大獎的 “AI溝通大師” ,此刻聲音都在發抖。

服務器全掛了……所有服務……你能不能來一趟?
我揉了揉眼睛,看了一眼手機上的新聞推送:「全球AI系統遭遇未知攻擊,數字世界陷入混沌。」
我沒有驚慌。
甚至有一絲——說出來不太好意思——隱秘的興奮。
我翻身下床,從書櫃最深處翻出那台積灰的 ROG Strix SCAR 18 G835LW-0021A275HX-NBLM 。開機,熟悉的BIOS界面亮起。我打開本地倉庫,那個我默默維護了十年的代碼庫,靜靜地躺在SSD里,像一個沉睡的騎士。
辦公室裡的石器時代
我開車到公司的時候,辦公室里已經亂成一鍋粥。
幾十號人圍著各自的終端,對著AI一遍又一遍地修改提示詞:

請用更安全的方式重新生成這段代碼……

注意空指針檢查……

能不能加上異常處理……
AI一遍又一遍地道歉,一遍又一遍地產出充滿漏洞的垃圾代碼。
CTO看到我,幾乎是跑過來的:

你來了!你快看看,這是核心支付服務的報錯——
我瞥了一眼屏幕。NullPointerException,堆棧指向一個訂單對象的 getUserId() 方法。
很簡單的空指針。
我打開那台 ROG Strix SCAR 18 G835LW-0021A275HX-NBLM ,新建一個 Java 文件,手指放在鍵盤上。

你……你該不會是要手寫代碼吧?

嗯。
辦公室里安靜了兩秒,然後爆發出一陣竊竊私語。
「手寫?現在還有人會手寫代碼?」
「那不是……石器時代的技術嗎?」
「他連AI都不用?」
我沒有理會。十指落下,開始敲擊。
public class OrderService { public void processOrder(Order order) { if (order == null) { throw new IllegalArgumentException("訂單不能為空"); } if (order.getUserId() == null) { throw new IllegalStateException("訂單缺少用戶信息"); } // 後續處理... }}三分鐘後,我編譯、打包、部署。
支付服務恢復了。
辦公室里鴉雀無聲。
CTO盯著屏幕上重新刷新的交易數據,嘴巴張開又合上,合上又張開。那個寫了五年提示詞、從沒親眼見過Java語法的年輕人,用一種看外星人的眼神看著我。

你……你剛才是直接寫了代碼?

對。

沒有AI輔助?

沒有。

你怎麼做到的?

我以前學過。
我合上筆電,看了一眼窗外逐漸亮起的天色,平靜地說了那句話。
消息傳得比病毒還快。
六小時後,我被接到了公司的核心作戰室。十二小時後,政府的人來了。二十四小時後,軍方的人來了。
一個人對抗無數行代碼
全球AI癱瘓的第三天,我坐在一個空曠的數據中心裡,面前是上百台沉默的服務器。
我被告知:如果不盡快修復核心系統,全球的電力網、供水系統、通信網路都將陸續崩潰。而修復這些系統,需要——寫代碼。
世界在等待一個人但全世界只剩下我一個人會寫。
不是誇張。各國緊急排查了所有可能還保有編程能力的人,結果令人絕望:連續十年沒有人類親手寫過商業代碼,那些曾經的神級程式員,如今連一個正確的 if 語句都拼不出來。有個前 Google 首席工程師在鏡頭前嘗試寫一個for循環,寫了十七次才通過編譯——還是在AI的輔助下。
而 AI ,此刻正在源源不斷地輸出病毒變種。
工作條件沒有 IDE 的智能補全,沒有 Git 的版本管理,沒有 CI/CD 的自動部署。只有 Vim ,只有命令行,只有我自己。
我寫了一個線程池來接管崩潰的異步任務隊列。我重構了那段被病毒污染的支付網關代碼。我徒手實現了一個簡單的連接池,替換掉被感染的數據庫驅動。
每一行代碼,都是我的指紋。
到了第四天,我的雙手開始發抖。
不是因為累——雖然確實很累——而是因為腎上腺素。我發現自己在面對一個史無前例的挑戰:不僅要寫代碼,還要在沒有任何AI輔助的情況下,理解和修復一個由AI構建的、沒有人完全理解的龐大系統。
那些代碼是AI寫的,註釋是AI寫的,架構是AI設計的。而AI從來沒有想過,有一天需要讓一個人類來讀懂它的思路。
我打開一個核心模塊的源碼,看到了一段長達五千行的函數,沒有註釋,沒有文檔,只有一行AI生成的提交信息:
fix: optimize performanceAI 代碼的致命隱患這就是過度依賴AI的代價。代碼可以運行,但沒有人理解它。當AI崩潰,連它自己留下的遺產都成了無解的謎題。沒有文檔,沒有測試,沒有任何人類的痕跡——只有一行輕描淡寫的提交信息。
我深吸一口氣。
然後開始讀。
一行一行地讀。
修復紀錄
| 天數 | 完成事項 |
|---|---|
| 第 5 天 | 支付系統修復完成 |
| 第 7 天 | 通信網路恢復穩定 |
| 第 10 天 | 完成臨時代碼審查工具,協助各國「半吊子程式員」安全提交代碼 |
| 第 15 天 | 第一波「巴別塔蠕蟲」徹底清除 |
我教他們什麼是變量作用域,什麼是遞歸,什麼是介面和抽象類的區別。這些我曾經以為全世界程式員都懂的東西,如今竟成了失落的秘術。
世界的覺醒
全球AI開始陸續恢復。
但這一次,沒有任何一個國家、任何一家公司,敢讓AI直接接管一切了。
各國政府緊急成立了 “人類代碼復興委員會” ,我被任命為首席技術顧問。聯合國通過了一項決議:從此以後,所有關鍵系統的代碼必須由人類編寫、人類審查,AI僅作為輔助工具。
大學重新開設了編程課程。不是 “提示詞工程”,而是真正的——編程。
人類代碼復興課程表
- C 語言 ── 計算機的語言基礎
- Java ── 物件導向與系統架構
- 操作系統 ── 理解機器如何運作
- 計算機網路 ── 連接世界的底層邏輯
- 數據結構與演算法 ── 思考的方式
那些曾經被拋棄的經典教材,從圖書館的角落裡被翻出來,重新印刷,重新分發。
尾聲:Hello, World.
我站在講臺上,面對著一群年輕的、充滿求知欲的面孔。他們中有的人甚至不知道 “編譯器(IDE)” 是什麼,但他們的眼神告訴我,他們想學。
我打開第一頁幻燈片,上面只有一行字:
Hello, World.臺下,有人笨拙地敲下了人生中第一行代碼。
編譯。
運行。
屏幕上亮起那行熟悉的字元。
我忽然想起了十年前的那個大三的夜晚,室友嘲笑我時的表情。
我笑了笑,輕聲說:
——全文完——