🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付

等 AI 程式設計普及後,我該何去何從?

大家好,我是雙越。前百度 滴滴 資深前端工程師,慕課網金牌講師,PMP。我的代表作有:

  • wangEditor 開源 web 富文本編輯器,GitHub 18k star,npm 周下載量 20k
  • 划水AI Node 全棧 AIGC 知識庫,包括 AI 寫作、多人協同編輯。複雜業務,真實上線。
  • 前端面試派 系統專業的面試導航,刷題,寫簡歷,看面試技巧,內推工作。開源免費。

我正在開發一個 AI Agent 智能體項目【智語】一個智能面試官,可以優化簡歷、模擬面試、解答題目等。有興趣的同學可以圍觀、學習。

開始

前幾天有個同學和我聊天,說自從使用 AI 程式設計以後,感覺 AI 寫的程式碼比自己寫的都好,自己會的這點東西還不如 AI 會的多,感覺很焦慮,都不知道接下來該往哪塊學習了,沒有了方向。

image.png

他讓我幫忙分析一下這個話題。我這幾天沒事兒就在想這個事情,想的東西很多,亂七八糟的,正好寫篇文章梳理一下思路。

明確範圍,減少爭論

本文聊的話題是一個大眾話題,是針對絕大部分開發人員(尤其前端開發人員)的一個話題,大家都是普通開發者,每天做著普通的工作,都会被 AI 程式設計所影響。

如果你列舉某個小眾領域,很難,AI 搞不定。或者一個項目某一兩個功能,很難, AI 搞不定。這種情況肯定存在,而且會持續存在,但它是小眾的,不適用於大部分人。如果你正好在這種小眾領域中,那恭喜你 AI 程式設計暫時對你影響不大。但你可千萬別失業,因為失業了再找工作,小眾領域的職位可沒那麼多。

最近 2 年,我每週都有幾次 1v1 簡歷優化和模擬面試,聊過不知道多少人,能真正做過有難度項目的屈指可數,大部分都是增刪改查。看網絡上評論區這麼熱鬧,人均架構師,動不動就並發量、大數據,其實實際工作啥樣大家都知道。這就像知乎、脈脈人均年薪百萬一樣,實際大部分人的工資 1-2w 一個月,我接觸的這些人,能超過 2w 的就是前幾名了。

以 Cursor 為代表的 AI 程式設計工具,已經非常普及了,關鍵它們還都收費!!!所有大眾的、收費的產品,只要不是強制的,它就一定是能解決實際問題,帶來實際價值的。

免費的垃圾有的是,例如加 xxx 免費領取 20G 學習資料,下載了也是空占硬碟。但收費的、而且每個月持續收費的,一定不會是垃圾。

所以不要用一些小眾的案例來否定 AI 程式設計的價值和趨勢。

還有,本文討論的是一個未來趨勢,不是現在、今天或今年。不過這個未來也不會太遙遠,我估計 2-3 年 AI 程式設計工具就會全面普及,即新手入門寫第一行 Hello world 就都用 AI 寫。

面試的變化

10 多年前,國內剛開始有前端這個崗位,還是 jQuery 的時代。那時候面試經常考 DOM API,例如 DOM 節點 attr 和 Prop 的區別、如何防止 XSS 攻擊等。還經常考瀏覽器兼容性問題,因為那時候 IE 瀏覽器還大量存在。

再後來,Vue React 普及以後,就不再問 DOM API 的問題了。DOM API 依然存在,但早已被 Vue React 等框架給封裝的密不透風,你日常開發幾乎用不到 DOM API。

前幾年面試經常考八股文,這是因為當年招聘市場需要大量的前端開發人員,只要能幹活就可以來,要求不那麼高。

大廠喜歡考算法、考源碼,這是因為大廠開的工資高,要統一、流程性的去篩選最優秀的程式師。算法和源碼就是最低成本的篩選方式。基本上一道算法題,就可以屏蔽掉 99% 的培訓班出廠人員。

現在考的最多的是場景題,就是給你一個需求,讓你去設計甚至直接寫程式。因為現在市場需求少,預算低,企業更加務實,儘量低成本招聘能幹活的人。

我大膽猜測,AI 程式設計普及以後,面試的過程和重點會逐步發生變化,會更多考察場景題,更注重思考能力、設計能力和 AI 應用的技巧。例如一場面試可能就一個題:使用 AI 程式設計實現一個 xxx app,具體有 xxx 需求。等 AI 寫完以後讓你解釋核心程式碼和流程,講解設計和實現的思路。然後再給你加一些需求,讓你繼續用 AI 修改。在這個設計、編碼、解釋、修改的整個過程中,去觀察這個候選人的工作能力。

而且,不會再區分前後端,有 AI 的加持可以打破技術棧的界限。甚至可以直接一鍵即成 Supabase 資料庫、一鍵發布到 Vercel 等這種服務。真正的全棧、全能。

如果我是一个老板,我要招聘程式師,我覺得用這種方式非常有效。尤其對於中小企業,以及大廠的小團隊。

AI 程式設計擅長做什麼

AI 程式設計能做的事情非常多,而且做的又快又好,所以才會讓這麼多人付費。

第一,對於描述明確的需求,常規的開發任務,它都能很好的完成任務,程式碼質量相當於中級程式師,有 AI 輔助我們都不用在記什麼 API 和語法了。

第二,它寫的非常快,幾百行程式碼、創建多個檔案,都可以在 1 分鐘之內寫完,這是人工達不到的速度。

第三,在你的規範和要求下,它可以很好的考慮到程式碼的安全性、穩定性和兼容性,而且時刻堅決執行,人工很難時時刻刻想到這麼全面。

第四,AI 非常擅長解讀陌生程式碼,解釋陌生的 API,當你拿到一個新的程式庫,配合 AI 程式設計可以快速掌握。如果純人工去解讀、去查詢,即便是有經驗的老程式師,也得耗費大量精力去查詢、梳理、總結。

第五,當你要開發新功能時,AI 可以很好的幫助你梳理設計步驟和思路,Cursor 就有一個 plan mode,它先幫你制定計畫,你覺得不合適可以修改它的計畫,然後再按照計畫去開發。

(暫時想到這麼多,如果其他歡迎評論區來補充、分享)

我說這些好處的真正目的是:我們要避其鋒芒,不要和 AI 的長處硬剛,在這方面碳基生物剛不過矽基物種

現在大家手機裡都有計算器,你乘法除法計算多快,能有計算器快嗎?你夜觀天象經驗在足,不如看一眼天氣預報。

AI 擅長做什麼,我們就不要去和它爭,也不要覺得 AI 會的你不會,感覺自己一無是處、能力退化了。AI 再厲害也需要人工來駕駛它。

我們要做 AI 的主人,去學習高效使用它,我們要凌駕於它之上,去做它不擅長的事情。

AI 程式設計不擅長的

當前 AI 最大的毛病就是“一本正經的胡說八道”,它搞錯了它也會按照這個方向來,你不糾正,它就會一直找著這個方向走下去。在 AI 的世界裡,沒有南牆。

因為 LLM 背後的原理就是:預測下一個詞。你不管它,它就會一直預測下去,反正它有海量的數據。

需求明確

寫到這裡我想到一個段子。會去程式員業餘去做外包,甲方老闆說:你就給我做一個淘寶就行,就照著淘寶做。

你是程式員,老闆讓你做個淘寶,需求就這一句話,你知道做啥嗎?根本沒法做。淘寶太龐大了,你想實現哪些功能,要寫出明確的需求,最好還有介面和原型圖。這樣才能繼續設計、開發。

所以有經驗的程式員會再去和老闆溝通,或者派一個需求專員和老闆溝通,把需求確定下來。

人,在遇到不懂的地方時,會去諮詢、查詢、溝通,如果過程不順利會被卡住,執行不下去。此時你如果繼續強制壓迫他,他就會產生逆反心理、擺爛、躺平、辭職。

但是 AI 不會這樣。默認情況下,AI 會一本正經的胡說八道,它就沒有不懂的時候。它搞錯了它也會按照這個方向來。你自己不手握方向盤時會開溝裡,越陷越深。

所以,我們給 AI 寫需求一定要清晰明瞭,說專業一點就是 prompt engineering 提示詞工程,要能去通過正確的 prompt 引導 AI 給出正確的答案。

這個說來簡單,其實對於絕大部分程式員都是一個挑戰,程式員真的不擅長溝通。

例如,有太多同學給我提問題,無論是現在 vx 聊天提問,還是之前在 GitHub issue 提問,就寫一句話“我程式碼報錯了...” 其他啥信息都沒有。你說的我都看不懂,AI 能看懂才怪呢。

再例如,我 1v1 模擬面試,讓他介紹一下自己的項目,太多人磕磕巴巴想一句說一句,最後也說不到重點上。自己做過的項目都說不清楚,那讓你設計一個新項目,你就能描述清楚?

技術棧管理

AI 啥都會,但你的項目不能啥都用。你需要根據自己的情況選擇合適的技術棧,以及選擇合適的工具。

要開發一個前端項目,你需要選擇 Vue React 等框架,選擇 Vite webpack 等打包工具,選擇一個合適的 UI 組件庫。如果開發一些特定的功能,如編輯器、表格、地圖等,你也需要自己確定使用哪些第三方插件。

你可以讓 AI 幫你選擇,幫你對比第三方插件的優缺點,但你依然需要具備良好的判斷能力。因為 AI 會出錯,而且會沿著錯誤繼續走。

所以,你需要掌握前端、全棧等你的核心技術棧,知道這個技術棧相關的知識體系。在 AI 加持下你不用了解太細節,但你得有廣度和視野。你要清楚用什麼技術能實現什麼功能,你要有自己的方向,你要去“駕駛”AI按照這個技術方案走。否則,完全讓 AI 自由發揮是很容易亂套的。

架構拆分

如果你要設計開發一個大型項目,直接讓 AI 幫你開始做,這幾乎是不可能的。大型項目你沒法一下子描述清楚需求,直接讓 AI 開始的話,AI 很容易自由發揮,最終失控。

大型項目,在明確需求的基礎上,首先應該做架構拆分,模組拆分。把一個系統拆分為不同的模組,一個模組拆分為不同的頁面或者組件,每個部分之間都規定好介面,解藕。這個過程可以讓 AI 幫助你設計和分析,但決定權還是在你。

完成設計以後,對於每個模組或功能的內部,再讓 AI 去開發。即便 AI 可能會把程式碼寫的很亂,但沒關係,只要模組之間還遵守設計時的介面約定,模組內部亂了沒關係。

即 AI 可以更多的幫你做具體的功能實現,這種需求轉化為架構的工作,AI 只能輔助,判斷權還是在你。對於大型項目,你無法從 0 就交給 AI 去做。

技術越進步,對人的要求就越“高級”

沒錯技術更新,對人的要求就會越高級。這個高級的意思是:更高一個層級,並不一定要求越高。

馬車時代司機會趕車就行,汽車時代司機就得考駕照、懂交通規則、駕駛汽車、甚至要會維修汽車。

卓別林時代工人拿著大鉗子,現代工廠裡,工人都是操作機械手臂。

電腦剛出來的時候,打字員就是高級技工。

程式設計剛出現的時候,CPU 指令、寄存器、內存都需要人工編碼來管理。

互聯網剛發展時,會做頁面,會增刪改查就行,DOM 操作得熟練。

Vue React 剛出來時,會用 Vue 寫網頁就行,DOM 操作要求不高了。

AI 程式設計普及以後,又會有什麼變化呢? 歡迎留言評論。


原文出處:https://juejin.cn/post/7570187256105664518


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝14   💬4   ❤️5
468
🥈
我愛JS
📝1   💬4   ❤️2
49
🥉
酷豪
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
🔧 阿川の電商水電行
Shopify 顧問、維護與客製化
💡
小任務 / 單次支援方案
單次處理 Shopify 修正/微調
⭐️
維護方案
每月 Shopify 技術支援 + 小修改 + 諮詢
🚀
專案建置
Shopify 功能導入、培訓 + 分階段交付