
斯坦福 CS146S 去年秋天第一次開課,今年秋天第二次開課,而 Mihail Eric 把大綱改掉了一大半。原因在於編碼智能體這一年裡變強得太多:去年還算前沿的內容,今年已經成了默認前提。
這門課叫《The Modern Software Developer》,講的是 AI 原生開發
。Mihail Eric 是斯坦福的兼任教授,同時在 Monaco 擔任 AI 負責人;他既教書,也每天親手使用這套東西。這期對話出自 AI Engineer 播客的百萬訂閱特輯,錄製時間在 CODE Summit 前一周,主持人提到今年大會的三個主題:對抗「slop
」(低質生成物)、system one 模型,以及把重寫整個代碼庫的野心放大。
對談里最鋒利的一句判斷,是他對學生說的:門檻抬高了,你不能再以 L3
的水平入場。 這句話往前推一步,就是整門課存在的理由。
1. 一門課從想法到開課花了十個月,然後一年就被推翻一半
事情的起點是 2024 年 11 月。那時編碼智能體還是早期版本,但已經能明顯感覺到開發者的工作方式在劇烈變化,完成工作的速度也完全不是一個量級。問題是方法論散落在各處,全是零散部落格、零散帖子;真想搞明白怎麼做,只能自己在網上拼。
於是他有了一個念頭:能不能把這些東西整理成一門正式的課程。他找了 Chip 請教——Chip 在斯坦福教 Designing Machine Learning Systems,他很大程度上借鑑了那門課設計課程的方式。接下來是院系流程:寫提案,向委員會論證這門課有存在的必要。前後九到十個月,2025 年秋第一次開課,學生反響很好,Business Insider 還專門寫了一篇關於這門課的報道。
到今年,自主編碼智能體的進展超出了所有人的預期,他覺得是時候再來一遍、把內容重新刷一遍了。
2. 去年是巡覽,今年是原則
回想去年那一版,編碼智能體早就存在,但整個行業還處在「每家公司攻占軟體生命周期的一個環節」的階段:代碼評審有專門的智能體,spec 設計有專門的智能體,SRE 也有。其中一些公司今天還在,但那時課程的重點是「這裡、那裡,你都能用上編碼智能體」,本質上是一次全景巡覽,一次穿過整個軟體開發生命周期的奧德賽,核心目的是讓學生知道這些東西存在。
今年不一樣,一些原則開始沉澱下來。細緻的上下文工程
是一條,認真做設計與架構來承接複雜任務又是一條。前一版課程教的是「世界變了」,這一版教的是「變了之後該怎麼做事」。
3. 它並不替代算法課,它教的是畢業後怎麼變得有用
有一件事他講得很清楚:這門課不面向編程初學者,也並不試圖替代傳統電腦科學教育。算法那類課程反而是他的課的前置要求。它的定位是一門實踐者的課——學生畢業或即將進入職場時,如何成為團隊裡產出最高的那一類人。
這個定位有現實來源。在 Monaco 他面對的是超大型代碼庫;除此之外,他還幫很多公司梳理他們巨型代碼庫的設計。這些經驗不是從論文裡讀來的,是從「一個倉庫幾十萬行、幾十個人同時改」的現場裡長出來的。
4. 地板抬高了:入門不再等於 L3
開學第一周、第一堂課,他講的就是這句話:每一家公司都需要你,但地板高得多。 借用 Google 的職級打比方,光有 L3 的水平已經不夠;你幾乎要一進公司就接近資深工程師的水準。
但他沒有把基礎扔掉。軟體工程的核心仍然重要——系統是怎麼被搭起來的,這些設計里存在哪些權衡,這些判斷依然是人類應該占據的位置;至於剩下的實現細節,可以越來越多地交出去。他把這條界線畫在「理解系統」和「寫完代碼」之間,而不是畫在「用人」和「用 AI」之間。
5. 「大部分學生是完蛋的」,以及那個開放問題
對談里有一句被主持人自己稱作「說出來是為了辣、但其實真心相信」的判斷:大部分學生是完蛋的,只有一部分會變得極其有價值。斯坦福的孩子不用擔心,他們來自斯坦福;真正的問題是「美國其他地方的學生怎麼辦」。
Mihail Eric 的回應是承認這是個開放問題,並補了一句觀察:教育體系的動作太慢了。一門課從提案到開課要九到十個月,而它要教的那個東西,九到十個月就換了一代。這中間的落差,不是靠某一位老師勤奮就能填上的。
6. 大綱的保質期問題:把做智能體的人請進課堂
主持人問得很直接:你教的是一門「正在改變一切」的課,那你怎麼給課程內容定截止日期?
他的回答是「作弊」——直接把做編碼智能體的人請到課堂上來講。這不是臨時打的更新檔,而是從第一版就定下的結構。他給自己的定位很克制:一個實踐者,把在行業里做事、跟很多人聊天得來的洞見匯總起來。但他不認為也不該認為自己掌握全部答案,那樣是傲慢。前沿上的人看到的東西比他還遠,那就請他們把自己的判斷擺到桌面上,讓學生直接問。
這樣做的代價是課程永遠不完全固化,有一部分內容天然帶著動態性,是 feature,也可能算 bug。但他相信有些東西會留下來。至於像 Boris 這樣的人,總會有他不知道的東西——那就請他來講。
7. 把 Claude Code 拆成兩百行:理解比調用更值錢
主持人點出了一個區別:這類課很容易變成只有一排名字——某某來講了一節,某某又來講了一節。而 Mihail Eric 會真的動手做出東西來,比如把 Claude Code 拆解成兩百行代碼。沒有人要求他這麼做,也沒有人會為了這個來給他站台;但如果你想在一個真正能用的框架里教清楚基本原理,想讓學生獲得的是工作級的理解而不是名詞記憶,這就是必須做的事。
這門一年改掉一半的課,本身就是這個行業的一個註腳。工具每隔幾個月換代一次,能留下來的不是某個提示詞技巧,而是對系統與權衡的理解。也正因為如此,他才把入門線抬到了資深的位置——教的越是被加速的東西,打底的部分越不能省。






