编程面试的设计初衷是为了隔离单一变量。把一个人关在房间里,给他们一个问题,拿走他们的参考资料,观察他们是否能独立将问题转化为可运行的代码。这种形式的一切——白板、空白编辑器、禁止查阅资料——都是为了剥离协作者和工具,从而衡量一种被隔离的技能:这个人能否在压力下独自编写出正确的代码。
这项技能已不再是工作中需要锻炼的技能了。2026 年的日常工程工作是工程师与智能体(Agent)之间的协作。工程师决定构建什么,智能体起草大部分代码,而工程师真正的任务是审查、纠正,并判断智能体何时在“自信地犯错”。面试衡量的是独立产出代码的能力。而工作奖励的是指导一个不知疲倦、快速、偶尔产生幻觉的协作者。代理指标与目标已经脱节,而大多数招聘流程尚未察觉到这一点。
这并不是在抱怨作弊,尽管作弊是每个人都关注的症状。这是一个测量问题。当你无法再观察到测试旨在隔离的变量时,测试就不再产生信号——而一个在所有人仍然信任它的同时却不产生信号的测试,比根本没有测试更糟糕。
禁止智能体,是在测试一项没人做的工作
当隐形的 AI 助手开始通过面试时,人们的第一反应是更严密地封锁房间。切换标签检测、浏览器锁定、眼球追踪、分析按键节奏以标记粘贴代码的频率。一整个反向产业现在将“面试诚信”作为一种服务来销售,通过评分二十多种行为信号来抓取使用隐藏浮窗的候选人。
这场军备竞赛是赢不了的,而这还不是放弃它最主要的原因。作弊工具宣称在应对标准算法问题时的通过率超过 90%,它们能在不到两秒钟内生成解决方案,同时对屏幕共享保持隐形。检测手段在收紧,工具也在进化,整个过程的成本持续攀升。但假设你明天赢得了军备竞赛——假设你可以完美保证候选人在没有任何协助的情况下解决了一个图遍历问题。你确实以极高的精度衡量了一项脱离实际的工作。现在已经没有人凭记忆手写图遍历了。你认证了一项候选人永远不会再使用的技能,而且是在一个与任何工作场所都不相似的环境中。
2026 年一个被严密封锁的面试,就像一台小心翼翼禁用了自动驾驶功能的飞行模拟器——因为上一代飞行员飞行时没有自动驾驶。它测试的是在一项已经退役的任务上的胜任能力。禁止智能体并不能恢复信号。它只会让面试更可靠地衡量错误的东西。
不加约束地允许智能体同样无法提供信息
相反的做法——“随你使用什么工具,我们不在乎”——感觉很现代,但由于一个更微妙的原因而失败。当候选人和智能体共同产生一个正确的解决方案时,你无法看出是谁做出的判断。候选人可能拆解了问题,发现了一个有缺陷的初稿,并引导智能体走向更好的设计。或者,候选人可能只是粘贴了提示词,接受了第一个输出,并因为这个问题是模型记忆过的常见问题而走运通过。两者都会产生相同的绿色勾选。
面试的全部价值在于它迫使候选人的推理过程公开化。一个非结构化的“带上你的智能体”面试将这种推理隐藏在智能体的输出之后。你看着屏幕填满正确的代码,却无法得知坐在椅子上的人在代码出错时是否能发现它。信号并没有改善;它转移到了你观察不到的地方。
因此,这两种显而易见的反应——禁止工具,或自由允许——都会破坏信号,只是方向相反。一个衡量的是过时的技能。另一个衡量的是协作,但无法进行归因。出路不在于工具政策,而在于重新设计面试要求候选人做的事情。
现在真正能预测绩效的信号
如果独立产出代码不再能预测工作表现,那么什么能预测?那些重建了面试流程的公司——如 Sierra、DoorDash、Canva 以及其他正在试点“审计型”或“AI 原生”格式的公司——都收敛到了一份简短的信号清单上,这些信号是智能体无法代表候选人伪造的。
问题拆解。 在编写任何代码之前,候选人能否将一个模糊、定义不明确的任务分解为一系列可处理的片段?这是给智能体的输入,完全是人类的工作。模糊的提示词产生模糊的代码;清晰拆解的问题产出你真正可以审查的代码。拆解现在处于所有环节的上游,这使其成为最有观察价值的事情。
审查并拒绝智能体的输出。 几家公司完全颠倒了面试过程:他们不再要求候选人生成代码,而是移交一个中型代码库和一份草拟的 PR(Pull Request)——表面上是来自同事——并要求候选人进行审查和改进。这种设定坦诚地反映了工作的转移。一个团队使用的口号很直白:生成是廉价的,验证是昂贵的。观察一个候选人阅读他们没写过的代码,找出测试遗漏的失败模式,并说明其错误原因,这比观察他们打字更具有预测性。
识别智能体何时在“自信地犯错”。 这是一个名字最短但影响最深远的技能。智能体生成的代码可能可以编译、通过可见的测试、阅读起来很简洁——但在涉及到大规模、并发或没人想到要测试的输入时是错误的。能捕捉到这一点的工程师才是值得聘用的工程师。面试应该刻意植入一个看似合理但有缺陷的方案,观察候选人是察觉到了,还是因为其看起来很“自信”就随手放行。
对架构和范畴的品味。 当一名工程师可以在一个下午生成整个技术栈的代码时,约束条件就不再是产出,而是判断:构建什么,不构建什么,做出哪种权衡,何时停止。这些新面试的评审员会根据候选人是否在解决问题前重述问题、提出澄清性问题以及大声讨论权衡进行评分。一位招聘主管说,优秀的雇员“不会立即提出解决方案”。停顿就是信号。
注意这四点的共同之处:智能体无法为候选人提供其中的任何一项。智能体可以写代码,但它不能判定代码是错误的,不能选择范畴,不能承担判断。围绕这些信号设计面试,可以让智能体的存在对衡量结果变得无关紧要——这正是重点所在。你不再与工具对抗,而是开始衡量工具无法完成的事情。
围绕判断力而非打字速度重新设计招聘环节
具体而言,在 2026 年能产生有效信号的面试,看起来不再像一个空白编辑器,而更像是一场带计时器的 code review。目前正在试点的审计式面试分为三个阶段:简短的定向阶段,候选人在提出任何方案前先确定约束条件;较长的审计阶段,他们在已经运行的代码中搜寻生产环境的故障;以及辩论阶段,他们必须选出首个要发布的修复方案并说明理由。
每个阶段评分的对象都是判断力,而非机械操作。定向阶段奖励那些在优化任何东西之前先询问系统规模的候选人。审计阶段奖励发现 race condition 的人,而不是重新格式化文件的人。辩论阶段奖励优先级排序能力——即意识到你无法修复所有问题,并能解释选择修复特定问题的成本效益逻辑。Agent 是被允许甚至鼓励使用的,因为这些评分都不取决于谁输入了代码,而是取决于谁的判断力在掌舵。
这样做是有实际成本的。审计式面试更难编写——你需要一个真实的、带有真实的非显性缺陷的代码库——而且更难评分,因为判断力无法被简化为一组通过的测试用例。这对面试官提出了更高要求,他们现在必须评估推理过程,而不是对比参考答案看 diff。这一成本正是大多数公司尚未转型的原因:LeetCode 式面试最大的优点在于管理成本低廉,且看起来很客观。重构招聘环节,是用这种廉价感来换取你真正可以信任的信号。
代理指标终于与目标背道而驰
“你会写代码吗”一直是一个代理指标(proxy)。雇主真正想知道的是“你能交付正确的系统吗”,几十年来,独立编程能力与此高度相关,以至于代理指标几乎等同于目标。面试流程是建立在两者将保持一致的假设之上的。
它们已经分道扬镳了。现在,交付正确的系统意味着能很好地拆解问题、指挥 agent、发现它自信犯下的错误,并掌控架构——而一个候选人可以擅长所有这些,但在凭记忆写二分查找时表现平平。反之亦然:有人可以在白板面试中表现出色,却仍然交付糟糕的系统,因为他们对 agent 提供的一切照单全收。代理指标和目标现在是两个不同的维度,任何仍在针对代理指标进行优化的面试都是在错误的方向上努力。
对招聘团队来说,令人不安的是面试流程落后于实际工作数年之久。形式的重新设计需要数月时间,面试官的重新培训需要更久,而“我们一直是这样筛选的”这种制度惯性非常顽固。与此同时,面试衡量的标准与工作实际要求之间的差距每月都在扩大。一个在 2026 年仍然运行未经修改的 2022 年面试流程的团队,算不上严谨。它是在仔细衡量一项已无法预测其招聘初衷的技能——并在坚信自己正确的同时,悄无声息地筛选掉合适的人才。
解决办法不是做一个更好的防作弊检测器。而是接受候选人拥有 agent、员工也将拥有 agent 的事实,而唯一诚实的面试是衡量在 agent 已经在场的情况下,人类能带来什么。
会员专享
余下内容仅对会员开放。
会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。
- —完整文章,包含未公开存档的部分
- —可落地的工作框架,附带权衡与决策依据
- —新文章抢先看,先于公开发布
随时取消 · 一次订阅,畅读全部