AI杂谈:面试AI Coding,我只看你是不是驾驶员

📅 2026/8/12 17:41:44
AI杂谈:面试AI Coding,我只看你是不是驾驶员
这两年面试AI相关的问题越来越多。当然了这里说的不是AI算法岗的面试而是大模型应用开发或者传统后端开发中的面试。有没有同学会想面试官到底想考你什么我发现一个很有意思的现象很多同学聊AI的时候像是在聊新闻联播。DeepSeek、Agent、上下文窗口、推理模型、多模态、MCP一个词接一个词往外蹦听起来都知道。但一问到自己平时怎么用AI写代码怎么判断AI写得对不对怎么处理上下文太长、响应太慢、代码跑偏这些问题马上就开始虚了。我发现公司同事在面试的时候基本不太喜欢问“你知道某某模型吗”也不太喜欢问“你了解Agent吗”。这些问题太容易背也太容易把面试变成概念互殴。其实面试官更关心的是一件事是你到底是在用AI还是在被AI用。这场面试到底在看什么如果我是面试官我不会一上来就把AI问题问成八股文。这类面试更像一条线先用一个轻问题开场看候选人有没有关注和体感然后进入主线让他讲自己真实怎么用AI Coding最后根据他的回答选几条支线往下挖。整个过程大概20分钟就够了阶段时间面试官想看什么引子开场2-3分钟对AI有没有关注能不能把事件转成行动AI Coding主线8分钟拿到需求到代码提交中间怎么用AI支线一答不对怎么办4分钟能不能归因而不是只会换模型支线二AI替代边界4分钟是否知道哪些事必须人来拍板支线三响应速度4分钟能不能从工程角度拆慢在哪里这里最核心的判断标准其实就一句话回答里是否自然出现“我先想让AI跑我检查/判断”的节奏。比如同样是觉得模型慢。观众的回答是模型慢了换个快的。驾驶员的回答是慢在读上下文还是慢在推理还是慢在输出如果是prefill慢就精简上下文如果是推理慢就关推理或者限制思考如果是decode慢就限制输出如果任务本来简单就换小模型。这就是差距。一个人懂不懂AI不是看他能不能说出多少模型名字而是看他能不能把AI纳入自己的工程流程。引子不是闲聊是看认知能不能落地面试一开始我一般会问一个很轻的问题最近一两年AI领域有没有什么事让你觉得“原来还能这样”或者让你对AI的理解发生了变化这个问题看起来是在问关注度实际上不是考你记没记住哪个模型哪天发布也不是考你能不能说出一堆时间线。它真正想看的是你能不能把一个行业事件转成自己的行动。所以这个引子有两个原则。第一不要直接问“你知道DeepSeek吗”“你知道Agent吗”。这样很容易变成知识考试候选人也很容易开始背稿。第二关注度只是加分项不是门槛。一个候选人主线和支线答得很好但开场说不出什么AI大新闻不应该直接淘汰反过来一个人开场讲得头头是道但后面讲不出真实使用例子这才是问题。说白了认知能不能转化为行动执行力优先于好奇心。引子后面可以怎么追方向适合追问什么DeepSeekDeepSeek出来后你用AI的方式有变化吗换模型了吗为什么换或者不换Agent用过自动搜索、写文件、跑代码这类Agent功能吗跟普通对话有什么区别上下文和记忆跟AI聊久了它会不会忘事给太多信息反而答得更差吗你怎么处理基模原理大模型为什么会一本正经地胡说八道它的聪明和人的聪明有什么区别比如候选人说DeepSeek很火这本身没什么信息量。如果只停留在“国产模型很强”“价格很便宜”那就是观众视角。更好的回答应该是DeepSeek出来之后我开始把不同任务拆开用模型。比如简单解释代码、生成单测这种任务不一定要用最贵的模型涉及公司内部代码或者敏感数据的场景我会优先考虑本地部署或者私有化模型。它对我的影响不是“我知道了一个新闻”而是让我意识到模型选择可以变成工程策略。这就不一样了。面试官听到这里会知道你不是在背热点而是在把热点落到开发流程、成本、数据安全、模型路由这些东西上。再比如有人聊Agent。如果只是说“Agent就是多个AI一起干活”这个回答基本没什么营养。好一点的回答是普通对话是我问一句它答一句Agent更像是我给一个目标它自己拆步骤、读文件、写代码、跑测试。但Agent也会跑偏所以我不会一上来就让它全自动改一大坨代码而是会先限制范围比如只读哪些文件、只改哪个模块、改完必须给出验证方式。这就是我想听到的东西有使用场景有踩坑经验有边界意识。如果候选人聊上下文也可以继续追为什么上下文不能越大越好KV Cache压缩、可生长记忆这些东西出来之后是不是以后就不用管上下文管理了好的回答应该能落到突破的意义是降低成本、扩大能力边界但“该记什么、该忘什么”的判断并不会消失。就像机器内存从4G变成64G之后操作系统也不可能从此不要内存管理。至于大模型为什么会胡说八道不要只回答“训练数据有截止日期”。这句话对但太浅。更接近本质的回答是大模型是在生成最像答案的文本不是在查数据库。它的优化目标是“像”不天然是“对”。所以当数据覆盖不够、上下文不完整、问题边界模糊时它就会编一个看起来合理的东西。这就是面试官喜欢听的回答。不是概念而是机制不是机制而是“所以我怎么用”。主菜永远是AI Coding全流程真正的核心问题其实很简单拿到需求到代码提交中间你怎么用AI讲一个最近真实发生的例子。这个问题非常好用因为它几乎没法靠背来糊弄。接下来可以顺着问层级问题1-2年拿到需求到代码提交中间怎么用AI讲个最近真实例子追问AI到底帮你省了哪一步全级AI生成的代码你怎么判断它是对的被坑过吗3-5年哪一步AI帮不了你或者帮倒忙后来怎么处理的3-5年token消耗大吗你怎么控制给AI的上下文给多给少分别会怎样5年以上上下文装不下的复杂任务怎么让AI跟你跑完全程5年以上加分团队要做到偏AI Coding需要建设哪些能力哪些环节人不可替代如果候选人真的用过AI Coding他的回答里一定会自然出现一个节奏我先判断需求和改动范围我让AI帮我读代码、找入口、给方案我选择其中一个方案让AI生成或修改代码我检查它引用的类和方法是否真实存在我跑测试必要时补边界条件也就是我先想让AI跑我来检查。这个顺序非常关键。很多差答案是反过来的我先问AIAI说怎么改我照着改跑一下没报错就提交。这类回答最大的问题不是用了AI而是把方向盘交出去了。比如一个比较好的回答可以这么讲前段时间我要改一个订单状态流转逻辑我没有直接让AI写代码而是先让它帮我梳理已有的状态枚举、状态机入口、单测覆盖情况。然后我把目标状态变化和不能影响的历史逻辑列出来让它只改Service里的某个方法。生成后我重点检查了三个地方有没有编不存在的方法、异常分支有没有漏、原来的幂等逻辑有没有被破坏。最后我补了两个单测一个测正常流转一个测重复请求。这个回答不一定多高级但很扎实。面试官能从里面看到三件事第一你知道AI擅长帮你加速读代码、找模式、补样板代码。第二你知道AI不懂你们公司的历史包袱和业务取舍。第三你知道验证不是“运行一下没报错”而是要检查逻辑边界和回归风险。如果回答到团队层面可以继续往下拔高。偏AI Coding的团队能力建设至少有四层层级要建设什么需求层会议、语音、零散描述能不能沉淀成PRD知识层代码索引、业务知识库、规范文档能不能让AI低成本拿到方案层PRD加代码索引能不能让AI先穷举方案人再做取舍编码层方案变代码之后测试、CR、上线决策怎么兜底注意越往后越不是“让AI多写代码”这么简单。真正不可替代的部分是需求边界、方案取舍、Code Review兜底、上线决策与定责。所以5年以上候选人如果只讲“我们要统一买个AI工具”那不够。工具只是入口流程和知识才是地基。答不对时看的是归因能力我经常会继续追问有没有AI明明该答对但就是答不对的情况讲个具体例子当时卡在哪这个问题考的不是你有没有被坑过所有人都会被坑。真正考的是归因能力。对于3-5年候选人我会继续问这是模型能力不够还是你给的信息不够你怎么判断的对于5年以上候选人我会再问团队怎么系统性减少这类答不对prompt规范、知识库、RAG怎么选怎么衡量答对了差一点的回答通常是它写错了我就多问几遍。或者我换了一个更强的模型。这当然不是完全没用但这不是工程思维这更像是网不好就重启路由器。一个会用AI的人应该能把“AI答不对”拆开看。问题类型好的处理方式缺领域知识补DSL语法、业务规则、已有样例上下文溢出精简到入口类、目标方法、接口定义指令模糊明确边界尤其说清楚不要做什么幻觉API先在IDE里搜类名、方法名是否真实存在内部规范缺失把线程池、异常码、日志格式等规范写进prompt或知识库比如公司内部有一套自定义DSL模型当然不知道。这个时候你换再贵的模型也不如直接给它一段语法说明和一个项目里的真实样例。再比如它引用了一个看起来很像真的类名你不要跟它来回争论“你确定吗”。模型说有不代表仓库里真有直接在项目里搜。所以面试里比较好的回答不是“我换了GPT-5.5就好了”而是我先判断它错在什么地方。如果是不了解内部框架我会贴一个已有实现让它模仿如果是上下文太长导致注意力分散我会重新开一个对话只带当前方法和依赖签名如果它编了不存在的API我会先在项目里搜索确认再决定能不能用。这类回答会让面试官觉得你不是在祈祷AI变聪明你是在控制输入、验证输出、缩小风险。上下文不是越多越好很多候选人一聊上下文就会说现在模型上下文越来越大以后应该不用管了。这个回答听起来有道理但从工程角度看其实有点危险。上下文窗口变大确实能解决一部分问题但它不是免费的。你给AI塞得越多它读得越慢成本越高而且注意力也会更分散。就像你让一个人看10个监控屏理论上信息更多了但他未必比只看3个关键屏幕判断得更准。所以AI Coding里真正重要的不是“给多”而是“给对”。比如让AI改一个接口超时问题你不需要把整个项目都塞进去。更合理的是给它当前报错或现象请求入口调用链上的关键方法超时配置一个项目里已有的相似写法如果任务很长也不要指望一个对话从需求聊到上线。更好的方式是分阶段第一轮只让AI读需求和代码输出改动方案。第二轮带着你确认过的方案让AI改一个明确范围。第三轮让AI帮你补测试和检查边界。第四轮让AI总结这次改动作为下一轮上下文。这样做的本质是把AI当成一个记忆有限但执行很快的同事。每次交接时你不能把会议录音全文发给他而是要告诉他当前结论是什么下一步做什么哪些地方不能碰。这里有个面试官很喜欢听到的词刚好够。只贴相关方法不贴整包代码只贴接口签名不贴无关实现用一个已有样例代替一大段抽象描述对话长了先让AI总结当前结论再开新对话。能做到这一点说明候选人不是在堆料而是在做上下文工程。AI替代不了什么别回答得太玄学很多人回答“AI替代不了什么”时喜欢说创造力、情感、共情。不是说这些不对而是放在研发面试里太虚。我一般会这么问层级问题1-2年AI替代不了什么你工作中有什么事是AI肯定干不了的3-5年如果给AI足够的数据和规则它是不是就能做了边界到底在哪5年以上怎么跟老板解释“用了AI但还是要这么多人”AI会怎么改变团队分工我更希望听到的是这些AI替代不了责任归属。线上规则该不该上误杀和漏放怎么取舍出了问题谁负责这些不能交给AI拍板。AI替代不了私有知识。很多业务规则不在文档里而在老员工脑子里、历史事故里、某个没人敢删的if判断里。模型不知道这些东西除非你把它们整理出来。AI替代不了问题定义。很多时候难的不是“怎么实现”而是“这是不是一个真需求”“这个需求有没有更便宜的解法”“现在做会不会把系统带偏”。AI替代不了价值取舍。比如风控系统里到底是宁愿误杀一点还是宁愿漏放一点这不是算法题这是业务阶段、用户体验、合规风险共同决定的结果。所以我不太喜欢听候选人说“AI永远不能替代人类”这种大话。更好的说法是AI会替代掉很多低价值执行动作但不会替代问题定义、方案取舍、责任兜底和上线决策。开发者的价值会从“我能不能写出来”变成“我能不能定义清楚、验证准确、控制风险”。这才是对研发岗位真正有意义的回答。慢在哪比换快模型更重要还有一个很容易区分候选人水平的问题用AI工具时有没有觉得响应太慢你一般怎么让它快一点普通回答是换个快一点的模型。这没错但太粗了。这道题本质上也是在做归因。可以继续追层级问题全级用AI工具时有没有觉得响应太慢你一般怎么让它快一点3-5年响应快慢跟哪些因素有关能列一下吗哪个影响最大3-5年什么时候开推理模式什么时候不开怎么判断5年以上快和好怎么平衡你是不是一直用最快或者最强的模型真正会用的人会先判断慢在哪里。如果是读得慢也就是输入上下文太长那就精简上下文。别把历史聊天、无关文件、无关工具全带进去。有些工具会把schema常驻塞进上下文用不上就不要挂太多。如果是想得慢也就是开了推理模式那就看任务值不值得。让AI解释一段简单代码不需要开深度思考让它做复杂方案取舍可以开。如果是写得慢也就是输出太长那就限制输出。比如只让它写关键方法不要整个类只让它列风险点不要写长篇解释。如果是模型本身慢那就做任务分级。简单任务用小模型复杂推理用强模型生产验证靠测试和Code Review。可以这样拆慢在哪里可能原因处理方式读得慢上下文太长、工具太多、历史消息太厚精简上下文不用的工具别挂只给当前任务材料想得慢开了推理模式思考token太多简单问题关推理复杂问题拆步问写得慢输出太长限制输出长度只要关键方法不要完整项目模型慢模型太大或任务路由不合理简单任务走小模型复杂任务再上强模型这里面最重要的一句话是不是一直用最快的也不是一直用最强的而是当前这一步需要什么就选什么。比如探索阶段我愿意用强一点的推理模型让它多给几个方案编码阶段我可能用更快的模型生成样板代码验证阶段我反而不会太相信模型我更相信单测、日志和代码审查。这个回答背后体现的是成本意识、风险意识和流程意识。面试官最后怎么打分如果把所有问题收束起来其实就一张表维度差答案好答案使用节奏先问AI等AI告诉我怎么办我先想让AI跑我检查错误归因多问几遍换个模型判断缺知识、缺上下文、指令模糊还是幻觉验证方式跑一下没报错查API真实性、看边界、跑测试、做回归上下文管理全部塞进去只给当前任务需要的关键材料模型选择一直用最强或最快按任务阶段选择模型AI边界创造力、情感这些套话责任、私有知识、问题定义、价值取舍如果要再细一点可以这么看层级表现L0没关注过也讲不出自己怎么用L1能说出一个AI事件并知道它大概为什么重要L2能讲出事件对自己使用方式的影响比如换模型、开始用Agent、考虑本地部署L3能从事件推到技术意义和行业影响比如开源、成本、数据安全L4能从事件推到架构决策比如模型抽象层、多模型热备、本地部署兜底L5能串起趋势判断比如从对话到Agent再到多Agent和闭环知道瓶颈正在从模型转向编排说到底AI面试不是在考“你听过多少模型”而是在考你有没有新的工程基本功。以前我们看一个程序员会看他会不会拆需求、会不会读代码、会不会定位问题、会不会写测试、会不会做技术取舍。现在还是这些东西只不过中间多了一个AI。AI会放大能力也会放大问题。一个本来就知道怎么拆问题的人用AI会更快一个本来就没有判断力的人用AI只会更快地把错误提交上去。所以面试里最怕的不是候选人没听过某个模型而是他讲了半天AI最后结论只有一句“AI挺厉害的。”这句话没有错但没用。真正能打动面试官的结论应该是“所以我会这样调整我的开发流程。”前者是观众。后者才是驾驶员。