間章:全面性的消亡
上一章結尾問了一個問題:如果 Proton 壞了——不是壞在表層,而是壞在 DirectX 翻譯層與 GPU 驅動之間那個接縫——還有人修得了嗎?
我想用一個私人經歷來回答。不是為了懷舊,而是為了定義一個正在消失的物種。
I.
2000 年前後,我在大學讀 EEE——傳統的電子及電機工程,加上 Computer Engineering 的雙主修。第一個學期,我們接到一個 assignment:用一顆 Motorola HC11 微控制器、一顆可變電阻、一條 RCA 輸出線,做一台撞磚頭遊戲機。
沒有函式庫。沒有 framework。沒有作業系統。
HC11 直接 bit-bang 出時序訊號,透過一顆簡單的 DAC 轉成類比,把像素一個一個推到 RCA 輸出上。可變電阻那端的類比訊號經過 ADC 取樣,轉換成球拍的位置。程式最後燒進一顆容量以 KB 計的 EEPROM 裡。
一個學期。一個人。從零做出一台完整的遊戲機。
這個 assignment 要求你同時理解的東西包括:類比電路(可變電阻的分壓與 ADC 的參考電壓)、數位時序(PAL/NTSC 的水平與垂直同步信號)、微控制器的暫存器配置(HC11 的 Timer Output Compare 怎麼產生精確的中斷週期)、以及在幾 KB 的記憶體裡用組合語言寫出碰撞偵測和畫面更新邏輯。它橫跨了類比、數位、韌體、應用——四層,全部裸露,全部要你自己用手接起來。
這不是天才的訓練。這是那個時代的基本功。
同一個時期,世界其他角落的工程師也在做類似的事。John Carmack 在直接寫 VGA 記憶體和 CPU 流水線。黃仁勳在設計 GPU 的指令排程。寫 Proton 的那些 Mesa/RADV 開發者,當時正在 Linux 社群裡編譯核心、寫驅動、搞清楚每一層 stack 的行為。我們不認識彼此,但我們受的是同一種訓練——被迫橫跨硬體與軟體的全部層次,因為那個年代不存在幫你隔開它們的抽象層。
今天一個 CS 畢業生四年讀完,他識 React、識 Python、識 PyTorch。他可以用 Cursor 在一個下午搭出一個完整的 web app。但他不知道 interrupt 是什麼。不知道 memory-mapped I/O 怎麼運作。不知道為什麼 Python 慢——不是那種「聽過直譯語言比較慢」的知道,是從來沒有被迫在一顆只有幾 KB RAM 的晶片上,用每一個 clock cycle 都要算著花的方式寫過程式,所以「慢」這個字對他而言始終是抽象的。
他不是不聰明。他只是從未被迫穿透過任何一層。
以前的工程教育是全面性的基礎;現在的工程教育是徹底的分工與深造。這兩件事本身不矛盾——但沒有前者,後者的每一步都缺全局觀。 你可以在某一層做到世界頂尖,但你看不見自己那一層跟上下游之間的接縫。而所有最關鍵的 bug——Proton 的 shader 翻譯失敗、CUDA 的 kernel 效能瓶頸、台積電的製程與晶片設計之間的 co-optimization——全部藏在接縫裡。
接縫不屬於任何一層。它只對看得見全局的人可見。
II.
這種「跨層次工程師」的消亡不是全球均勻發生的。它在亞洲發生得更快、更徹底。
這不是一個關於基因或文化宿命的判斷。是產業結構的問題。
台灣的半導體產業建立在代工模式上。張忠謀在 1987 年創立台積電時,核心主張是「我們只做製造,不做設計」。這個模式讓台灣成為全球晶片製造的心臟——第八章會詳細展開——但它同時定義了一整代台灣工程師的工作方式:接規格、做製程、交晶圓。執行力世界一流,但工程師的訓練目標是精準執行 spec,不是挑戰 spec 背後的架構假設。一個台積電的製程工程師可以把 7nm 的良率推到極限,但他的工作範圍不包括質疑「這顆晶片的架構本身應不應該長這樣」。那是客戶的事。
日本的工程師文化更極端。工匠精神加上終身僱用制,培養出的是深度驚人但極度垂直的專才。一個 Sony 的影像感測器工程師可以在 CMOS 感測器領域做到全球頂尖,但他的整個職業生涯可能都不會碰到系統軟體、不會碰到 AI 框架、不會碰到自己那顆感測器被裝進手機之後的軟體生態。他的深度是真實的,但他的視野被組織結構鎖死了。
韓國是財閥模式。三星同時做晶片、做手機、做面板、做記憶體——理論上最有條件培養跨層次的人。但財閥的決策是 top-down 的。工程師的角色是執行上級的戰略判斷,不是從第一性原則出發提出替代方案。當三星的半導體部門試圖在先進製程上追趕台積電,失敗的原因不是韓國工程師不夠聰明——是組織結構不允許底層工程師對 top-down 的製程策略提出根本性的質疑。
中國大陸的情況更複雜,但底層邏輯類似。應試教育的產出是標準答案導向的人——他們擅長在已知框架內優化,不擅長質疑框架本身。互聯網巨頭的高薪虹吸了最聰明的畢業生,而這些公司的工作方式是「用現成 framework 快速出產品」,不是「從底層重新設計 stack」。
美國不是因為文化優越才培養出跨層次的人。是因為風投加上 startup 生態,鼓勵——甚至要求——創辦人從第一性原則出發重新思考問題。一個 YC 的 demo day 上,投資人不想聽「我用 TensorFlow 做了一個 app」;他們想聽「現有的 stack 哪裡是錯的、我從哪一層開始重建」。這個篩選機制,跟技術教育無關,跟產業結構的激勵機制有關。
但這裡必須誠實面對一組反例——而且是對本書論點至關重要的反例。
黃仁勳,台灣出生。Lisa Su,台灣出生。張忠謀,中國大陸出生。
這三個人分別定義了 AI 運算霸權、高效能晶片設計、以及全球半導體製造的格局。他們全部是亞洲血統。
但他們三個,全部是離 開亞洲之後,在美國的產業環境裡,成長為跨層次的工程師和領導者的。
不是「亞洲人不行」。是亞洲本土的產業結構,不培養這種人。
黃仁勳如果留在台灣,他可能成為一個優秀的 IC 設計工程師,在台積電或聯發科做到資深。但他不會有機會創辦一家公司、親手定義一種新的運算架構(CUDA)、然後用遊戲玩家的錢養它十年——因為台灣的產業結構沒有這個位置。Lisa Su 如果留在台灣,她可能成為一個頂尖的半導體研究員。但她不會有機會接手一家瀕死的公司(AMD),從 CPU 架構到 GPU 設計到主機合約全部重新佈局——因為台灣沒有這種規模的整合型半導體設計公司給她操盤。
這個結構性觀察的含義是冷酷的:如果亞洲想孕育下一代的黃仁勳,要改的不是 STEM 教育的技術內容,是產業結構本身——鼓勵跨層次思考、容忍從底層挑戰架構的異見、允許工程師在不同層次之間自由移動。這個改變,比教任何一門課都難。
III.
但亞洲的結構性問題只是更大危機的一個切面。真正讓我恐懼的,是一個全球性的趨勢:抽象化本身正在消滅培養跨層次工程師的土壤。
每一層新的抽象,都是一次便利的勝利和一次理解力的損失。
DOS 時代,你要玩遊戲,先得改 config.sys、算記憶體怎麼分。那個過程逼你理解作業系統的記憶體管理。Windows 時代,你不用改了——DirectX 幫你做。你的便利增加了,但你失去了碰觸記憶體管理的那個入口。Framework 時代,你連 DirectX 都不用碰了——Unity 和 Unreal 把繪圖管線包起來。你離硬體又遠了一層。AI 時代 ,你連 framework 都不用完全理解了——Cursor 幫你寫程式碼、Hugging Face 幫你呼叫模型、ChatGPT 幫你 debug。
每一層都合理。每一層都提高了生產力。但四十年的層層疊加之後,站在最上面的人,跟地基之間已經隔了幾十層。他看得見自己腳下那一層,看不見地基。
LLM 是這個趨勢的極致形態。一個會 prompt engineering 的人,可以在不理解反向傳播、不理解 GPU 記憶體排程、不理解 transformer 的注意力機制為何有效的情況下,用 AI 做出以前需要十年訓練才做得到的事。表面上,這是史上最大的生產力解放。骨子裡,這是「不需要理解底層就能做事」的環境,達到了歷史上的最高強度。
而「不需要理解底層就能做事」的環境,不會培養出需要理解底層的人。
這不是假設。反例已經在眼前。
Andrej Karpathy 識寫 C、識 GPU kernel、識 PyTorch 內部、識做研究、識教學。他的「nanoGPT」示範了一件事:從零砌一個語言模型,不靠任何框架、不靠任何高階 API,用最低階的方式把每一層都攤開來。這種能力,跟二十年前一個學生用 HC11 從零做一台遊戲機,是同一種能力的當代版本。
Jim Keller,CPU 架構師,職業生涯橫跨 DEC Alpha、AMD K8、Apple A4/A5、AMD Zen、Tesla 自駕晶片、Intel。他的價值不在於他在任何一層做得比別人好——而在於他看得見從電晶體到應用程式之間的整條路徑,知道在哪一層做什麼取捨。
這兩個人有一個共同點:他們都是從底層一路爬上來的。 不是先學 API 再選擇性地往下挖,是從硬體開始,一層一層往上堆。那種視野不是後天補課補得回來的——它是在特定環境裡、用特定的學習路徑、在特定的年代才長得出來的。
AI 時代最大的機會窗,不是給會用 API 的人——他們多到溢出來。是給能從第一性原則重新設計整個 stack 的人。 下一個真正的架構突破——不是在現有 transformer 上加層數,而是重新設計運算架構本身——需要的是一個同時理解晶片設計、記憶體層級、編譯器優化、分散式系統、以及機器學習理論的人。
這種人,我們的教育體系和產業結構每年培養出幾個?
答案在遞減。
IV.
我寫這本書寫到一半的時候,最強烈的情緒不是懷舊。是恐懼。
恐懼的不是技術變遷——技術永遠在變,每一代工程師都要重新適應。恐懼的是一種更深層的斷裂:培養出能看見全局的工程師的那條路徑,正在被它自己的成果堵死。
本書前六章記錄的每一場戰役——DOS 的記憶體魔術、DirectX 的鎖定效應、Xbox 的 OS 防衛戰、世嘉的救命錢、Wintel 的盲區、Valve 的越獄行動——它們有一個共同的前提:在每一個關鍵時刻,都有一個看得穿整個 stack 的人做出了決定性的判斷。 Carmack 看得穿硬體與軟體之間的效能接縫。Newell 看得穿封閉平台的長期代價。黃仁勳看得穿 GPU 在遊戲之外的運算潛力。
接下來的第七章要講的,就是黃仁勳如何用遊戲玩家的錢養了十年的平行運算研發,等到 AI 來認領。那個豪賭之所以成功,正是因為他是本章定義的那種人——一個看得見硬體指令集、軟體 API、以及科研應用三個層次之間接縫的人。
但如果這種人不再被培養出來——不是因為他們不存在,而是因為整個環境不再製造讓他們生長的土壤——那麼本書後半段記錄的這些故事,就不會再有續集。
不是因為科技停止進步。而是因為進步的方式會改變。未來的進步會發生在每一層的內部——更快的模型、更大的資料集、更精細的框架——但不會發生在層與層之間的接縫。因為沒有人在那裡。
這本書記錄的是過去四十年的科技史。但它真正在問的是:當工具愈來愈強、工具背後的原理愈來愈隱形,還有人會停下來問「為什麼」嗎?
如果還有——接下來的故事會繼續發生。
如果沒有——你正在讀的就是最後一代的科技霸權故事。
