氛圍編程師崛起,年薪87萬一天15小時,Karpathy用400行AI代碼點燃矽谷

【導讀】氛圍編程徹底火了。剛剛,沒有任何Swift編程經驗的Karpathy親自代言,通過與ChatGPT多輪對話,僅用400行代碼構建出自己的首個iOS應用。

Vibe Coding(氛圍編程),如今成為矽谷最新流行語。

首次提出這一概念的AI大神Karpathy,再度分享了自己的編程新姿勢——用Swift編寫首個完整卡路里追蹤的iOS應用。

令人驚訝的是,他完全沒有Swift編程經驗,也沒有翻閱任何文檔。

通過與ChatGPT的多輪對話,Karpathy僅用1小時完成整個開發過程,併成功部署到手機上。

不僅如此,在氛圍編程爆火之後,各路網民紛紛開發各種遊戲、網頁等各類應用,甚至就連科技公司也掛上招聘「氛圍編程師」的職位。

一則YC招聘啟示中,一則YC招聘啟示中,明確提出工作內容中的50%代碼,均是由AI完成,年薪高達120k美金(87萬元)。

職位介紹中,每天工作12-15小時,卻成為了全網的華點。

如果AI真的提高了生產力,為什麼還會有人每天狂干12-15個小時呢?

400行代碼,ChatGPT化身編程導師

Karpathy如何用嘴,迅速完成一個iOS應用的開發?

推文中,他具體分享了自己與ChatGPT對話的四次過程:啟動應用;功能增強;使用AppStorage持久化數據;部署到手機。

在啟動應用階段,Karpathy從0開始,告訴ChatGPT自己的需求:剛剛下載了Xcode,希望用SwiftUI構建一個iOS應用。

ChatGPT在接下來開啟了「手把手」教學。

首先安裝和啟動Xcode,就這個環節已經細緻到,打開點擊具體某個選項。然後配置項目,包括命名、界面、編程語言等選擇。

接下來,ChatGPT還提供了基礎代碼,包括SwiftUI的界面佈局和邏輯實現,幫助Karpathy快速搭建了一個可運行的原型。

有了原型之後,便開始實操了——構建一個體脂追蹤的計時器APP。

Karpathy就像一位產品經理一樣,給出了自己的具體要求:「計時器」主要體現隨時間變化而自然消耗的熱量,用大號數字顯示在屏幕中央,還要每秒更新一次消耗的熱量。

ChatGPT按照指令,給出了分佈構建過程,以及下一步建議。

接下來,Karpathy還要求其給出不同按鍵對應的功能代碼搭建過程,以及每秒更新的配置。

第二部分,在基礎版本完成之後,就是去做功能增強。

比如,支持明暗模式切換,簡單的加減按鈕、觸覺反饋和動畫等,ChatGPT均提供了具體的代碼片段和實現建議。

為了讓數據在應用關閉後依然保存,Karpathy還向ChatGPT詢問了如何使用AppStorage。

ChatGPT詳細講解了AppStorage的使用方法,並幫他將卡路里數據存儲到UserDefaults中。

最後一步,Karpathy需要將這款應用部署到iPhone上,ChatGPT指導他完成了Xcode配置、證書設置、設備部署的步驟,並最終讓應用成功運行在手機上。

經過1小時的對話,卡路里計時器的應用完成了。

下面是計時器的主要功能,一共200行代碼,只有幾個UI元素和一些簡單的邏輯。

第二天,Karpathy又通過與ChatGPT的3次對話,為應用添加了一些新功能:動畫環、將固定值顯示在 [-3500, 3500] 區間內。

剛剛,他還為其添加了日誌、為+100/-100添加小字說明並隱藏BMR兩個功能。

截至目前,這款應用代碼也僅有400行。

網民瘋狂整活

隨著氛圍編程越來越火,圈內大佬Min Choi也總結了一波效果拔群的案例。

開發者Luke Van In用大約1萬行Claude編寫的代碼構建了一款遊戲。

他認為,當前代碼庫的複雜庫已經接近可控的極限,Claude已經能夠重構20%代碼,並自動添加了武器後坐力和鏡頭抖動的效果。

對於貼花系統,Luke又借助了Grok進行了一些手動調整。

xAI工程師kache設置了一種方法,可以動態重新加載客戶端和服務器邏輯,無需用戶刷新頁面,就可以實時更新和迭代。

他還特意強調,如果自己清楚想要做什麼,氛圍編程才能發揮其優勢。

還有一位開發者Louie Bacaj僅用Claude 3.7+o1 Pro,在幾個小時內通過氛圍編程做出一個益智遊戲。

還有角色扮演的小遊戲,也是通過氛圍編程就能完成。

還有人用兩條提示,就能讓遊戲中NPC駕駛飛機。

不是所有AI輔助編程都是「氛圍編程」

值得注意的是,並不是所有用上AI輔助的編程,都能稱之為「氛圍編程」。

在最近的一篇博客中,知名web框架Django的共同作者Simon Willison,就對這一概念進行了非常詳盡的解釋。

並且,還獲得了「發明人」Karpathy的大加讚賞:

就個人體驗而言,當我處於類似下面這條狗的狀態時,就會稱之為「氛圍編程」——比如昨晚開發iOS應用時的場景。

但實際開發中,我很少徹底放任AI自由發揮,更多時候保持著漸進式迭代:審閱生成代碼、分階段增加複雜度、通過持續提出澄清問題來逐步理解模塊間的交互邏輯。

氛圍編程正當時

自從Andrej Karpathy在2月3日首次提出「氛圍編程」後,這一概念隨即登上各大主流媒體,並引發無數線上討論。

為了避免偏離初衷,這裏必須強調——氛圍編程絕不等同於借助LLM編寫代碼,而是在不審查LLM產出代碼的情況下構建軟件。

「氛圍編程」可以你完全沉浸在氛圍中,擁抱指數級進步,甚至忘記代碼本身的存在。這是因為LLM(例如Cursor Composer搭配Sonnet)已經變得足夠優秀。我甚至可以只用SuperWhisper與Composer進行對話,幾乎無需摸鍵盤。

我會提出最基礎的要求,比如「將側邊欄的內邊距減半」。並且總是點擊「全部接受」,而不去查看代碼差異。遇到報錯,就直接複製到對話框中讓LLM去修復。代碼的複雜程度已超出我的日常認知,真要理解必須逐行細讀。有時LLM無法修復bug,我就直接繞過或隨機調整直到問題消失。

對於週末隨便做的項目來說,可謂是充滿趣味。只是觀察、口述、運行、複製黏貼,結果居然大部分都能跑通。

作為天賦異稟的資深程序員,Andrej本無需AI輔助。他選擇這種編程方式,是因為嘗試瘋狂的創意充滿樂趣,且LLM的代碼生成速度比最頂尖的人類程序員快幾個數量級。

對於低風險的原型開發,何不放手讓它發揮?

使用LLM寫代碼≠氛圍編程

與專業軟件工程師使用LLM的方式相比,這種「忘記代碼存在」的開發方式有著本質差異。

首先,軟件工程師需要構建的是符合多重標準的系統——不僅要可驗證運行,還需具備人類可讀性(及機器可解析性),並能支撐長期迭代開發。

其次,軟件工程師需要在同時考慮顯性需求與隱性約束的情況下,從數十種潛在方案中篩選出最優解,進而實現性能、可訪問性、安全性、可維護性、成本效益等指標之間的平衡。

第三,軟件工程師還需要對代碼進行審查。生產環境AI輔助開發鐵律是:任何無法向其他人精確解釋工作原理的代碼,都禁止進入版本庫。

不難看出,當LLM生成代碼後,軟件工程師會完整地執行審查、測試,以及確保可解釋性這一系列流程。也就是說,這本質上仍是傳統軟件開發範式。工具鏈中是否包含LLM,並不改變工程實踐的屬性。

氛圍編程的價值

雖然氛圍編程≠用LLM進行編程,但這並不意味著它是一種不負責任的開發方式。

這種突破性的編程形式,實則蘊含著改變世界的潛能——讓數百萬沒有計算機學位或經過編程培訓的普通人,也能借助工具,讓計算機完成高度定製化任務,打造屬於自己的個性化工具。

如此一來,那些原本和編程沒什麼交集的人可能會因此點燃熱情,並最終成長為專業開發者。這個行業的最大壁壘——如同攀登懸崖般的初始學習曲線——將被氛圍編程徹底剷平。

而資深的工程師們,也可以借此訓練自己對模型能力邊界的認知。正如此前所論述的,使用LLM編碼如同在暗藏技術雷區的迷宮中探索,需要持續積累直覺經驗。

一句話總結就是,「氛圍編程」值得所有「段位」的開發者親身投入體驗。

參考資料:

https://x.com/karpathy/status/1903671737780498883

https://x.com/karpathy/status/1903870973126045712

https://x.com/minchoi/status/1903895144413159516

本文來自微信公眾號「新智元」,編輯:桃子 好睏 ,36氪經授權發佈。