上午刚面完一个候选人简历上写了六个项目、十几个技术栈聊到关键环节时我随口问了一句“你当时为什么选这个方案而不是另一个”他愣了一下然后开始背他的项目文档。这不是个例。过去一年我面试的候选人里至少有一半还停留在“我把事做完了”的叙事里而 AI 编程时代面试官想听的其实已经变了。先说结论AI 编程不是在消灭技术面试而是在把面试从“考你会什么”变成“考你用工具能做到什么”。同样是写代码以前拼的是你脑子里存了多少 API、多少算法模板现在拼的是你面对一个模糊问题能不能快速拆解、能不能借 AI 扩大产出、能不能对 AI 的结果做判断。这几件事每一件都指向同一种能力——深度思考。这篇文章我想用最近一年来面试和被面试的经验聊聊 AI 编程时代下面试这件事变成了什么样以及你作为候选人到底该怎样准备才能不被问到露馅。1. AI 编程改变了技术面试的底层规则1.1 面试题从“记忆题”变成了“应用题”传统面试里相当一部分问题本质上是在考记忆。某个 API 的参数怎么传、某个框架的默认行为是什么、某段代码的运行结果是什么。这些东西在 AI 辅助编程普及之前确实能筛掉一批基本功不扎实的人因为不会就是不会。但现在情况完全变了。一个平时用 Cursor 或者 Copilot 写代码的开发者打开面试用的在线编辑器敲两行注释让 AI 把整个函数补出来三十秒不到。你考记忆他就用 AI 绕过记忆。这不是作弊这就是现在真实的工作方式。面试官如果还拿记忆题当主要筛选手段筛出来的不是能力而是背功。所以面试题目本身正在往“应用题”迁移。同样的算法题以前问“这个代码的输出是什么”现在问“这个代码的边界条件是什么如果输入是空数组程序会怎样”。以前问“快排怎么实现”现在问“有一组数据大部分已排序偶尔有几个元素乱序你会选什么排序策略为什么”。这类题没有标准答案AI 也不能直接给你输出它考察的是你有没有真正理解你写过的代码有没有在写代码的时候想过边界、性能和取舍。1.2 AI 成了面试中的“第三方变量”更微妙的变化是面试官现在默认你会用 AI。我带过的团队里新入职的工程师没有一个不用 AI 辅助写代码的。公司层面也没有人禁止用反倒是在招聘 JD 里开始写“熟练使用 AI 编程工具”作为加分项。这就产生了一个很有意思的局面AI 既是你的工具也是面试官的问题来源。面试官知道你手里有 AI他考你的就不再是“你能不能写出这段代码”而是“你给 AI 的提示词是什么级别的”。你说“帮我写一个登录接口”AI 给你一个通用版本这是初级用法。你说“基于 token 的认证流程帮我设计一个拦截器的实现方案要求处理过期刷新和并发请求”AI 给出来的东西已经接近能用的方案了。这两个提示词背后差的不是一个打字速度而是你对系统设计理解得有多深。我在面试里经常问一句话“如果现场允许你打开 AI 工具你会怎么用它来解决这个问题”这个问题几乎能立刻区分出两种候选人。一种人会说“让它直接实现”另一种会先说“我得先确认数据结构和输入输出约束再让它生成核心逻辑然后我 review”。后者才是 AI 编程时代真正需要的人。1.3 面试官的提问层级也在变化我在实际面试中会控制提问的深度大致分三个层次分享给准备面试的朋友参考提问层次典型问法考察目标第一层“你在项目里用过 AI 编程工具吗”是否跟上工具变化第二层“用 AI 做了什么功能提示词怎么写的”是否真的在深度使用还是只会跑跑 demo第三层“AI 给出的代码你怎么验证错了怎么排查”工程判断力、调试能力和质量意识第一层现在基本人人都能过因为几乎没有人说没用过。第二层开始刷人很多人说“我在用 Cursor”“我开了 Copilot”但追问到具体提示词怎么写、遇到 AI 生成错误代码时怎么办就答不上来了。第三层是真正的分水岭它把“用过 AI”和“会用 AI”的人彻底分开。这条路线的背后逻辑很简单AI 编程工具本质上是把“写代码”这个动作的边际成本降到了接近零但“判断这段代码对不对、合不合适、能不能上线”的成本一点没降。面试官想看的恰恰是你在这后半段的能力。2. 简历和项目叙事从“罗列”转向“决策”2.1 为什么“做过什么”不如“怎么决策”值钱AI 生成代码的能力越强“你做过几个项目”这个指标的含金量就越低。原因不复杂以前一个人能完成三个项目说明他编码能力强、效率高。现在你给 AI 描述清楚需求它能在一小时内帮你生成三个项目的基础代码。你把 AI 生成的东西算进自己的项目列表里这条信息对面试官来说没有任何区分度。那什么信息有区分度是你做项目过程中的决策。同样做一个秒杀系统你选 Redis 做库存预减还是用数据库行锁你选了 Redis那缓存和数据库的一致性怎么处理这个决策不是 AI 帮你做的是你基于对业务场景、数据量、一致性要求的理解做出的取舍。AI 可以帮你写 Redis 操作代码但它不会替你决定在什么场景下用哪种方案。我在筛选简历的时候现在最关注的已经不是技术栈列表而是一个项目的“决策密度”——你在里面做了多少个关键判断每个判断背后有没有依据。一个项目如果写满了技术名词但没有任何一个“我为什么选这个”的描述在我这里基本就滑过去了。2.2 简历上应该写什么三个关键转变第一把“负责了什么”改成“决策了什么”。原来写“负责订单模块开发”可以改成“在订单模块中设计了库存扣减方案权衡了 Redis 预减与数据库乐观锁两种路径最终基于峰值 TPS 和一致性的要求选了前者并用消息队列做了最终补偿”。两句话信息量完全不是一个级别。第二把“用了什么技术”改成“解决了什么问题”。“用了 Elasticsearch”没有信息量“基于 ES 重构了商品搜索把平均响应时间从 1.5 秒降到 200 毫秒同时解决了分页深翻的性能问题”才有信息量。AI 时代技术选型是任何人都能靠 AI 查到的但你的场景、你的数据、你的性能瓶颈是查不到的。第三项目里如果有“AI 生成代码”的部分别藏着掖着也不要全写。更聪明的做法是写出人机协作的边界。比如“使用 AI 编程工具生成模块骨架代码人工完成核心算法设计与边界条件处理”这句话比“熟练使用 Cursor”有力得多因为它明确告诉面试官我知道 AI 能做什么也知道哪些事必须我自己来。2.3 项目面试叙事把故事线重新梳理一遍准备面试的时候我建议把简历里的每个项目都套进同一个叙事框架里要素你要准备的具体内容背景项目为什么存在业务目标是什么当时的团队规模和工期压力矛盾最大的技术或业务难点是什么为什么难其他方案为什么不行决策你最终选了哪条路依据是什么做了哪些取舍验证怎么证明你的方案是对的线上数据、压测结果、代码评审反馈都算反思如果重来一次哪里会不同哪里是当时的认知盲区这套框架最值钱的部分是第四项“验证”和第五项“反思”。大部分候选人能说清前三项到“你怎么证明它有效”就开始含糊了。到了“如果重来一次你会改什么”很多人直接说“没想过”。但在 AI 编程时代面试官最怕的是你对自己的项目没有判断力——因为代码生成已经不难了难的就是判断。你能对自己的决策做复盘说明你脑子里有完整的案发模型而不只是执行工具。3. AI 时代面试现场三个核心技能实操3.1 手写代码环节的变化降低“背题”价值提高“讲解”权重很多公司现在的技术面试依然有手写代码环节但形式已经变了。以前是给你一道题你在白板上把代码写出来。现在更常见的是给你一道题让你先讲思路再在白板上写核心部分写完后面试官会追问“这个边界条件为什么这样处理”“如果内存不够怎么办”“你用 AI 写的话提示词会怎么组织”。你不需要把完整代码从头写到尾。很多面试官真正想看的是你能不能快速给出一个可运行的核心骨架然后在这个基础上口述关键细节。这跟 AI 编程的工作方式高度一致——你负责结构和判断AI 负责填充细节但你自己得知道细节大概是什么样子否则连 AI 写对了还是写错了都判断不了。我在自己的面试里会明确告诉候选人“你可以像平时写代码一样组织思路不用背任何 API准确拼写可以放宽.”这句话本身就是信号我想看到的是你的思考过程不是默写能力。3.2 如何展示“与 AI 协作”的能力提示词是关键证据现场面试里要展示 AI 协作能力最直接的方式就是把你的提示词思维说出来。举个例子面试官让你实现一个“带超时控制的缓存”你的表达可以是这样的“我会给 AI 这样的提示词设计一个 Go 语言的缓存结构支持 Set、Get、Delete要求每个 key 可以单独设置过期时间过期的 key 不应占用内存同时读写要并发安全。然后我会检查三个点过期清理的时机是惰性还是主动、锁的粒度是否合理、有没有内存泄漏的风险。”这段话一出来面试官马上就知道你懂设计懂并发还懂怎么用 AI。因为你的提示词已经把关键需求全部定义清楚了而不是丢一个模糊的命题给 AI 瞎写。在部分允许联网的线上面试里你也可以用 AI 工具做实时辅助。这时候更要注意表达把你人工验证 AI 输出的逻辑放在第一位。你可以说“我先让 AI 生成一个基准版本然后我补充单测用例去验证边界行为再根据测试结果让它修改”这比“我直接让它写完了”有说服力得多。3.3 系统设计与项目深挖AI 改变最大的环节系统设计题是对 AI 编程时代影响最大的环节。以前候选人要靠记忆画出完整的架构图现在这部分 AI 也能生成。面试官的考察重点从“你能不能画出来”转向了“你能不能挑出 AI 方案里的毛病”。我最近常用的一个面试题是让候选人设计一个短链接服务。这个题本身不难但有意思的是后半段。候选人讲了常规方案之后我会说“如果我现在让 AI 生成这套设计的实现代码你觉得它最容易在哪个环节出错”这个问题能炸出很多东西。有候选人说“大概率在 ID 生成器的并发安全上出错”有说“可能在缓存与数据库的一致性上翻车”还有的会说“AI 生成的接口没有做限流这个位置需要人工补”。这些回答没有统一标准但能看出一个人对系统的真实理解。AI 生成方案的速度太快了快到你如果没有足够的系统知识储备根本来不及发现错误。所以准备这类题目的时候我建议你把每个常见系统设计题都按“AI 可能会错在哪”的视角过一遍。这本身就是一个非常有效的学习方式比背十套架构图有用得多。3.4 行为面试的 AI 化改造考察“人机边界感”最后说一下行为面试。以前的行为面试主要考察沟通、协作、主动性现在多了一个维度——你怎么定义自己与 AI 的分工边界。我面试的时候会问“你觉得自己工作里哪些部分不应该交给 AI”这是个开放性很强的问题但我听到过最好的回答是这样的“代码生成、格式整理、常见 bug 查找都可以交给 AI但需求分析、方案取舍、线上事故的应急响应我不会交给它因为这几件事需要人对上下文完整负责。”这个回答背后是一种非常成熟的判断力候选人明确知道 AI 的能力边界和自己的责任边界。如果你准备面试这个问题值得提前想清楚。不用刻意迎合面试官的期待但至少要表明你对自己的工作节奏和 AI 的使用边界有清醒认识。4. 常见问题与避坑清单4.1 五个最常见的面试减分行为我总结了过去一年里看到的五类典型问题列出来供大家自查减分行为典型表现面试官的真实感受只会贴项目名词“我负责 XX 系统用了 Spring Cloud、Kafka、Redis”你只是把技能列表念了一遍代码生成后不验证“AI 写的代码我基本直接合进去了”质量意识存疑线上事故谁来负责提示词能力弱“我就让它写一个接口生成不对就再让它写一遍”无法与工具高效协作效率优势发挥不出来对 AI 结果零批判AI 说什么都对方案不分析直接采用没有判断力初级工程师的典型特征手写代码时过度紧张AI 用多了离开工具写不出任何代码基础能力被工具替代而不是被工具放大第一条和第五条是当前面试里最致命的两个。第一条会让你在简历筛选阶段就被淘汰第五条看起来是小事但现场很尴尬——你让 AI 写代码是本职工作结果你自己写不出来了这比“不会”还难解释。4.2 低频但高价值的“AI 编程提示词”问题现在网上到处都在讲“AI 编程提示词”怎么写但真实面试里面试官不会考你“给 AI 写一个漂亮的提示词模板”他只会嵌在具体问题里看你实际操作。比如你面试的是一个前端岗位面试官可能会说“你平时用 AI 做 CSS 布局调整的时候提示词一般包含哪些信息”这就是在考你的抽象能力。你回答“描述好目标结构、限制条件、参考行为要求 AI 输出尽量少的代码”比回答“我不会问直接截图丢给它”要高级得多。更进阶的考察是让 AI 帮你做代码评审。你可以说“我会把改动 diff 丢给 AI让它按我指定的标准做 review比如检查是否有资源泄漏、是否有边界 bug、是否有明显的性能问题”这说明你已经把 AI 用在了编码之外的质量环节这是资深工程师才会做的事。4.3 怎么准备才不踩坑实战训练三件套我自己带过的、面试表现最好的几个候选人有几个共性。他们会用自己手头真实项目来练“AI 协作式面试”而不是去背网上流传的面试题。三件套送给大家第一选一个自己最熟的项目按第 2.3 节的五要素框架写一份文字稿。每个要素写 150 到 200 字念出来控制在两分钟以内。第二把项目里每个“选型”往深挖一层准备“如果不用这个方案会怎样”的对比回答。这个问题非常适合 AI 辅助准备你可以让 AI 列出一百个备选方案然后你自己挑出两三个真正合理的再想清楚为什么排除了其他的。这个过程本身就是在做面试官做的事。第三每周做一次限时“人机协作编码练习”。给自己一个半小时的小需求用 AI 辅助完成但整个过程给自己录音或录像。回看的时候重点听你的提示词够不够清晰你对 AI 产出的检查有没有遗漏你离开 AI 能不能独立讲清楚方案。这三条如果有问题就是面试中的减分项提前发现就能提前改。5. 写在最后面试的新规则已经定型今年我面试的候选人明显分成了两批。一批在使用 AI 编程工具之后能力被放大了另一批在被工具替代——自己都快写不出代码了或者写出来的代码自己都讲不清楚为什么。两者的差距不在工具本身而在你用工具之前脑子里有多少东西。我个人在面试中最喜欢的一类回答不是候选人背得多熟、AI 用得有多花哨而是他能在关键地方停下来跟我说“这块我让 AI 做了但我知道这里它可能出错所以我是这么验证的”。这句话背后是一个人对技术、对工具、对自己作为工程师的定位的完整掌握。如果你正在准备面试我的建议是别再整理“技术题大全”了把你自己的项目拿出来按决策、取舍、验证、复盘这四个词重新过一遍。那些真正值得写的项目不会缺素材缺的只是你把它们讲成“决策故事”的能力。AI 编程并不会让面试变得不重要它只是让“值得被面试的东西”变了。