慣性聚合 高效追蹤和閱讀你感興趣的部落格、新聞、科技資訊
閱讀原文 在慣性聚合中打開

推薦訂閱源

博客园 - 司徒正美
V
V2EX
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
月光博客
月光博客
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI

阮一峰的网络日志

科技爱好者周刊(第 396 期):互联网通信的替代方案 科技爱好者周刊(第 396 期):互联网通信的替代方案 - 阮一峰的网络日志 科技爱好者周刊(第 395 期):软件开发的第三种方式 科技爱好者周刊(第 395 期):软件开发的第三种方式 - 阮一峰的网络日志 科技爱好者周刊(第 393 期):脑腐状态 科技爱好者周刊(第 392 期):axios 投毒与好莱坞式骗术 科技爱好者周刊(第 391 期):AI 的贫富分化 科技爱好者周刊(第 390 期):没有语料,大模型就是智障 套壳中国大模型撑起500亿美元估值?扒一扒 Cursor 的"套壳"疑云 科技爱好者周刊(第 389 期):未来如何招聘程序员 科技爱好者周刊(第 388 期):测试是新的护城河 零安装的"云养虾":ArkClaw 使用指南 科技爱好者周刊(第 387 期):你是领先的 科技爱好者周刊(第 386 期):当外卖员接入 AI 字节全家桶 Seed 2.0 + TRAE 玩转 Skill 科技爱好者周刊(第 385 期):马斯克害怕中国车企吗? 智谱旗舰 GLM-5 实测:对比 Opus 4.6 和 GPT-5.3-Codex 科技爱好者周刊(第 384 期):为什么软件股下跌 科技爱好者周刊(第 383 期):你是第几级 AI 编程 Kimi 的一体化,Manus 的分层 科技爱好者周刊(第 382 期):独立软件的黄昏 AI native Workspace 也许是智能体的下一阶段 科技爱好者周刊(第 381 期):中国 AI 大模型领导者在想什么 科技爱好者周刊(第 380 期):为什么人们拥抱"不对称收益" 科技爱好者周刊(第 379 期):《硅谷钢铁侠》摘录 我如何用 AI 处理历史遗留代码:MiniMax M2.1 升级体验 科技爱好者周刊(第 378 期):预测是新的互联网热点 科技爱好者周刊(第 377 期):14万美元的贫困线 科技爱好者周刊(第 376 期):太空数据中心的争议 科技爱好者周刊(第 375 期):一扇门的 Bug 终于有人做了 Subagent,TRAE 国内版 SOLO 模式来了 科技爱好者周刊(第 374 期):6GHz 的问题 VS Code 使用国产大模型 MiniMax M2 教程 科技爱好者周刊(第 373 期):数据模型是新产品的核心 国产大模型接入 Claude Code 教程:以 Doubao-Seed-Code 为例 科技爱好者周刊(第 372 期):软件界面如何设计 大模型比拼:MiniMax M2 vs GLM 4.6 vs Claude Sonnet 4.5 科技爱好者周刊(第 371 期):一个乐观主义者的专访 科技爱好者周刊(第 370 期):正确的代码高亮 错误处理:异常好于状态码 科技爱好者周刊(第 369 期):Tim 与罗永浩的对谈 科技爱好者周刊(第 368 期):不要这样管理软件团队 一天之内,智谱和 Anthropic 都发了最强编程模型 科技爱好者周刊(第 367 期):Nano Banana 的几个妙用 科技爱好者周刊(第 366 期):旧金山疯狂的 AI 广告 科技爱好者周刊(第 365 期):流量变现正在崩塌 科技爱好者周刊(第 364 期):最难还原的魔方 科技爱好者周刊(第 363 期):最好懂的神经网络解释 科技爱好者周刊(第 362 期):GitHub 工程师谈系统设计 科技爱好者周刊(第 361 期):暗网 Tor 安全吗?
後面試時代與 AI 刷題
阮一峰 · 2024-10-10 · via 阮一峰的网络日志

一、引言

七月的時候,我寫了一篇文章《AI 編程助手測評:GitHub Copilot vs 豆包 MarsCode》,推薦了後者。

豆包 MarsCode 團隊最近就邀請我,試用他們的新功能"代碼練習",它專門用來準備面試和刷題。

試用以後,我有很多想法。

我覺得,AI 會改變程序員的面試,以後是 AI 刷題的後面試時代

二、面試的 LeetCode 刷題

現在的程序員面試,一般都有算法解題。

為了準備面試,大家都會去刷算法題,最常見的就是使用 LeetCode 題庫。

LeetCode 是世界最流行的算法題庫。它源自美國,專門收集各種面試算法題,目前已經超過了3000道,不少是互聯網大廠的真題。

很多同學堅持不懈,每天投入幾個小時,做裡面的題目,訓練自己的算法能力。一般來說,至少要刷200題,面試才較有把握。

(圖片說明:上圖是某個老外的刷題統計面板,他一年365天,每天都在刷題,一共刷了1500題。)

三、AI 顛覆 LeetCode

生成式 AI 出現後,越來越多的人發現,有了 AI,人肉刷題似乎不那麼必要了。

今年(2024)8月份,一位美國網友在 Reddit 論壇發了這樣一個帖子。

他說,自己寫了一個腳本,讓 AI 自動求解 LeetCode 算法題,一天之內做了633道題目,正確率達到了86%,成本只要9美元。

這個帖子引起了巨大反響。

既然 AI 可以提示正確答案,為什麼不參考 AI 來準備面試呢? 何必堅持苦思冥想、徒手 LeetCode 刷題。

四、AI 助手的解題能力

我們完全可以跟著 AI 刷題,做到事半功倍。

我選一道 LeetCode 題目,展示一下這是多麼簡單的事情。


你是一個 JavaScript 程序員,請補充完成下面的函數。

要求是輸入一個代表羅馬數字的字符串(比如"IX"),該函數會返回對應的阿拉伯數字(比如9)。

 /**
  * @param {string} s 
  * @return {number} 
  */ 

var romanToInt = function(s) {


};

選擇上面這道題,主要是因為它很短,便於展示。而且,這道題的難度不大,但需要考慮多種情況,很適合用在初級面試。

我選擇的 AI 工具,就是 VS Code 編輯器的豆包 MarsCode 插件,它是免費的。

在 VS Code 代碼編輯器裡,從左邊欄打開該插件(如果未安裝,可以在插件市場搜索"MarsCode")。然後,在對話框輸入題目。

稍等片刻,AI 就會給出答案以及代碼解釋。

哪個地方看不懂,就向 AI 詢問。

這節省多少時間啊,大大加快了刷題速度。

五、後面試時代

可以看到,AI 能夠快速解決面試算法問題,那麼,基於算法解題的面試模式,是不是應該有所改變了?

現在的互聯網大廠,都允許工作中使用 AI 模型,面試再要求"徒手解題",已經有點過時了。

AI 將越來越普及,如果未來的面試不使用 AI,就好像不使用 IDE 編輯器一樣不合理,應該允許程序員在面試中使用日常工具。

我的想法是,面試的考察重點可能會改變,從讓面試者解題,變成讓面試者解釋和審查 AI 生成的代碼。

面試時,給你一段 AI 生成的解題代碼,讓你解釋這段代碼,並且修正裡面的錯誤和沒有考慮到的地方。

這樣做有很多好處:(1)更貼近程序員的實際工作模式;(2)能看出程序員的代碼閱讀和理解能力;(3)難以事前準備或作弊;(4)更能反映一個人的協作能力;(5)也適用於偏向閱讀代碼而不是編寫代碼的崗位,比如項目經理、架構師等等。

這可以稱為"基於 AI 的後面試時代",即面試從考察編碼解題能力,演變到考察代碼的審查理解能力。

六、AI 陪練功能

現在已經有很多工具,為面試提供 AI 輔助訓練。

豆包 MarsCode 的"代碼練習"就是一個最新的嘗試。我用了以後,覺得對準備面試、有效刷題真的有幫助,可以訓練自己與 AI 協同編程。

它是一個基於雲 IDE 的專門頁面,內置了上百道字節跳動的面試真題

所有相關操作都集中在這個頁面上,只要有瀏覽器就可以使用,刷題全過程不必切換頁面,大大方便了使用:選題、解題、調試、AI 對話......

而且,它是免費的,大家現在就可以試試看:進入豆包 MarsCode 官網,點擊頂部菜單的"代碼練習",就可以進入。

這個頁面是雲 IDE,不需要任何安裝,打開後直接在瀏覽器使用。

默認狀態下,頁面分成四欄。左側是面試真題的目錄,目前有100道,以後還會不斷增加。選中一道題目,點擊後可以看到具體內容。

頁面右側是代碼框和 AI 框。

在代碼框,需要首先選擇你的編程語言,共有8種可選(Python、JavaScript、Go、C++、C、Java、Rust、TypeScript),上圖是 JavaScript。然後,輸入解題代碼,再點擊頂部的運行按鈕,就可以看到運行結果。

在 AI 框,則是三個預設選項,點擊後就可以讓 AI 提示思路、代碼、檢查代碼。下方還有對話框,用來跟 AI 對話。

一般來說,拿到題目後,(1)先點擊"需要一點思路提示",讓 AI 幫助你理解題目。(2)再點擊"給我一些代碼提示吧",讓 AI 給出初步代碼。(3)你修改和完善代碼,再點擊"幫我檢查一下代碼",看看會不會報錯。

此外,這個頁面還集成了 IDE 功能,比如語法檢查和代碼調試。隨著代碼鍵入,會自動給出用法提示(下圖)。

這樣的"代碼練習",堪稱面試刷題的利器,我覺得,面試指導書籍和輔導班可能都不需要了,以後都會被淘汰。

七、總結

AI 改變軟件行業,也必然改變程序員的面試求職。

AI 刷題是未來的趨勢,善用者將更容易通過面試,拿到心儀的 offer。

但是,需要提醒的是,AI 只是工具,生成的代碼不一定正確和安全,而且項目之中也不應該有黑箱。

正確的做法是,使用 AI 但不依賴,思路比答案更重要,只有理解了每一行代碼,才能接受它的結果。我們使用 AI 的首要目的,永遠是提升自己的能力,而不是讓 AI 替代我們,代碼的最後責任人的不是 AI,而是你。

(完)