代軟件開(kāi)發(fā)學(xué)習(xí)指南:調(diào)試、評(píng)審與項(xiàng)目實(shí)戰(zhàn))
這兩年我身邊聊 AI 聊得最多的問(wèn)題不是某個(gè)模型又發(fā)布了什么新功能而是“AI 時(shí)代軟件開(kāi)發(fā)應(yīng)該如何學(xué)習(xí)”。程序員們發(fā)現(xiàn)曾經(jīng)引以為傲的“從零搭一個(gè)模塊”“手寫(xiě)一套業(yè)務(wù)接口”正在快速貶值而新的能力要求好像又沒(méi)有一本現(xiàn)成的教材能講明白。這篇內(nèi)容不是趨勢(shì)預(yù)測(cè)也不是販賣(mài)焦慮而是我在不同規(guī)模的項(xiàng)目里觀察到的真實(shí)變化以及我重新整理出來(lái)的學(xué)習(xí)框架。想讀下去的朋友大概是這幾類(lèi)剛?cè)腴T(mén)但不知道從哪里使勁的初學(xué)者有一定經(jīng)驗(yàn)但擔(dān)心基本功退化的工程師還有已經(jīng)在用 AI 寫(xiě)代碼、卻總覺(jué)得少了點(diǎn)什么的人。1. 先看現(xiàn)實(shí)AI 到底動(dòng)了軟件的哪塊蛋糕1.1 初級(jí)開(kāi)發(fā)崗位正在經(jīng)歷的第一輪變化我以前帶人最看重的學(xué)習(xí)指標(biāo)是“能不能獨(dú)立寫(xiě)出一個(gè)功能模塊”。語(yǔ)法、框架、數(shù)據(jù)結(jié)構(gòu)、常見(jiàn) API這些東西只要背得夠多、練得夠勤很快就能積累起來(lái)。但 AI 工具出現(xiàn)之后工作量最大的那部分——把功能描述翻譯成代碼——突然變得非常便宜。舉一個(gè)典型場(chǎng)景。過(guò)去團(tuán)隊(duì)里要加一個(gè)“批量導(dǎo)入用戶(hù)名單”的功能新人的第一反應(yīng)通常是查文檔搞清楚上傳格式、數(shù)據(jù)庫(kù)表結(jié)構(gòu)、校驗(yàn)規(guī)則然后一行行寫(xiě)邏輯?,F(xiàn)在同樣的需求丟給 AI幾秒鐘就能生成一個(gè)看起來(lái)能跑的版本讀取文件、逐行解析、批量入庫(kù)連異常捕獲都給你寫(xiě)好了。你會(huì)發(fā)現(xiàn)真正拉開(kāi)差距的地方不在“寫(xiě)出來(lái)”而在說(shuō)清楚到底要什么樣的導(dǎo)入規(guī)則重復(fù)用戶(hù)怎么處理失敗到第幾條要不要回滾單次導(dǎo)入上限多少字段錯(cuò)誤是跳過(guò)還是終止這些需求澄清、邊界定義、異常兜底的工作AI 幫不了你因?yàn)檫@些問(wèn)題的答案不在代碼里而在業(yè)務(wù)場(chǎng)景里。初級(jí)崗位被壓縮的恰恰是最容易被工具替代的“把已知方案寫(xiě)成代碼”的部分而“搞清楚要解決什么問(wèn)題”不僅沒(méi)變反而在函數(shù)里的比重越來(lái)越大。1.2 從“寫(xiě)代碼”到“定方案”的能力遷移我接觸過(guò)的開(kāi)發(fā)者里對(duì)變化反應(yīng)最大的不是寫(xiě)不好代碼的人而是過(guò)去特別擅長(zhǎng)寫(xiě)代碼的人。原因很簡(jiǎn)單他們最依賴(lài)的技能點(diǎn)正在變成默認(rèn)能力以前“我寫(xiě)得比別人快”的優(yōu)勢(shì)不再成立?,F(xiàn)在真正值錢(qián)的是三種能力。第一個(gè)是需求拆解能力也就是把一個(gè)模糊的想法變成一個(gè)可驗(yàn)收的交付物。這里有個(gè)很實(shí)用的標(biāo)準(zhǔn)如果需求描述里出現(xiàn)“大概”“差不多”“盡量”這些詞說(shuō)明拆解還沒(méi)做完。舉例說(shuō)“做一個(gè)提醒功能”誰(shuí)都會(huì)說(shuō)但“用戶(hù)可以選擇提醒時(shí)間到期后彈通知若應(yīng)用不在前臺(tái)則發(fā)本地通知且對(duì)同一用戶(hù)五分鐘內(nèi)去重”才是可執(zhí)行的描述。第二個(gè)是系統(tǒng)判斷力知道哪些環(huán)節(jié)該交給 AI哪些環(huán)節(jié)必須保留人肉。AI 擅長(zhǎng)生成局部代碼但整體的數(shù)據(jù)流向、模塊邊界、部署策略需要人來(lái)決策。這種判斷力不是直接從教程里學(xué)來(lái)的而是靠一次次比較“自己寫(xiě)”和“AI 寫(xiě)”之間的差異慢慢建立的。第三個(gè)是質(zhì)量兜底能力。AI 生成的代碼表面上很完整但線上崩的往往不是表面而是狀態(tài)沒(méi)管理好、邊界沒(méi)覆蓋、并發(fā)沒(méi)考慮。誰(shuí)能更快定位、誰(shuí)能提前發(fā)現(xiàn)這些問(wèn)題誰(shuí)才是團(tuán)隊(duì)里不可替代的人。下面這個(gè)表可以直觀看出學(xué)習(xí)重心的遷移舊重心新重心記住語(yǔ)法和常見(jiàn) API提出正確的問(wèn)題實(shí)現(xiàn)已知功能定義未知需求寫(xiě)出代碼審查與驗(yàn)證代碼從頭搭建組合、取舍、重構(gòu)速度優(yōu)先可靠性與可維護(hù)性?xún)?yōu)先說(shuō)到底AI 不是把軟件開(kāi)發(fā)這個(gè)行業(yè)消滅了而是把“實(shí)現(xiàn)”這個(gè)環(huán)節(jié)變得便宜把“決策”這個(gè)環(huán)節(jié)擺到了臺(tái)面上。軟件開(kāi)發(fā)的學(xué)習(xí)本質(zhì)是在學(xué)怎么做好決策。2. 越用 AI 越覺(jué)得基本功不能丟調(diào)試、結(jié)構(gòu)、可讀性2.1 可運(yùn)行不等于正確調(diào)試意識(shí)為什么成了分水嶺這半年我面試人或者看團(tuán)隊(duì)同學(xué)提交的代碼發(fā)現(xiàn)一個(gè)很普遍的誤區(qū)代碼能跑起來(lái)大家就覺(jué)得任務(wù)完成了。AI 生成的代碼尤其容易給人這種錯(cuò)覺(jué)因?yàn)樗Z(yǔ)法正確、縮進(jìn)漂亮、注釋齊全看起來(lái)非常“正規(guī)”。但可運(yùn)行和正確是兩件完全不同的事。說(shuō)個(gè)我實(shí)際遇到的例子。某團(tuán)隊(duì)做訂單模塊讓 AI 生成了一段庫(kù)存扣減代碼測(cè)試環(huán)境單獨(dú)跑也沒(méi)問(wèn)題。結(jié)果壓測(cè)時(shí)一出現(xiàn)并發(fā)下單庫(kù)存就對(duì)不上了。問(wèn)題出在生成代碼壓根沒(méi)有考慮并發(fā)場(chǎng)景——先查庫(kù)存、判斷充足、再更新數(shù)量這三個(gè)動(dòng)作之間沒(méi)有鎖也沒(méi)有事務(wù)約束。這種問(wèn)題靠肉眼讀代碼很難發(fā)現(xiàn)通常要配合日志、斷點(diǎn)、甚至線上監(jiān)控才能定位。這時(shí)候真正有用的是你對(duì)“程序如何在運(yùn)行時(shí)流轉(zhuǎn)”的直覺(jué)。你去猜測(cè)哪一步出了錯(cuò)、把嫌疑范圍一步步縮小、在關(guān)鍵位置打印日志、觀察數(shù)據(jù)狀態(tài)這些都是工具替代不了的底層的調(diào)試意識(shí)。我甚至覺(jué)得AI 時(shí)代學(xué)調(diào)試比學(xué)語(yǔ)法更重要因?yàn)?AI 給你一張看起來(lái)完美的地圖只有會(huì)識(shí)圖的人才知道哪些地方標(biāo)錯(cuò)了。2.2 讀代碼、拆代碼、改代碼AI 給不了的結(jié)構(gòu)感有朋友問(wèn)過(guò)我既然 AI 寫(xiě)代碼又快又好是不是不用再花時(shí)間讀代碼了我的觀點(diǎn)恰恰相反AI 時(shí)代讀代碼變得更重要了。你將來(lái)要面對(duì)的局面是AI 一次性給你生成幾百行代碼你得有能力在五分鐘之內(nèi)搞懂它的大致結(jié)構(gòu)和潛在風(fēng)險(xiǎn)。這種能力沒(méi)有捷徑只能靠平時(shí)大量閱讀有效代碼喂出來(lái)。我給自己和團(tuán)隊(duì)同學(xué)推薦一個(gè)訓(xùn)練方法叫“三步讀代碼”先看輸入輸出這個(gè)函數(shù)或模塊拿到什么數(shù)據(jù)最后吐出來(lái)什么變化的只有這一層嗎再找狀態(tài)變化代碼執(zhí)行過(guò)程中哪些變量被修改了什么時(shí)候修改有沒(méi)有可能出現(xiàn)并發(fā)或者被外部共同引用的情況最后看邊界處理空值、超時(shí)、超量、重復(fù)請(qǐng)求這些分支有沒(méi)有被覆蓋覆蓋得對(duì)不對(duì)。日常練習(xí)的時(shí)候可以配合 AI 一起做。你拿到一段代碼先用自己的話說(shuō)一遍它是干嘛的再讓 AI 解釋對(duì)比一下漏掉了什么。反復(fù)做上幾十次你對(duì)代碼結(jié)構(gòu)的敏感度會(huì)明顯提升。讀代碼和拆代碼的本質(zhì)是建立因果鏈工具給的是信息信息只有被你組織成因果鏈才變成真本事。3. 把 AI 當(dāng)陪練而不是代練一套能落地的學(xué)習(xí)方法3.1 提問(wèn)方式?jīng)Q定了 AI 是助手還是老師同樣是打開(kāi)一個(gè) AI 工具每個(gè)人得到的效果天差地別。有人讓 AI 直接寫(xiě)完整功能拿到手就粘貼這叫“代練”有人把 AI 當(dāng)作“陪練”用它來(lái)逼自己思考和驗(yàn)證。同樣的工具用法不同學(xué)習(xí)速度差出好幾倍。我建議你在日常學(xué)習(xí)中多試這幾種提問(wèn)姿勢(shì)。第一別急著要答案先要方案??梢园研枨笤瓨觼G給 AI然后追問(wèn)一句“不要寫(xiě)代碼先給我三種實(shí)現(xiàn)思路分別說(shuō)清楚適用場(chǎng)景和取舍點(diǎn)?!边@樣一來(lái)你至少被迫面對(duì)“為什么選 A 不選 B”的權(quán)衡問(wèn)題。這種權(quán)衡能力在項(xiàng)目里最值錢(qián)。第二讓 AI 解釋每段思路。它給出代碼之后你可以繼續(xù)問(wèn)“這一段為什么用異步而不是同步這個(gè)條件判斷什么情況下會(huì)漏掉”AI 的解釋不一定全對(duì)但你只要帶著批判性接收就能培養(yǎng)出屬于自己的判斷力。第三試著角色反轉(zhuǎn)。比如你寫(xiě)了一段邏輯把它貼在對(duì)話框里讓 AI “以資深評(píng)審者的身份從并發(fā)安全、邊界條件、可維護(hù)性三個(gè)角度指出問(wèn)題”。我試過(guò)很多次這個(gè)做法能逼你對(duì)默認(rèn)寫(xiě)出來(lái)的東西進(jìn)行第二次審視。核心邏輯是AI 不應(yīng)該替代你的思考而是把你的思考變成實(shí)驗(yàn)讓驗(yàn)證變得更加即時(shí)。3.2 拿到 AI 生成結(jié)果后的驗(yàn)收清單AI 生成代碼之后許多新人會(huì)誤以為工作結(jié)束但恰恰這時(shí)候工作才剛開(kāi)始。我整理過(guò)一個(gè)簡(jiǎn)單的驗(yàn)收清單每次拿到代碼都會(huì)過(guò)一遍邊界條件如果輸入是空值、超大值、重復(fù)值程序會(huì)怎樣失敗路徑數(shù)據(jù)庫(kù)連接不上、文件不存在、權(quán)限不足有處理嗎資源釋放文件流、網(wǎng)絡(luò)連接、線程池做完后釋放干凈了嗎并發(fā)安全多個(gè)人同時(shí)在跑結(jié)果會(huì)不會(huì)互相干擾可維護(hù)性換一個(gè)人來(lái)改這段代碼能快速看懂嗎舉一個(gè)實(shí)際例子。讓 AI 寫(xiě)一個(gè)文件上傳模塊很多 AI 給出的版本都有模有樣接收文件、保存到本地、返回路徑。但你拿驗(yàn)收清單一查就會(huì)發(fā)現(xiàn)同名文件會(huì)直接覆蓋、磁盤(pán)滿(mǎn)了沒(méi)有任何提示、上傳大文件時(shí)沒(méi)有超時(shí)控制。這些缺失不會(huì)在“能跑”的體驗(yàn)里暴露但它們決定了你在真實(shí)項(xiàng)目里是省心還是踩坑。這里還想強(qiáng)調(diào)一句AI 給你代碼時(shí)通常不會(huì)自然告訴你它哪里不可靠。你在使用時(shí)必須默認(rèn)“它只是候選解不是標(biāo)準(zhǔn)答案”一切都以你的驗(yàn)收結(jié)果為準(zhǔn)。3.3 讓 AI 反向評(píng)審自己寫(xiě)的代碼還有一個(gè)我特別推薦的學(xué)習(xí)動(dòng)作就是把自己手工寫(xiě)的代碼拿給 AI 評(píng)審。很多人把這個(gè)順序搞反了總是讓 AI 寫(xiě)第一版自己去優(yōu)化。但如果你的基本功還在建設(shè)期我更建議第一版盡量自己寫(xiě)哪怕寫(xiě)得很笨然后讓 AI 來(lái)找毛病。這樣做的價(jià)值在于你會(huì)清楚地看到自己的盲區(qū)。比如我讓一個(gè)剛開(kāi)始學(xué)編程的朋友寫(xiě)一個(gè)“倒計(jì)時(shí)器”他自己寫(xiě)完覺(jué)得沒(méi)問(wèn)題AI 卻指出了幾個(gè)小問(wèn)題第一次渲染會(huì)有一秒延遲、時(shí)間到零之后沒(méi)有清理定時(shí)器、切到后臺(tái)再回來(lái)時(shí)間不準(zhǔn)。這樣的反饋比任何課程講“定時(shí)器該如何處理”都更具體因?yàn)樗苯釉以谀銊倢?xiě)完的真實(shí)代碼上。這個(gè)流程重復(fù)若干次之后你會(huì)慢慢內(nèi)化一種“先找毛病再看亮點(diǎn)”的讀取習(xí)慣。如果 AI 每次點(diǎn)出的問(wèn)題你都記錄了并且在下一次寫(xiě)作時(shí)有意識(shí)地避開(kāi)那你的成長(zhǎng)速度會(huì)遠(yuǎn)超只看教程的同期學(xué)習(xí)者。4. 別再做練習(xí)題了以項(xiàng)目為主線的學(xué)習(xí)路徑設(shè)計(jì)4.1 練習(xí)項(xiàng)目的四個(gè)選擇標(biāo)準(zhǔn)有人問(wèn)我AI 時(shí)代還需要刷題和做教程練習(xí)嗎我的答案是傳統(tǒng)練習(xí)題可以做但絕不能作為主糧。教程練習(xí)的典型問(wèn)題是它已經(jīng)有人替你定義好了問(wèn)題和答案而 AI 時(shí)代最稀缺的恰恰是自己定義問(wèn)題的能力。我建議你盡快切換到“以項(xiàng)目為主線”的學(xué)習(xí)路徑但選項(xiàng)目要有標(biāo)準(zhǔn)。我平時(shí)幫團(tuán)隊(duì)新人選題基本看四點(diǎn)你能說(shuō)清楚它的輸入和輸出是什么。它包含至少一個(gè)你之前沒(méi)寫(xiě)過(guò)的環(huán)節(jié)。它的規(guī)模小到能在一周內(nèi)完成閉環(huán)。它帶有現(xiàn)實(shí)約束比如數(shù)據(jù)量不能太大、響應(yīng)時(shí)間要夠快、多人使用不能出錯(cuò)。拿第四條舉例很多業(yè)余項(xiàng)目問(wèn)題是場(chǎng)景太虛。你做一個(gè)“待辦事項(xiàng)應(yīng)用”從來(lái)沒(méi)有真實(shí)用戶(hù)就不會(huì)遇到性能、并發(fā)、權(quán)限這些工程問(wèn)題。一旦加上“假設(shè)有一百個(gè)人同時(shí)用”的約束你立刻就發(fā)現(xiàn)自己對(duì)很多東西一無(wú)所知了。真實(shí)的約束才是學(xué)習(xí)最好的老師。4.2 模仿—改造—原創(chuàng)三階進(jìn)階曲線我拿一個(gè)完全虛構(gòu)的“會(huì)議紀(jì)要自動(dòng)整理工具”來(lái)演示這條路徑。第一階段是模仿。你可以讓 AI 給你一段“把錄音轉(zhuǎn)文字并按說(shuō)話人分組”的參考代碼然后逐行讀、逐段問(wèn)確保自己明白每一步做了什么。這里的關(guān)鍵是別滿(mǎn)足于“看懂大概”要能合上 AI 自己復(fù)述一遍設(shè)計(jì)思路。第二階段是改造。把需求換掉一個(gè)關(guān)鍵變量比如原來(lái)的工具只支持英文音頻現(xiàn)在要求支持中英文混排你動(dòng)手去改數(shù)據(jù)結(jié)構(gòu)、調(diào)整算法。改造的過(guò)程一定會(huì)碰壁而碰壁之后的排查過(guò)程才是最有效的學(xué)習(xí)。第三階段是原創(chuàng)。給自己定一個(gè)有挑戰(zhàn)但邊界明確的小題目完全不依賴(lài)現(xiàn)成教程。比如“做一個(gè)局域網(wǎng)里輕量的文件同步工具”需求很簡(jiǎn)單但如果動(dòng)手做起來(lái)就會(huì)涉及文件監(jiān)聽(tīng)、沖突解決、增量傳輸、斷點(diǎn)續(xù)傳等一系列沒(méi)有標(biāo)準(zhǔn)答案的問(wèn)題。你不得不自己設(shè)計(jì)方案、權(quán)衡取舍然后借助 AI 驗(yàn)證思路。這個(gè)過(guò)程做完一遍比看十篇教程都有用。我見(jiàn)過(guò)不少學(xué)習(xí)效果好的人不是智商有多高而是很早就走上“模仿—改造—原創(chuàng)”這條串聯(lián)路徑并且每一個(gè)階段都刻意留出“做不出來(lái)”的緩沖時(shí)間。學(xué)習(xí)不是看會(huì)不會(huì)而是看你卡住之后有沒(méi)有一套解題和檢索的方法。5. 行業(yè)評(píng)價(jià)方式變了代碼評(píng)審成了新的能力標(biāo)尺5.1 代碼評(píng)審現(xiàn)場(chǎng)發(fā)生的真實(shí)變化以前評(píng)審代碼大家會(huì)看代碼風(fēng)格、有沒(méi)有注釋、邏輯是否清晰?,F(xiàn)在代碼風(fēng)格有 AI 幫你整理注釋也越來(lái)越像模板評(píng)審現(xiàn)場(chǎng)真正討論的話題已經(jīng)變成“你為什么采納這段 AI 生成代碼它有哪些前提條件出問(wèn)題時(shí)怎么辦”我有一次旁聽(tīng)某團(tuán)隊(duì)的評(píng)審開(kāi)發(fā)者把一段 AI 生成的對(duì)外接口代碼貼出來(lái)第一輪就被人追問(wèn)了一個(gè)問(wèn)題這個(gè)接口在調(diào)用方超時(shí)重試的情況下會(huì)不會(huì)重復(fù)扣費(fèi)最后查到生成代碼里確實(shí)沒(méi)有做冪等處理。這個(gè)場(chǎng)景很有代表性。代碼生成工具把寫(xiě)代碼的體力活消滅了需要人來(lái)承擔(dān)的“解釋責(zé)任”反而浮出水面。如果你想在團(tuán)隊(duì)里被認(rèn)可不再取決于你提交了多少行代碼而是取決于你能不能講清楚一段代碼的設(shè)計(jì)邏輯和邊界風(fēng)險(xiǎn)。這其實(shí)就是一種高級(jí)的學(xué)習(xí)方式因?yàn)槟汶S時(shí)要面對(duì)質(zhì)疑所以你必須對(duì)自己使用的代碼有更深層的理解。平時(shí)練習(xí)時(shí)我建議你也給自己加一個(gè)步驟——每寫(xiě)完一個(gè)功能在代碼旁邊寫(xiě)幾行“設(shè)計(jì)說(shuō)明”和“風(fēng)險(xiǎn)點(diǎn)”這個(gè)習(xí)慣很快會(huì)鍛煉出工程判斷力。5.2 從同行那里觀察到的幾種高杠桿學(xué)習(xí)法我周?chē)泻脦讉€(gè)學(xué)習(xí)效率很高的開(kāi)發(fā)者他們的做法并不神秘反而很樸素值得拿出來(lái)分享。有人堅(jiān)持“每周 AI 實(shí)驗(yàn)日”固定抽出一個(gè)下午用來(lái)做工具實(shí)驗(yàn)試著讓 AI 完成一個(gè)平時(shí)沒(méi)做過(guò)的小任務(wù)然后復(fù)盤(pán)它的不足。這個(gè)習(xí)慣不追求產(chǎn)出只追求探索長(zhǎng)期積累下來(lái)對(duì)工具的邊界理解非常深。有人用“兩遍學(xué)習(xí)法”第一遍完全手工實(shí)現(xiàn)核心邏輯強(qiáng)迫自己理解每一步第二遍用 AI 重做同一功能然后逐段對(duì)比兩版代碼的差異。這個(gè)對(duì)比過(guò)程可以讓你清晰地看到“哪些地方我寫(xiě)得啰嗦”“哪些地方 AI 做得更嚴(yán)謹(jǐn)”學(xué)習(xí)效果比我見(jiàn)過(guò)的任何單方面看教程都要扎實(shí)。還有人推動(dòng)一種內(nèi)部約定凡是 AI 生成的代碼必須附帶“驗(yàn)收備注”說(shuō)明你審查過(guò)哪幾個(gè)風(fēng)險(xiǎn)點(diǎn)、為什么確認(rèn)可合并。這個(gè)約定最初被嫌麻煩但執(zhí)行一段時(shí)間后團(tuán)隊(duì)的線上事故明顯減少了。原因很簡(jiǎn)單它強(qiáng)制每一位成員在提交之前真正過(guò)了一遍腦子。這些做法有一點(diǎn)是共通的它們都要求你把 AI 的使用過(guò)程轉(zhuǎn)化成可匯報(bào)、可復(fù)盤(pán)、可評(píng)審的對(duì)象而不是一個(gè)人偷偷生成一堆代碼然后祈禱它能跑。學(xué)習(xí)方式的改變最終會(huì)反映在協(xié)作方式的改變上。6. 持續(xù)學(xué)習(xí)中我反復(fù)用到的復(fù)盤(pán)習(xí)慣與避坑提醒6.1 一周復(fù)盤(pán)模板記錄 AI 幫不了你的地方學(xué)習(xí)軟件開(kāi)發(fā)和學(xué)習(xí)任何復(fù)雜技能一樣最大的敵人不是學(xué)不會(huì)而是不知道自己哪里沒(méi)學(xué)會(huì)。AI 會(huì)放大這個(gè)問(wèn)題因?yàn)樗赡軒湍惆巡粫?huì)的部分悄悄補(bǔ)全了讓你誤以為自己什么都會(huì)。我給自己定了一個(gè)很輕量的每周復(fù)盤(pán)模板一共三件事這周 AI 幫我完成了什么這周 AI 沒(méi)幫我完成什么這周我憑借自己的判斷發(fā)現(xiàn)了哪幾個(gè) AI 沒(méi)發(fā)現(xiàn)的問(wèn)題第一個(gè)問(wèn)題幫助你看到工具的杠桿第二個(gè)問(wèn)題幫你看清工具的邊界第三個(gè)問(wèn)題其實(shí)在衡量你自己的成長(zhǎng)。如果連續(xù)幾周的答案里第三件事都是空白那說(shuō)明學(xué)習(xí)沒(méi)有真正發(fā)生。復(fù)盤(pán)不需要寫(xiě)長(zhǎng)文幾句話就夠關(guān)鍵是長(zhǎng)期堅(jiān)持。這種習(xí)慣比收藏一堆學(xué)習(xí)資料管用得多。6.2 幾條避坑建議別學(xué)偏了方向最后列幾條我見(jiàn)過(guò)很多次的學(xué)習(xí)彎路寫(xiě)給正在摸索的朋友。別沉迷“提示詞大全”。提示詞技巧是快速入門(mén)的輔助工具但不是核心競(jìng)爭(zhēng)力。同樣一段需求能理解業(yè)務(wù)本質(zhì)的人無(wú)論用什么提示詞都能拿到不錯(cuò)的候選方案不懂業(yè)務(wù)的人背再多模板也問(wèn)不出關(guān)鍵問(wèn)題。別跳過(guò)基礎(chǔ)知識(shí)。數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)協(xié)議、操作系統(tǒng)常識(shí)這些東西可能不會(huì)天天直接用到但在排查性能問(wèn)題和設(shè)計(jì)系統(tǒng)時(shí)它們決定你的天花板。AI 能幫你查到零散的知識(shí)卻幫不了你建立底層模型。別只學(xué)“生成”不學(xué)“評(píng)審”。現(xiàn)在很多課程都在教怎么用 AI 生成代碼但工程里更重要的其實(shí)是評(píng)審和驗(yàn)證的能力。你如果能指出別人代碼里的三個(gè)風(fēng)險(xiǎn)點(diǎn)比你能生成三個(gè)模塊更值錢(qián)。別怕做慢的小項(xiàng)目。我見(jiàn)過(guò)有人半年沒(méi)寫(xiě)完一個(gè)完整功能但一直在研究各種工具技巧最后什么都沒(méi)有落地。恰恰是那些笨拙、有點(diǎn)幼稚的小項(xiàng)目逼你面對(duì)真實(shí)問(wèn)題逼你把零散知識(shí)串成體系。AI 時(shí)代的學(xué)習(xí)節(jié)奏和過(guò)去確實(shí)很不一樣但有一點(diǎn)沒(méi)變軟件開(kāi)發(fā)最終是關(guān)于判斷力的工作。代碼可以生成方案、取舍、審查、兜底這些判斷只能靠你自己練出來(lái)。我個(gè)人這兩年最深的體會(huì)是評(píng)估一個(gè)開(kāi)發(fā)者有沒(méi)有成長(zhǎng)不再看他寫(xiě)了多少行代碼而是看他能不能在一段 AI 生成的代碼里指出三個(gè)風(fēng)險(xiǎn)點(diǎn)。學(xué)習(xí)方式變了值得學(xué)習(xí)的東西也變了但通往可靠工程師的路依然是踏實(shí)動(dòng)手、認(rèn)真復(fù)盤(pán)這兩條腿走出來(lái)的。