編輯 | 云昭
“AI 編程的體驗(yàn),本質(zhì)上是一個(gè)老虎機(jī)式獎(jiǎng)勵(lì)系統(tǒng)!”
半年多來,Vibe Coding 幾乎重寫了開發(fā)者的工作方式。
盯著屏幕苦思冥想似乎成了過去式,現(xiàn)在只需要把需求丟進(jìn) Claude、GPT 或 Cursor,然后在幾分鐘后就得到能運(yùn)行的結(jié)果。
生產(chǎn)力看似翻倍,GitHub 提交曲線一片碧綠。但另一個(gè)問題卻悄悄浮現(xiàn):沒有掙扎,沒有洞見,沒有成長。
我們是不是正在變“腦殘”?
近日,一篇名為“氛圍編程正在制造腦殘程序員”的文章在 Reddit 上引起了巨大反響,吸引力多達(dá)1000+的投票者。
圖片
這篇文章的作者Namanyay是一位舊金山的印度籍創(chuàng)業(yè)者。他同樣是一位喜歡使用AI輔助編程的玩家。他在文中對(duì)比了在用AI編程之前的狀態(tài),給出了一個(gè)非常形象的比喻:
AI 編程的體驗(yàn),本質(zhì)上是一個(gè)老虎機(jī)式獎(jiǎng)勵(lì)系統(tǒng):
輸入提示詞,等待幾十秒;
屏幕出現(xiàn)結(jié)果,多巴胺瞬間釋放;
即便有 bug,再修,再丟給 AI。
這一切像極了手游過關(guān)、刷Tikok。它讓開發(fā)者依賴即時(shí)滿足,而不是深度思考。
“AI 把‘搞懂問題’那部分的快樂全奪走了。剩下的只是淺薄的快感。”
這一觀點(diǎn)引起了很多評(píng)論者的共鳴,一位讀者進(jìn)一步補(bǔ)刀,事實(shí)上,(而且是)越小白的 coder 越喜歡“Vibe Code”。

這無疑是一種惡性循環(huán)?!叭藗兪褂?AI 進(jìn)行編程的程度與他們(缺乏的)技能之間存在直接的相關(guān)性?!?/p>
但有些網(wǎng)友卻認(rèn)為,這種事情不可避免,而且問題不大。
如果真的在工作中,有人提交的代碼是 100% AI 生成,甚至連自己都沒看過,那說明團(tuán)隊(duì)的問題比“氛圍編碼”更嚴(yán)重——是管理和質(zhì)量控制上的根本問題。
如果你說的是業(yè)余程序員,那誰會(huì)在乎呢?Vibe 編碼讓非程序員或想要拓展其他領(lǐng)域的程序員能夠真正構(gòu)建出他們以前做不到的東西。
最終,他們?nèi)匀灰獙?duì)自己構(gòu)建的東西負(fù)責(zé),所以這有什么問題呢?
AI時(shí)代,究竟該如何看待這個(gè)問題?
作者指出,速度不等于能力。同時(shí),他給出了自己平時(shí)是如何平衡AI與自己思考的,這樣確保自己Vibe Coding的過程中不丟掉編程的靈魂。
話不多說,下面就讓我們欣賞這篇高贊文章。
1.AI把我們變成了賭徒
我一直在用 Claude Code 來替我寫所有代碼。而我覺得,這正在讓我在自己熱愛了十二年的事情上變得越來越糟。
一個(gè)事實(shí)是,AI 編程正在重塑我們的大腦。它讓開發(fā)者沉迷于即時(shí)滿足,而不是深入理解,把我們變成了老虎機(jī)賭徒,不停拉下拉桿,等待下一次能跑通的代碼。
如果這種情況發(fā)生在我身上,一個(gè)在 AI 出現(xiàn)之前就學(xué)會(huì)編程的人身上,那對(duì)那些從未經(jīng)歷過“非 AI 時(shí)代”的新手開發(fā)者來說,又意味著什么呢?
2.解決難題的感覺
16 歲那年,在新德里的寢室里,我沉迷于這樣一個(gè)問題。要不要跟我一起試試?
圖片
從一個(gè) 2×22×2 的方格左上角出發(fā),只能向右或向下移動(dòng),一共有 6 條路徑可以到達(dá)右下角。
那么,通過一個(gè) 20×2020×20 的方格,總共有多少條這樣的路徑呢?(Project Euler 的“格點(diǎn)路徑”問題)它來自一個(gè)叫“Project Euler”的網(wǎng)站,這是編程挑戰(zhàn)的最佳資源之一,融合了數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)和算法知識(shí)。這個(gè)題目是第 15 題 “格點(diǎn)路徑”。和 Euler 大部分問題一樣,它的表述很簡(jiǎn)單。
題目里已經(jīng)給出了 2x2 的例子,你可以很容易畫出 3x3(試試看,這是我做的第一步)。但真正的挑戰(zhàn)在于放大規(guī)模——能想象 20x20 格子會(huì)有多大結(jié)果嗎?
我為此花了好幾個(gè)星期——在所有能找到的紙上亂畫圖,煩到數(shù)學(xué)老師見我就躲,甚至有幾晚夢(mèng)里還在想算法。
你能想象今天還會(huì)有人花幾個(gè)星期只為了一個(gè)問題嗎?不停地思考,失敗,再思考?
我試過一切。暴力法。遞歸。畫到手抽筋。都不行。
直到某天下午放學(xué)坐公交車時(shí),我突然意識(shí)到:這根本不是路徑搜索問題。
它是組合問題。要到達(dá)右下角,必須走 20 次右、20 次下。換句話說:你有 40 步,其中 20 步是右,20 步是下。問題就是——有多少種排列方式?答案就是 C(40,20)。
那一刻我仿佛有了小型“歐幾里得時(shí)刻”,興奮到回家都在傻笑。我開機(jī),十分鐘寫出解法,算出了答案:137846528820。提交后屏幕彈出成功提示,數(shù)周努力匯聚成這一瞬的榮耀。
但關(guān)鍵不是得出了這個(gè)數(shù),而是那個(gè)瞬間——當(dāng)一切突然串聯(lián)起來的感覺。數(shù)周的迷惑變得清晰無比,進(jìn)入了完全沉浸、完全理解的心流狀態(tài)。
如果我沒花時(shí)間思考,或者作弊去網(wǎng)上找答案,我絕不可能有這種體驗(yàn)。
我沒這么做,那種沖擊是純粹的魔法。我徹底愛上了編程。
3.空洞的滿足,便宜的快感
幾個(gè)月前,我遇到一個(gè)復(fù)雜的 React 狀態(tài)管理 Bug。調(diào)試 React 狀態(tài)的樂趣幾乎墊底,僅比卡著網(wǎng)速掉包的上網(wǎng)好一點(diǎn),所以我(偷懶地)把整個(gè)問題丟給 Claude。

然后(這就是悲劇開始的地方)我切到 Twitter 滑了一會(huì)。
Claude 給出了解答。我心里只冒出一個(gè)“哦,挺好”。沒感覺。
也不完全沒感覺。
我感覺到了一種空洞的滿足:代碼能跑了。就像刷 TikTok 或手游通關(guān)時(shí)的那種便宜的快感,“有點(diǎn)事發(fā)生了”。
如果你用過 AI 編程,可能也有同感:
我輸入一個(gè)提示,帶點(diǎn)“氛圍感”。AI 假裝在“思考”(明明大家都知道它根本不會(huì)思考,只是在假裝。我卻還會(huì)微笑,甚至半信半疑)。
我知道大概等半分鐘會(huì)出答案。在這期間我該干嘛?思考?AI 已經(jīng)幫我思考了,而且更快,還大概率正確。
等結(jié)果出來,的確有一瞬間的多巴胺。爽。
我檢查代碼(騙你呢,我只是掃一眼它寫的解釋,并沒看代碼本身)。差不多能用,但有些假設(shè)錯(cuò)了,于是有 bug。
我再給 AI 一個(gè)提示,它再改。如此反復(fù)。
輸入提示,得到代碼。
拉下拉桿,獲得獎(jiǎng)勵(lì)。
總之,沒有掙扎,沒有洞見,沒有成長。
4.我們正在制造“人形合并按鈕”
當(dāng)你用 AI “氛圍編程”時(shí),真正發(fā)生的是:你從錯(cuò)誤的地方獲得了多巴胺。
在 AI 出現(xiàn)之前,編程會(huì)給我兩次快感:搞懂問題 和 跑通代碼。理解算法為什么失敗時(shí)的突破瞬間;設(shè)計(jì)出優(yōu)雅架構(gòu)時(shí)的滿足;調(diào)試幾個(gè)小時(shí)后終于運(yùn)行成功的喜悅。
現(xiàn)在,AI 把“搞懂”那部分全奪走了。剩下的只是淺薄的快感。
仔細(xì)想想,這 30 秒的等待,其實(shí)就是“變比率獎(jiǎng)勵(lì)機(jī)制”——隨機(jī)、間歇性的獎(jiǎng)勵(lì)。老虎機(jī)、社交媒體和手游的上癮原理一模一樣。
如果這能影響到我——想想那些完全沒經(jīng)歷過非 AI 編程時(shí)代的新人吧。
我們正在培養(yǎng)一代會(huì)交付代碼、但不會(huì)推理系統(tǒng)的開發(fā)者。
我們正在制造一代“人形合并按鈕”,他們只會(huì)批準(zhǔn) AI 的提交,而不理解自己部署了什么。
他們將永遠(yuǎn)體會(huì)不到 Euler 那種時(shí)刻。那種教會(huì)你“如何思考”,而不是“如何復(fù)制粘貼”的長期掙扎。跳過了那些真正讓你變強(qiáng)的挑戰(zhàn)。
5.速度的幻覺
最糟的是:AI 的確能讓人感覺很好,確實(shí)能用。它讓我覺得自己很高效,功能上線更快,GitHub 的綠格子閃閃發(fā)光。
下面是我每周的 AI 使用情況。

看起來挺不錯(cuò)的,嗯,“我自己的心血”。
但速度 ≠ 能力。當(dāng)你把思考外包出去,你失去的不只是練習(xí),還有信心。那個(gè)曾經(jīng)在你耳邊低語“我能搞定”的聲音,每次你依賴 AI 時(shí)都會(huì)變得更小聲。
6.如何用 AI,而不丟掉靈魂
我不是說要放棄 AI —— 這些工具已經(jīng)強(qiáng)大到無法忽視。但我們必須有意圖地使用它們。
- 強(qiáng)迫自己理解代碼。如果你說不清它在做什么、為什么要這么做,就別合并。聽起來顯然,但新手跳過這一步的頻率高得嚇人。
- 定期不靠 AI 練習(xí)題目。我又開始做 Project Euler。這是有意的編程訓(xùn)練。我的問題解決肌肉比我想象的還要生疏,但正在恢復(fù)。
- 利用 AI 等待時(shí)間。別刷 Twitter 或 Reddit,可以用來思考下一個(gè)任務(wù)的架構(gòu)。(如果需要,裝個(gè)社交媒體屏蔽工具。我手機(jī)上用的是 Opal。)
- 最重要的是 —— 記住我們寫代碼的原因:從無到有地創(chuàng)造,解決看似不可能的問題,去構(gòu)建真正有意義的東西。別忘了這個(gè)“為什么”。
7.我是這樣平衡的
ps:在作者另一篇博客中,提到了自己如何平衡AI工具和自己工程能力的做法,小編覺得非常有價(jià)值,也特地補(bǔ)充了過來。
真正的危險(xiǎn)不在于使用 AI —— 而在于把理解力交給它?!胺諊幊獭被蛟S能應(yīng)付一個(gè)周末項(xiàng)目,但對(duì)任何嚴(yán)肅的軟件來說都是災(zāi)難性的。
在編寫我自己的 AI(它能讓軟件開發(fā)更快)時(shí),我總結(jié)出了一套全面的方法,既能平衡 AI 的輔助作用,又能保持工程上的卓越:
- 在使用 AI 工具時(shí),先要有清晰的架構(gòu)愿景。
在生成任何代碼之前,先寫下你的需求、約束條件和預(yù)期行為。這會(huì)成為你驗(yàn)證所有 AI 生成代碼的框架。 - 不要直接接受 AI 提供的完整函數(shù)或組件,而是把它們拆解成更小、可理解的片段。我形成了一個(gè)三步流程:
a.生成小而集中的功能片段
b.徹底審查并理解每個(gè)片段
c.只有在驗(yàn)證和測(cè)試之后才整合
- 確保 AI 對(duì)你的項(xiàng)目有完整的上下文信息。其中應(yīng)包括:
a.項(xiàng)目的存在意義(Why the project exists)
b.業(yè)務(wù)邏輯,解釋“為什么”,而不僅僅是“怎么做”
c.項(xiàng)目各子部分之間如何交互
d.重要的第三方依賴在何處以及如何被使用
e.數(shù)據(jù)模式和模型的說明
- 制定一套能迫使你理解代碼的測(cè)試策略:
a.在接受 AI 生成的代碼之前先寫測(cè)試
b.明確測(cè)試邊界情況
c.實(shí)現(xiàn)驗(yàn)證系統(tǒng)行為的集成測(cè)試,或者至少手動(dòng)進(jìn)行驗(yàn)證
- 即使作為獨(dú)立開發(fā)者,我也會(huì)對(duì) AI 生成的代碼保持嚴(yán)格的代碼審查流程:
a.像對(duì)待初級(jí)開發(fā)者寫的代碼一樣審查所有生成代碼
b.檢查安全隱患
c.確保錯(cuò)誤處理得當(dāng)
8.沒有理解的生產(chǎn)力,只是復(fù)制粘貼的咸魚
即使有一天 AI 滲透了整個(gè)軟件開發(fā)流程,最好的開發(fā)者依然會(huì)是那些能深度思考復(fù)雜問題的人。
我看好 AI 編程。這是革命性技術(shù),讓我比以往更高效。但沒有理解的生產(chǎn)力,只是精致的復(fù)制粘貼。
AI 應(yīng)該放大你的智慧,而不是替代它。用它來攻克更大的挑戰(zhàn),而不是徹底逃避思考。
因?yàn)橐坏┪覀儾辉倥c難題搏斗的那一天,我們就不再是程序員,而變成了別的東西。
好了,文章到這里結(jié)束了,祝周日愉快!

























