AI 辅助编程轮
允许用 AI 的编程面试
一些面试流程会给你一个小代码库,并允许使用 AI 助手。代码仍然必须正确:这一轮考的是读代码、驾驭工具和证明结果。
开始第一个项目这种轮次一般怎么进行
- 拿到一个只有几个文件的代码库和一段简短说明:修一个 bug、加一个功能、把慢的地方提速,或者给遗留代码补测试。
- 允许使用 AI 助手,通常就在编辑器里。问它什么、采纳什么,由你决定。
- 你自己运行测试、补上缺的测试,并边做边解释改动。
- 不同公司和团队的形式不一样:时长、允许的工具、结束后是否跑隐藏测试都可能不同,以招聘方的说明为准。
面试官通常看什么
- 理解需求
- 先读懂现有代码和需求再让 AI 生成,不清楚的地方主动问。
- 验证 AI 产出
- 把建议当草稿:逐行读,找出错误假设,不合适的就不用。
- 写测试
- 用测试把行为钉住,包括说明里只是暗示的边界情况,并且经常运行。
- 讲清取舍
- 说明为什么选这个方案、代价是什么、时间更多时会怎么做。
练习项目
小型 Python 项目,带公开测试和只显示通过数量的隐藏测试。编辑器旁的 AI 结对可以写代码,每天 15 次。
- 修 bug库存服务:订单超卖修两个线上 bug:库存被超额预留,重复取消订单后可用库存变多。先读代码和工单,再补测试。约 30 分钟
- 加功能限流模块:支持突发流量在已有的固定窗口限流器旁边实现令牌桶,并让付费套餐改用它。重点是把需求读清楚,用可控时钟验证边界。约 40 分钟
- 性能优化日志汇总:提速夜间任务汇总访问日志要跑一个多小时。找出瓶颈,在输出逐字节不变的前提下把它降到线性级别。约 35 分钟
- 补测试与重构遗留运费模块:先补测试再改一个没人敢动的运费函数要加「偏远地区」。先用测试把现有行为钉住,再重构、再加需求,已有结果一分都不能变。约 45 分钟
- 重构注册表单校验:只重构,不改行为一个 170 行的校验函数,测试全绿但没人看得懂。拆成小函数、去掉重复代码,每个错误码和顺序都不能变。约 40 分钟
- 重构日志解析器:三种格式,一份复制粘贴解析三代服务日志的函数里,时间校验、级别归一化被复制了三遍。把它拆干净,解析结果和汇总一个字段都不能变。约 45 分钟
- 重构库存报表:一个字符都不能动夜间库存报表是一个 130 行的函数,金额格式和名称截断各复制了好几份。重构到能读,输出文本逐字节不变。约 45 分钟
面经里提到过的公司
按面经正文里的关键词匹配,例如 “AI-assisted”“Copilot”“可以用 AI”。命中只代表有面经提到,不代表该公司一定采用这种形式,请点开原文核实。
- Amazon6 篇面经
- Meta6 篇面经
- Meta Machine Learning Engineer interview with a conversational-assistant design and declined offer
- Meta Software Engineer Interview Experience — Two AI Coding Rounds, a LeetCode System Design, and an AI-Enabled Design Round With No AI
- Meta Senior Software Engineer Interview Experience — Passed a Four-Round AI-Enabled Onsite, Team Match Still in Limbo
- Rippling5 篇面经
- Amazon India (ADCI)3 篇面经
- Instacart3 篇面经
- Instacart Full-Stack Engineer Interview Experience — A 90-Minute AI-Assisted OA and Next-Day Rejection
- Instacart Software Engineer Interview Experience — A Full-Stack CodeSignal Challenge With No Tests to Check My Work
- Instacart Senior Backend Engineer Interview Experience — A 5-Part OA That Was Basically Vibe-Coding With Claude
- Shopify3 篇面经
- Shopify Software Engineer interview with pair programming, AI use, and a life-story round
- Shopify Machine Learning Engineer Interview Experience — Four-Round Onsite, Rejected for Lacking Depth in ML System Design
- Shopify Senior+ Software Engineer Interview Experience — Building a Tiny URL Shortener with AI-Assisted Coding
- Amazon Advertising2 篇面经
- Amazon DSP2 篇面经
- Apple2 篇面经
- Microsoft2 篇面经
- Stripe2 篇面经
- Abnormal AI1 篇面经
- Abnormal Security1 篇面经
- Amazon (Project Kuiper)1 篇面经
- Applied Intuition1 篇面经
- Atlassian1 篇面经
- Bilt Rewards1 篇面经
- Capital One1 篇面经
- Citadel Securities1 篇面经
- Cloudflare1 篇面经
- Coinbase1 篇面经
- Color Health1 篇面经
- Composio1 篇面经
- Cresta1 篇面经
- Datadog1 篇面经
- Discord1 篇面经
- Distyl1 篇面经
- DoorDash1 篇面经
- Fireworks1 篇面经
- Further AI1 篇面经
- HackerRank1 篇面经
- Headway1 篇面经
- Hex1 篇面经
- Hotstar1 篇面经
- Profound1 篇面经
- Ramp1 篇面经
- Remitly1 篇面经
- Scale AI1 篇面经
- Snowflake1 篇面经
- Speechify1 篇面经
- Super Micro Computer1 篇面经
- Supermicro1 篇面经
- Wayfair1 篇面经
- ZipHQ1 篇面经
练习建议
- 打开 AI 结对之前,先读 README 和测试,写下「做完」的标准。
- 让 AI 做小而具体的事(「这个测试为什么失败」「给重复订单号写个测试」),而不是直接要整份答案。
- 每采纳一处改动就跑一次测试;相信一个修复之前先补一个测试。
- AI 说错时讲出错在哪里,面试官最想听的就是这部分。
- 做完点 AI 结对下方的「结束并评估」,像面试官一样给你用 AI 的方式打分。
- 最后不用 AI、限时再做一遍。