與 AI 共舞
# 軟體工程還記得 ChatGPT 3.5 剛發布時,作為翻譯工具雖然好用,但用來寫程式只能寫腳本或簡單的函數。
2023 年 Cursor 還在 Beta 階段,主打的功能只有 tab 補全。在那之前我還用過 GitHub Copilot,試用過後發現精度太差,就沒有繼續用下去了。
後來 GPT-4o 出來確實感受到模型能力的躍進,但寫程式這件事,在我看來依然是人類的領域——AI 能幫忙,但還沒辦法真的取代。
2024 年開始,事情悄悄變了。Cursor 從單純的 tab 補全加入了 AI Agent,開發從「偶爾嘗試」變成了「不可或缺」。LLM 已經能獨立寫出可運行的 Demo,但 production 等級的程式碼仍然需要大量的人工介入與審查。
然後是 2025 年。各家模型幾乎以月為單位在進化。到了年中得知了 Claude Code,那是我第一次感受到模型質的飛躍。儘管需要開發者深度參與 Review 與指引,但它已經能夠寫出堪用的設計,甚至按照設計寫出對應的程式碼。
原本由人類手寫的程式碼,在不到一年內,正在快速轉移到以 AI Agent 為主導的模式。
2026/02/26 Cursor 的共同創辦人 Michael Truell 發了一篇推文,把這個過程清楚地切成三個時代:
- 第一個時代是 Tab 補全——AI 識別出重複性的工作並自動化,開發者不斷按 tab 撰寫程式
- 第二個時代是同步 Agent——工程師透過 prompt 指揮 AI,你來我往地協作完成任務
- 第三個時代——Agent 能夠在雲端的虛擬機器上獨立運作數小時,自主完成更大規模的任務,工程師只需要在最後審查成果
短短一年多,軟體開發已經完全不一樣了。
AI 取代軟體開發
當時我看到「AI 取代軟體開發、軟體工程師」是嗤之以鼻,覺得只是 AI 公司的話術與吹捧。
身為第一線開發人員,那時候的模型水平完全無法取代日常開發。寫一些簡單的腳本或重構函數還可以,但只要 context 一多、程式碼變複雜,模型完全無法處理,回應也常常不知所云。
模型的能力進步神速。原本 AI 還只是輔助角色,程式碼大部分由人類撰寫;現在 AI 寫程式的比例超過一半,大部分的程式碼都是由 AI 產出,由你負責審查、設計。
甚至連系統設計、文件撰寫都會讓 AI 參與其中,會議記錄更是全自動由 AI 生成了。
原因無他,模型的能力已經進步到能夠處理日常開發,甚至有人不閱讀程式碼而直接迭代產品了。
這樣好嗎?以前我會抱持著大大的問號。現在我的態度逐漸轉變了,在某些條件下,人類的參與確實是最大的瓶頸。
I ship code I don’t read
另外值得思考的是這句話是誰說的?就像 Wiwi 在他的部落格曾經提過:
每個人在我們心中,都偷偷有一個「智商預設值」。同一句幹話,從「預設值高」的人嘴裡說出來,我們會主動幫他找理由、解讀他的深意;由「預設值低」的人說出來,我們直接就判定他是個白痴。
Peter Steinberger 原本是活躍於 iOS 圈的工程師,後來在 2011 年做出 PDF SDK「PSPDFKit」,從一個開發者工具一路做成被大量企業採用的文件技術公司。
因為 Burnout 而暫時沒有接觸程式的他,因為 AI 的關係讓他再次愛上寫程式,並開發了 OpenClaw。至少在寫程式上,他的技術能力毋庸置疑。
雖然軟體開發已經變了,但核心的軟體工程原則不變。系統設計、寫文件、寫測試,這些事情的重要性反而提升了。
測試案例是 AI 好好做事的邊界,文件是 AI 理解上下文的基礎,系統設計則確保整體架構不會因為快速產出而失控。能交給 AI 的事情只會越來越多,而這些原則就是人類掌握主導權的方式。
但品質的把關不只是寫測試而已。
以我過往的經驗來說,第一線的開發人員通常不是個好的 QA。
開發者太熟悉自己的實作,會下意識避開可能產生 Bug 的操作路徑,測試時走的永遠是 happy path。
同時,對需求的理解容易被實作方式框住——你知道程式碼怎麼寫的,就很難退一步用使用者的角度重新檢視。這不是能力問題,是角色的結構性限制。
未來什麼事情重要?
當執行的成本趨近於零,方向就是一切。如何把使用者的問題轉為清晰、可以落地的計畫。
過往的開發經驗在這裡是雙面刃,它可能成為知識的詛咒,也可能成為幫助自己領先的優勢。
有人說 Harness Engineering 只是重新包裝 Software Engineering。確實,如何限制 AI 的範圍、讓 AI 閉環驗證、有明確的標準定義什麼是好什麼是壞,這些概念在之前就有了。
這讓我想到最近在看的一本書《機制化之神》。
把自己視為理所當然的「好」變成可以參考、可以再現的標準。這件事以前是為了團隊協作更順暢,現在則是為了 AI 也能復現。這就是 Harness Engineering 的精髓。
光有方向還不夠,你得把方向推動成現實。
AI 沒辦法推進專案,你得跟利害關係人、使用者溝通,說服其他部門你的方案可行,甚至要面對組織當中的光怪陸離。這些都不是 AI 可以解決的。
責任感是我近一年學到最重要的事。
以前的工作方式與團隊分工,容易讓人把責任劃分得很明確,「反正我只要把自己本分做好」就夠了。
但同樣是 AI,不同人會有完全不同的產出跟結果。差別就在於你願不願意為成果負責。
這讓我想到半澤直樹,只要是他負責的案子,不管遇到再怎麼不合理的環境或主管,他都會想辦法一一突破,甚至會先想好客戶的下一步、下十步。
能力的組合也需要重新思考。AI 若能做到 70 分,那做到 80 分是遠遠不夠的——AI 比你更便宜、更聽話、更好用。走純專才路線需要頂尖的能力,像 Andrej Karpathy 這樣的人各大公司還是搶著要,但那是金字塔尖端。
對多數人來說,我更推薦通才加上某個專項的路線。不能只是蜻蜓點水而已,而是每個領域至少有 Senior 水準的認知。未來職能之間的界線會越來越模糊,從設計、架構、開發、測試、部署到維運,都需要有足夠深刻的理解才能做出好的判斷。
最後是品味。
架構、技術選型、系統部署、UI/UX,這些決策背後都需要一套中心原則。品味就是藉由自己的經驗、背景、價值觀所形成的那套原則。它只能從一次又一次的實踐中長出來。
而品味不只限於技術決策,也包含對產品本身的判斷。包含我自己在內,明明開發者是最靠近產品的人,對每個功能的實作細節瞭若指掌,卻不一定對產品有什麼想法。需求來了就做,做完就交,很少退一步問「這個功能真的解決了使用者的問題嗎」。
軟體工程師接下來應該往 Product Builder 的方向前進。不能只是把東西做出來而已,你得對產品本身有想法,甚至主動提出改進的方向。當 AI 把實作的成本壓到極低,能夠定義「做什麼」跟「為什麼做」的人,會比只會「怎麼做」的人更有價值。
軟體工程師的新型態——Forward Deployed Engineer
我想以 Forward Deployed Engineer 這個職位出發,這可能是軟體工程師的職涯未來可以嘗試的路。以下是 OpenAI 的 Forward Deployed Engineer 職缺描述。
Forward Deployed Engineer 是一個直接在客戶現場工作的角色——觀察他們實際的運作方式,找出痛點,然後親手做出解決方案,並把專案一路推進到上線。
各大企業都開始導入 AI,這是 FDE 需求爆發的原因。
導入 AI 不是 Vibe Coding 一個解決方案就可以了。這往往意味著駐點企業,面對他們的難題、與內部團隊合作、協調。
Engineer 的職稱存在,代表著在日常工作中還是有大量需要自己動手寫程式來解決的問題,包含做 PoC、撰寫並部署 production 等級的程式碼、與現場的產品團隊一同合作。
在 The Pragmatic Engineer 提到,FDE 的職責類似於新創公司的 CTO,在小型團隊中端到端掌握高風險專案的執行。根據 Salesforce 的分析,2025 年前九個月 FDE 的職缺數量成長超過 800%,Salesforce 自己就宣布要組建一支 1,000 人的 FDE 團隊。
這個角色的核心能力,是把模糊的需求轉化成可以實際執行的方向。
客戶往往知道自己哪裡不對勁,但說不清楚要什麼;而 FDE 的工作,就是在這片混沌裡找到輪廓,再把它變成真實的東西。
你需要在短時間內取得客戶的信任,讓對方願意把真正的問題告訴你;你需要說服利害關係人,讓他們相信你的方案是可行的;你需要在資源有限、時程緊迫的現實條件下,給出一個不完美但足夠好的答案。
AI 作為開發工具的雙面刃
如同 Huli 寫的《AI 與鴨子,惰性與真實》、高見龍寫的《AI 時代寫程式,你是在學習還是在偷懶》提到的,他們認為基礎很重要,而 Vibe Coding 正在消滅學習基礎的動機。
我認為這兩篇文章有幾個共同概念,同時也是我很認同的:
- 不要盲目接受 AI 產出:鴨子理論出自於 Duck Typing。用來比喻 AI 產出相當貼切——能動就好在以前是開發者間的笑話,但現在如果只求會動就好,那就跟 Vibe Coding 一樣了
- 測試的重要性大幅提升:兩篇文章都提到測試的重要性。除了可以讓 AI 自我驗證之外,測試是保證 AI 不暴走的方法
- AI 是輔助:用 AI 來加速學習或處理更有價值的任務,像是思考產品的方向、釐清使用者需求
- 判斷力與基礎能力:如果沒有扎實的程式基礎,初學者根本無法判斷 AI 給的程式碼是好是壞
AlphaGo 的啟示
我常常納悶奧運的意義。對人類的發展有什麼重大貢獻?如果明天開始大家不再打棒球、不再舉辦任何比賽,世界會有什麼不同嗎?
想了很久,我得出一個結論:對極限的追求本身就是意義,就算它不會讓世界變得更好。再往下推,除了維持生存以外,大部分人類的行為其實都「無意義」,但我們還是在做,而且樂此不疲。
這讓我想到 AlphaGo。2016 年它打敗了人類棋手,但圍棋比賽沒有消失,人類也沒有因此放棄下棋。
反而棋手開始跟 AI 學習,打破了幾百年來的定石與思維,走出前人從未走過的棋路。圍棋因為 AI 的介入變得更豐富。(不知道為什麼黑嘉嘉一直出現在我的 YouTube 推薦)
那寫程式會走上同樣的路嗎?
也許有一天手寫程式碼會變成一種純粹的樂趣,就像有人選擇用鋼筆寫字、用底片機拍照一樣。不是因為效率,而是因為享受那個過程本身。大部分的程式碼由 AI 生成,而那些堅持手寫的人,只是在享受一種已經不再「必要」的技藝。
我還沒有答案。
還需要念資工系嗎?
資工系的學生,本來就應該去解決更難的問題。如果進資工系的目的只是四年後寫出一個 CRUD 應用,那確實不需要念——因為 LLM 現在已經可以做到了。
但反過來想,當所有人都能用極低的門檻做出產品,那些更難的問題反而變得更有價值。那什麼是「更難的問題」?
隨手舉幾個例子:
- Linux kernel 的演進——AI workload 對作業系統提出了新的要求:更好的 scheduler、更安全的記憶體模型、高可預測性的 real-time 系統。這些問題不會因為 AI 會寫程式碼就消失,反而因為 AI 的普及變得更迫切
- 新一代運算架構——雖然已經有 Google 的 TPU 或 NVIDIA 的 Tensor Cores 這類專用設計,目前 LLM 推理階段的瓶頸仍然卡在記憶體頻寬與延遲上
- 編譯器與程式語言設計——AI 大量生成程式碼,但程式碼的正確性、安全性、效能,最終還是由底層的語言與編譯器決定
AI 降低了應用層的門檻,但同時也把底層的挑戰推得更高、更重要。資工系的價值,從來都不在於教你怎麼寫程式,而在於訓練你有能力去解決這些難題。
新封建時代
壟斷跟封建的差別是什麼?壟斷控制價格,封建控制能力。壟斷讓你買東西比較貴,封建讓你離不開。
我一直在想 AI 時代的權力集中,到底比較接近哪一種。
過去的科技壟斷我們都經歷過。微軟壟斷作業系統的時代,開發者「不得不」用 Windows;Google 壟斷搜尋,廣告主「不得不」買 Google Ads。但這些壟斷影響的是分配,是誰拿到多少錢的問題。你的技能本身不會因為微軟壟斷 OS 就貶值,換一個平台你還是同一個工程師。
AI 不一樣。當模型能直接取代你的勞動,壟斷者影響的不再只是價格,而是你的勞動還有沒有價值。
這更接近封建的依附結構。
傳統封建社會裡,佃農離不開地主。資本主義打破了這層依附,每個人都可以參與市場、累積資本、帶著自己的技能在資本市場爭取一席之地。
現在的情況正在往回走。要活用 AI 開發,Claude Code 或 Codex 是必需品。這些工具高度集中在 Anthropic、Google、OpenAI 手裡,技術門檻與資本門檻高到幾乎無法複製。如果你不用,當你的同行都用 AI 開發時,你就是競爭劣勢。這個壓力只會越來越大。
有人會說這只是資本壟斷,沒什麼新鮮的。
我認為關鍵差異在於籌碼。歷史上勞動條件的每一次改善,工時縮短、工資提高,大多不是結構自發給的,而是工人運動、政治壓力拿籌碼換出來的。
勞動者最大的籌碼是你沒有我不行:我罷工,你的工廠就得停擺。但模型能取代罷工,罷工本身就不再是武器。
真正令我不安的是:知識勞動者作為一個群體正在失去結構性的議價能力,而新的籌碼還沒有出現。
開源模型像 Llama、Mistral、DeepSeek 確實讓門檻在下降。但在通用能力上,與御三家的差距仍然明顯。訓練模型需要的資料規模、算力規模,以及背後的工程積累,不是開源社群短期內能追上的量級。
開源模型的演進、個人算力的普及,也許會成為這個時代的印刷術。但印刷術從發明到真正撼動權力結構也花了幾百年。我們有沒有那麼多時間,我不知道。
關於 AI Slop
最近很多人在抱怨網路上的 AI 垃圾內容越來越多——充滿 AI 口吻、粗製濫造的文章,明顯由 AI 生成的圖片、影片。人們把這種現象稱作 AI Slop。
每當一項技術被工業化之後,市場上必然會湧現大量廉價、粗糙的產品。以手沖咖啡愛好者的眼光來看,即溶咖啡就是十惡不赦的 slop。(手沖跟即溶咖啡我都喜歡)
很多人對品質是沒有追求的,你眼中的 AI Slop 對他們來說是剛好的產物。就像我在手沖咖啡愛好者的眼裡,可能也是個不入流的下里巴人吧。
Slop 是技術真正普及之後的必然產物,也可以換個角度說——軟體開發也即將走向工業化了。
AI 能輕易生成一篇語句通順、邏輯縝密但沒有任何真實觀點的文章。那些真正有觀點、有經歷、有人味的內容,反而會變得更稀缺,更值錢。
市場最終會自己找到平衡點。
慢下來
演唱會的意義不在於完美重現錄音室版本,而是那些即興、失誤、與觀眾互動產生的瞬間。
AI 寫的程式碼可能比你「正確」,但那些你在 debug 過程中意外發現的 edge case、踩過坑之後形成的直覺,才是真正有價值的東西。品味就是從不完美的經驗中長出來的。
AI 也讓產出變得極度容易。
寫部落格、做筆記,這些「慢」的事情本質上就是反思的過程。整理自己的想法,這個行為本身就是一種抵抗,抵抗被速度沖走。
反而是那些看起來「浪費時間」的事情變得重要:手寫程式碼理解底層原理、花三小時讀一本跟工作無關的書、跟人面對面聊天、經營一個只有幾十人看的部落格。這些事情的回報會在某個你預料不到的時刻突然出現。
我更想要看你的不完美,聽聽你的煩惱是什麼。
經驗閾值
大谷翔平最近在 NHK 的採訪說了一段話:「過程的積累是重要的,但掌握技術性的訣竅只需一瞬。」
過程の積み重ねは大事だが、技術的なコツを掴むのは一瞬
學任何技能都是如此。在達到閾值之前的積累固然重要,但真正發生變化的時刻往往是一瞬間。
能否在那個變化的瞬間到來之前持續努力才是關鍵。
AI 時代的焦慮大多來自恐懼,恐懼來自未知。
很多事情必須靠自己行動與經驗累積後才有辦法體會,AI 沒辦法替你跨越那個閾值。它可以加速你的積累,但那個「一瞬間的領悟」只能靠你自己走到。
與 AI 共舞
善用 AI,讓它成為你的加速器。把重複的事情交給它,把省下來的時間拿去做只有你能做的事:定義問題、設計方向、跟人溝通、為成果負責。
Slop 會過去,過渡期本來就是這樣。即溶咖啡沒有消滅精品咖啡,AI 生成的內容也不會消滅有觀點的創作。
慢下來的事情值得主動追求。那些看起來低 ROI 的積累,會在某個你意想不到的時刻兌現,成為你跟別人不一樣的地方。
在 AI 越來越強的時代,人與人之間的連結反而更重要了。AI 可以幫你寫程式、整理資料、生成報告,但它沒辦法替你建立信任、分享經驗,或者在你迷惘的時候給你一句真話。
喜歡這篇文章的話,不妨寫封信告訴我你的想法吧!