“ AI Coding 是一個快速演進的領(lǐng)域,我們需要了解它當(dāng)前的局限性,為未來的各種可能性做好準(zhǔn)備,可能一個任務(wù)今天無法完成但是在明天模型升級后就可以實現(xiàn)了。唯一的應(yīng)對辦法是刻意練習(xí),刻意地用 LLM 完成一些日常的任務(wù),感知模型能力的邊界和變化,并且嘗試用工程的手段去彌補模型的不足以投入使用”。
AI Coding 的發(fā)展與影響
?? 大語言模型的演進趨勢
AI Coding 的核心發(fā)展趨勢體現(xiàn)在 AI 自主性的飛速提升。從最初以代碼補全、代碼問答為主的 Copilot 形式(e.g GitHub Copilot)到目前以獨立完成任務(wù)的 Agent 形式(e.g Devin)演進。
代碼大模型的演進速度非常快,相較于去年同一時間的產(chǎn)品,如今的模型能力超乎預(yù)期。前沿模型在代碼生成任務(wù)上提升顯著,其成本和速度在持續(xù)優(yōu)化,尤其是從 0 到 1 生成小型項目上的表現(xiàn)。總之,前沿模型在變得更強更小,這意味著更好的體驗和更低的成本。
此外,大家普遍認為 2025 年是屬于 Agent 應(yīng)用的一年,大模型在這方面的能力達到了實現(xiàn)成熟應(yīng)用的拐點并且其能力會持續(xù)加強,主要可以體現(xiàn)在以下四個方面:
?? 規(guī)劃(Planning):制定計劃、將計劃拆分成子任務(wù)、為子任務(wù)設(shè)定目標(biāo)、基于反饋對計劃進行調(diào)整。
?? 記憶(Memory):記錄在 Agent 執(zhí)行過程中產(chǎn)生的歷史思考、行動和環(huán)境觀測。
?? 感知(Perception):接收來自環(huán)境的信息,可以是文本或多模態(tài)的形式。
?? 行動(Action):基于計劃和 LLM 的決策,和環(huán)境進行交互并對環(huán)境造成狀態(tài)的改變。對于行動而言一個重要的機制就是控制和使用外部工具。
?? AI Coding 帶來的改變與影響
每一個技術(shù)革新的過程都會經(jīng)歷若干個階段,我們現(xiàn)在正在跨越從早期市場到主流市場這個鴻溝。對于早期的采用者來說,他們看到了這項技術(shù)的巨大潛力并且為之興奮,盡管不成熟或者有時候效果不佳,但是 AI Coding 的使用體驗非常神奇。這個工具能猜到你的意圖并給出對應(yīng)的代碼,并且在持續(xù)快速地提升,越來越穩(wěn)定,完成更難的任務(wù)。
正因為 AI Coding 是一個快速演進的領(lǐng)域,我們需要了解它當(dāng)前的局限性,為未來的各種可能性做好準(zhǔn)備,可能一個任務(wù)今天無法完成但是在明天模型升級后就可以實現(xiàn)了。唯一的應(yīng)對辦法是刻意練習(xí),刻意地用 LLM 完成一些日常的任務(wù),感知模型能力的邊界和變化,并且嘗試用工程的手段去彌補模型能的不足以投入使用(比如用 RAG 去除幻覺)。一方面你會深化認知和技巧,另一方面一旦達到零界點你將是第一批的受益者。
?? 豆包MarsCode 與 AI Coding
豆包MarsCode 的判斷與思考
AI Coding 目前還處在早期的階段(盡管相對其它的應(yīng)用場景要成熟很多,并且已經(jīng)在企業(yè)中大范圍應(yīng)用),但是它的發(fā)展速度非常快(過去兩年 LLM 性能快速地提升),功能形態(tài)、交互方式、應(yīng)用場景都在隨之持續(xù)變化,總體向著更加自主、進一步解放生產(chǎn)力的方向發(fā)展。
在字節(jié)內(nèi)部,豆包MarsCode 已經(jīng)覆蓋了 70% 以上的開發(fā)者,從編碼階段就開始為開發(fā)者貢獻代碼和技術(shù)解決方案。在代碼提交后,AI 也會參與代碼評審,自動生成測試用例提升覆蓋率,上線后也用于輔助線上問題的定位和解決等等。
新功能 Apply 的誕生與亮相
我們可以從一個公式去理解豆包MarsCode 在進行 Apply 產(chǎn)品功能設(shè)計時的思考:
p?(t + a)
其中 p
是 LLM 失敗的概率, t
是從用戶請求到響應(yīng)的時間, a
是在失敗情況下造成的任何額外損失,這個公式得到的結(jié)果就是用戶在使用過程中感受到風(fēng)險的大小。當(dāng)用戶意識到某個功能存在風(fēng)險(高延遲,低成功概率)時,他們會停止使用并且很難恢復(fù)信任,這種情況在 LLM 應(yīng)用上更為明顯。
代碼問答側(cè)邊欄是一個風(fēng)險非常低的功能。因為有流式傳輸,你可以立即開始閱讀,t 是很小的,但是 p 通常相對較高。在生成代碼時,即使 LLM 不完美,你也有一段新的代碼可以參考、構(gòu)建和重新提示以改進方案,它不會馬上修改源代碼,因此 a 也是非常小的。于是,當(dāng)代碼修改方案已經(jīng)被確認后,如何快速且準(zhǔn)確的將這些修改更新到代碼中就非常重要。Apply 解決了這關(guān)鍵的最后一步,無需手動復(fù)制粘貼或者手動修改,直接通過智能分析實現(xiàn)在對應(yīng)的位置修改代碼,讓整個代碼問答工作流變得更流暢。Apply 功能大大降低了代碼變更的成本。
高效利用 AI Coding 的方法與實踐
?? 優(yōu)化 AI 生成代碼的質(zhì)量、可靠性和安全性
?? 高質(zhì)量上下文:模糊不清的上下文容易導(dǎo)致大模型出現(xiàn)幻覺。完成一個任務(wù)時對人重要的信息大概率對 AI 也非常重要,你可以通過主動顯式地引入這些信息來幫助 AI。比如代碼補全打開相關(guān)的文件,問答的時候用 #Code
/#File
/#Folder
引入明確的代碼片段來實現(xiàn)。
?? 生成測試用例:讓 AI 在完成一段功能后添加對應(yīng)的測試用例,可以提升任務(wù)的穩(wěn)定性,也可以避免后續(xù)的任務(wù)破壞已有的功能。
?? 項目實踐沉淀:每個項目都會有自己的編碼規(guī)范和最佳實踐,這些知識都值得沉淀。當(dāng)前 LLM 的指令跟隨和上下文感知能力都非常強,加入這些規(guī)則和知識庫會對任務(wù)的完成效果和穩(wěn)定性有非常大的幫助。
?? 實現(xiàn) AI Coding 在大型項目的可行性探索
我們在大型工程中也要解決可行性的問題,在 LLM 時代之前我們會怎么做?我們會通過做抽象、做架構(gòu)隔離、做分工、記錄文檔等等方式來解決。一個大工程如果在這些方面做的很好,那么對實踐 AI Coding 也大有幫助。
哪怕一個項目有幾十甚至幾百萬行代碼,但是解決一個具體問題時人們和 AI 所需要的上下文都是相對有限的。目前的 AI Coding 工具背后都會有一個代碼知識圖譜系統(tǒng)支持,用于召回與當(dāng)前任務(wù)相關(guān)的上下文。隨著 Agent 的出現(xiàn),AI 會自己分析任務(wù)并調(diào)用 IDE 中的工具探索、獲取上下文,做到更加的精確。
未來已來:開發(fā)者的機遇與建議
?? 機遇
?? 降低開發(fā)門檻
軟件開發(fā)不再是技術(shù)門檻高的專屬領(lǐng)域,只要具備洞察力,個體即可利用 AI 構(gòu)建工具,滿足長尾需求。AI Coding 讓更多人有機會參與到解決實際問題的創(chuàng)新之中,釋放了開發(fā)潛力。
?? 提升個體生產(chǎn)力
以CPU做類比,Copilot 相當(dāng)于提升單核處理效率,而 Agent 則讓開發(fā)者擁有多核并行能力。未來可能會有很多小型但是極具戰(zhàn)斗力的團隊或者創(chuàng)業(yè)公司。
?? 建議
?? 學(xué)習(xí)能力
對于學(xué)生或者職場新人,成長是最重要的事情,在學(xué)校除了打好基礎(chǔ),培養(yǎng)有效學(xué)習(xí)的能力也非常重要。
?? 好奇心
好奇心是一個優(yōu)秀程序員的的重要特征,它能驅(qū)動你對一個問題的持續(xù)深耕,也能驅(qū)動你去探索前沿的技術(shù)。
?? 駕馭 AI 的能力
除了好奇心,還要有滿足好奇心的能力。大模型的出現(xiàn)極大降低了這一能力的門檻,成長的效率會大幅提升。駕馭好這個工具也會成為日后在職場中的一個競爭優(yōu)勢。
啟智增效:高校學(xué)生如何用 AI 助力學(xué)習(xí)
?? 學(xué)習(xí)和鞏固計算機基礎(chǔ)知識
進入職場后,你會發(fā)現(xiàn)計算機科學(xué)基礎(chǔ)課程的重要性在職場中會愈發(fā)凸顯。無論是學(xué)習(xí)新技術(shù)、設(shè)計解決方案,還是定位線上疑難問題,都需要對計算機軟硬件體系有深刻理解。然而,學(xué)校的理論教學(xué)往往與實際應(yīng)用場景脫節(jié),這時 AI 就可以成為你的得力助手:
?? 將理論落地實踐:學(xué)習(xí)一個知識點時,AI 可以提供相應(yīng)的應(yīng)用場景,解釋在實際工程中的實現(xiàn)方式,甚至提醒你可能遇到的異常情況。
?? 明確使用場景:以數(shù)據(jù)結(jié)構(gòu)和算法為例,AI 不僅可以幫助你理解它的實現(xiàn),還能告訴你在何種場景下使用何種算法或數(shù)據(jù)結(jié)構(gòu),讓學(xué)習(xí)更加貼近真實項目需求。
?? 快速掌握語言、框架和工具的實踐操作
?? 優(yōu)化學(xué)習(xí)流程:AI 能幫你解決工具鏈安裝、工程創(chuàng)建、依賴配置等繁瑣任務(wù),讓你快速進入核心知識點的學(xué)習(xí),減少對技術(shù)門檻的畏懼。
?? 個性化指導(dǎo):AI 會根據(jù)你的實際水平提供量身定制的解釋和幫助,耐心解答每一個問題,讓學(xué)習(xí)過程更加舒適、無壓力。
?? 引導(dǎo)工程最佳實踐:高校教育中對開發(fā)工具、編程規(guī)范等方面的內(nèi)容常常不足,因此 MIT 也出了這樣的課程:The Missing Semester of Your CS Education。AI 已經(jīng)學(xué)習(xí)了大量實際項目的最佳實踐,可以在問答中直接指導(dǎo)你正確使用工具并遵循規(guī)范。
在編程獅學(xué)習(xí)下列課程的時候不妨試試借助 AI 試試吧~
分類 | 課程名稱 | 課程介紹 | 流行指數(shù) | 適合人群 |
---|---|---|---|---|
前端開發(fā) | HTML入門課程(含HTML5) | 從零開始學(xué)習(xí)HTML,掌握網(wǎng)頁結(jié)構(gòu)搭建及HTML5的新特性和語義化標(biāo)簽,為前端開發(fā)打下堅實基礎(chǔ) | ★★★★★ | 初學(xué)者、前端開發(fā)者 |
前端開發(fā) | CSS 入門課程 | 學(xué)習(xí)CSS選擇器、盒模型、布局方式等基礎(chǔ)知識,通過實戰(zhàn)項目掌握網(wǎng)頁樣式設(shè)計技巧,提升頁面美觀度 | ★★★★★ | 初學(xué)者、前端開發(fā)者 |
前端開發(fā) | JavaScript 入門課程 | 掌握JavaScript語法、DOM操作、事件處理等核心知識,學(xué)會實現(xiàn)網(wǎng)頁的交互效果和動態(tài)功能 | ★★★★★ | 初學(xué)者、前端開發(fā)者 |
前端開發(fā) | TypeScript 入門到進階課程 | 從TypeScript基礎(chǔ)語法講起,深入學(xué)習(xí)高級類型、接口、類等概念,助力開發(fā)者編寫高質(zhì)量的前端代碼 | ★★★★★ | 初學(xué)者、前端開發(fā)者 |
前端開發(fā) | Vue2入門課程 | 學(xué)習(xí)Vue2框架的響應(yīng)式數(shù)據(jù)綁定、組件系統(tǒng)、路由管理等核心功能,通過項目實踐快速上手前端組件化開發(fā) | ★★★★★ | 初學(xué)者、前端開發(fā)者 |
后端開發(fā) | Node.js 入門課程 | 了解Node.js的運行機制,學(xué)習(xí)使用Node.js搭建服務(wù)器、處理HTTP請求和響應(yīng),掌握常見的后端開發(fā)框架和模塊 | ★★★★★ | 初學(xué)者、后端開發(fā)者 |
后端開發(fā) | PHP 入門課程 | 講解PHP語言基礎(chǔ),包括語法、函數(shù)、數(shù)組等,以及如何使用PHP進行數(shù)據(jù)庫操作、會話管理等Web后端開發(fā)任務(wù) | ★★★★★ | 初學(xué)者、后端開發(fā)者 |
后端開發(fā) | C# 入門課程 | 學(xué)習(xí)C#語言的基本語法、面向?qū)ο缶幊趟枷耄约?NET框架下的Web開發(fā)、桌面應(yīng)用開發(fā)等技術(shù) | ★★★★★ | 初學(xué)者、后端開發(fā)者 |
后端開發(fā) | C++ 入門課程 | 介紹C++語言的核心特性,如指針、引用、類和對象等,適合希望從事系統(tǒng)編程、游戲開發(fā)等領(lǐng)域的初學(xué)者 | ★★★★★ | 初學(xué)者、后端開發(fā)者 |
移動開發(fā) | Android 零基礎(chǔ)入門課程 | 從Android開發(fā)環(huán)境搭建開始,學(xué)習(xí)Java/Kotlin語言在Android平臺的應(yīng)用,掌握布局設(shè)計、事件處理、服務(wù)等開發(fā)要點 | ★★★★★ | 初學(xué)者、移動開發(fā)者 |
移動開發(fā) | Swift 入門課程 | 學(xué)習(xí)Swift語言的語法和特性,了解iOS開發(fā)的基本框架和組件,能夠開發(fā)簡單的iOS應(yīng)用 | ★★★★★ | 初學(xué)者、移動開發(fā)者 |
數(shù)據(jù)庫 | SQL 入門課程 | 講解SQL語言的基本語法,包括數(shù)據(jù)查詢、插入、更新、刪除等操作,以及數(shù)據(jù)庫的設(shè)計和優(yōu)化原則 | ★★★★★ | 初學(xué)者、數(shù)據(jù)庫開發(fā)者 |
數(shù)據(jù)庫 | MySQL 入門課程 | 詳細介紹MySQL數(shù)據(jù)庫的安裝、配置、管理,以及如何使用SQL語句進行高效的數(shù)據(jù)庫操作和數(shù)據(jù)處理 | ★★★★★ | 初學(xué)者、數(shù)據(jù)庫開發(fā)者 |
系統(tǒng)運維 | Linux 入門課程 | 學(xué)習(xí)Linux操作系統(tǒng)的常用命令、文件系統(tǒng)管理、用戶權(quán)限控制等基礎(chǔ)知識,掌握服務(wù)器的基本運維操作 | ★★★★★ | 初學(xué)者、運維人員 |
系統(tǒng)運維 | Git 基礎(chǔ)課程 | 從版本控制的概念講起,學(xué)習(xí)Git的基本操作,如克隆、提交、分支管理等,提高代碼協(xié)作和管理效率 | ★★★★★ | 初學(xué)者、開發(fā)者 |
網(wǎng)絡(luò)技術(shù) | 基礎(chǔ)網(wǎng)絡(luò)協(xié)議入門課程 | 深入講解HTTP、TCP/IP等基礎(chǔ)網(wǎng)絡(luò)協(xié)議的工作原理和應(yīng)用,幫助學(xué)員理解網(wǎng)絡(luò)通信的過程和機制 | ★★★★★ | 初學(xué)者、網(wǎng)絡(luò)工程師 |
其他 | Python3 入門課程 | 學(xué)習(xí)Python3的語法基礎(chǔ)、數(shù)據(jù)類型、控制結(jié)構(gòu)等,掌握其在數(shù)據(jù)分析、爬蟲開發(fā)、自動化腳本等領(lǐng)域的應(yīng)用 | ★★★★★ | 初學(xué)者、多領(lǐng)域開發(fā)者 |
其他 | Java入門課程 | 從Java語言基礎(chǔ)講起,涵蓋面向?qū)ο缶幊?、集合框架、多線程等內(nèi)容,為后續(xù)的Java Web開發(fā)或Android開發(fā)打基礎(chǔ) | ★★★★★ | 初學(xué)者、多領(lǐng)域開發(fā)者 |
其他 | C語言入門課程 | 學(xué)習(xí)C語言的基本語法、指針、數(shù)組、函數(shù)等核心概念,培養(yǎng)學(xué)員的編程思維和算法能力 | ★★★★★ | 初學(xué)者、多領(lǐng)域開發(fā)者 |
其他 | Docker 入門課程 | 了解Docker容器技術(shù)的基本概念,學(xué)習(xí)如何使用Docker搭建開發(fā)環(huán)境、部署應(yīng)用,實現(xiàn)應(yīng)用的快速交付和部署 | ★★★★★ | 初學(xué)者、開發(fā)者 |
其他 | 微信小程序入門課程 | 學(xué)習(xí)微信小程序的開發(fā)框架和API,掌握頁面設(shè)計、數(shù)據(jù)綁定、網(wǎng)絡(luò)請求等開發(fā)技巧,能夠開發(fā)簡單的微信小程序 | ★★★★★ | 初學(xué)者、前端開發(fā)者 |
如果你還沒嘗試用 AI 輔助編程,現(xiàn)在,邁出探索 AI Coding 的第一步吧!
??立即下載豆包 MarsCode