
最近一次面试我让候选人现场写一段代码。他熟练地打开浏览器输入问题然后开始逐行复制粘贴。我问他“这是你的思路吗”他回答“工具用得好也是能力啊。”那一刻我突然意识到传统的技术面试方式可能真的需要重新思考了。当每个人都能通过 LLM 和智能代理快速获取代码片段、调试错误甚至设计系统架构时我们到底在面试什么是记忆 API 的能力还是解决问题的思维是编码速度还是工程判断力这个问题不仅困扰着我也正在成为整个技术招聘领域必须面对的挑战。1. 从“知识考察”到“思维验证”的必然转变过去的技术面试很大程度上是在测试候选人的知识储备。你能手写快速排序吗记得 MySQL 索引原理吗能说出 Redis 持久化机制吗这些问题在 ChatGPT 出现前是有意义的因为工程师确实需要把这些知识内化才能高效工作。但现在情况完全不同了。一个刚入行的工程师通过合适的提示词能在几分钟内获得比资深工程师记忆更准确的技术文档。这不是作弊这是新时代的工作方式。1.1 知识型问题的失效临界点我曾经做过一个实验让三位不同资历的工程师解决同一个相对复杂但标准的业务问题。资深工程师靠经验直接写代码中级工程师查文档后实现初级工程师用 LLM 生成方案。结果出乎意料——初级工程师的解决方案在代码规范性和边界处理上甚至优于资深工程师的手写版本。这并不意味着初级工程师更优秀而是说明当工具能够提供高质量的标准答案时我们对“知识掌握程度”的考察已经失去了区分度。更关键的是在实际工作中优秀的工程师本来就会充分利用各种工具和文档。禁止使用外部资源面试就像测试司机时不允许看后视镜一样不真实。1.2 思维过程比最终答案更重要在 agentic 时代面试的重点应该从“能否得出正确答案”转向“如何思考问题和验证方案”。比如传统的算法题可以这样改造不要求手写完美代码而是给出一个 LLM 生成的有缺陷的实现让候选人分析问题所在提供多个 AI 生成的解决方案让候选人比较优劣并说明选择理由给出一个模糊的需求观察候选人如何追问细节、拆解问题、设计验证方案这种转变的核心是我们不再测试候选人知道什么而是测试他们如何思考、如何判断、如何决策。2. 重新定义技术面试的四个核心维度基于对多个团队面试流程的观察和重构经验我认为在 agentic 时代技术面试应该围绕以下四个维度展开。2.1 问题拆解与需求澄清能力这是 LLM 目前还难以完全替代的人类能力。给候选人一个模糊的业务场景观察他们如何识别信息缺口哪些关键信息缺失需要向产品经理或业务方追问什么界定问题边界这个问题的范围是什么哪些在范围内哪些应该排除优先级判断多个需求冲突时如何权衡取舍假设明确化基于哪些假设进行设计这些假设的可靠性如何实际操作中可以设计这样的面试题“我们需要做一个内容推荐系统请你设计技术方案。”然后根据候选人的提问逐步释放信息内容类型是什么图文、视频、音频推荐的目标是什么点击率、停留时间、转化率数据基础如何有无历史行为数据数据量级技术约束有哪些开发周期、团队技术栈、性能要求优秀的候选人会系统性地追问而不是立即开始设计架构。2.2 技术判断与方案评估能力当 LLM 能生成多个可行方案时工程师的关键价值体现在选择与判断上。方案对比框架可以这样设计评估维度考察重点示例问题长期维护成本代码可读性、模块化程度、文档完整性“这两个架构方案哪个更容易让新成员快速上手”扩展性边界性能瓶颈点、扩容策略“当用户量增长10倍时哪个方案需要最小改动”故障恢复能力监控点设计、回滚机制“这个方案出错时我们如何快速发现和修复”技术债务风险依赖成熟度、社区活跃度“选择这个新兴框架可能带来什么风险”在面试中可以给候选人提供 2-3 个 AI 生成的技术方案让他们进行对比分析。重点观察他们是否能够识别出方案中隐含的设计取舍和长期影响。2.3 调试与问题排查思维LLM 能快速给出常见错误的解决方案但复杂系统的疑难杂症仍然需要人类的系统性思维。面试时可以模拟这样的场景“线上服务突然出现性能下降CPU 使用率正常内存使用率正常错误日志没有明显异常你会如何排查”观察候选人的排查路径是否先确认问题现象性能下降的具体表现影响范围发生时间 pattern是否建立排查假设可能是网络问题依赖服务问题数据量变化是否系统性地验证从应用层到系统层从内部到外部依赖是否考虑监控盲点现有监控可能遗漏了什么这种问题没有标准答案但有一套科学的排查方法论。优秀的工程师会展示出清晰的思维路径而不是盲目尝试各种解决方案。2.4 工程化与协作意识单个模块的实现能力在 agentic 时代价值下降而工程化思维的价值显著上升。面试中可以通过这些方面考察代码可维护性如何设计接口才能降低耦合度文档习惯什么样的文档对团队协作真正有用测试策略在有限时间内优先测试哪些核心路径部署考量如何设计 rollout 策略降低风险一个实用的方法是让候选人 review 一段 LLM 生成的代码重点考察他们关注哪些工程化细节。3. 实操设计面向新时代的技术面试题基于以上维度我重新设计了一套面试题目这些题目都允许甚至鼓励使用 AI 工具。3.1 系统设计题的进化版传统题目设计一个 Twitter/淘宝/ Uber 进化题目给你一个 LLM 生成的电商系统设计文档请分析其中的设计缺陷和改进方案。具体操作提前用 LLM 生成一个中等复杂度的系统设计文档故意保留一些常见设计问题面试中给候选人 30 分钟阅读和分析时间允许使用任何工具重点考察能否识别出关键设计缺陷提出的改进方案是否考虑实际约束分析过程的逻辑严密性这种设计更接近真实工作场景工程师更多是在现有基础上优化而不是从零设计。3.2 编码题的场景化改造传统题目实现一个快速排序/二叉树遍历 进化题目这是一个线上服务的错误日志片段请分析问题原因并给出修复方案。具体操作提供真实的错误日志可以来自开源项目或模拟生成允许候选人使用 LLM 辅助分析重点考察问题定位的准确性修复方案的完整性是否考虑修复的副作用这种题目测试的是实际问题解决能力而不是算法记忆。3.3 技术决策的模拟演练传统题目Redis 和 MySQL 有什么区别 进化题目这是某个业务场景的技术选型需求现有三个团队提出了不同方案请评估每个方案的优缺点并给出建议。具体操作设计一个真实的业务场景和约束条件提供 2-3 个各有优劣的技术方案可以用 LLM 生成观察候选人的评估框架和决策逻辑这种题目考察的是技术判断力这是 AI 难以替代的核心能力。4. 面试流程的适应性调整题目设计只是第一步整个面试流程都需要相应调整。4.1 引入带工具使用的面试环节完全禁止工具使用已经不现实但完全放开也可能无法准确评估。我的建议是分层设计第一轮基础能力筛查允许使用文档和搜索引擎禁止使用 LLM重点考察编程习惯和基础工程能力时间控制在 45-60 分钟第二轮工具使用评估鼓励使用 LLM 等工具提供更复杂的业务场景问题重点观察工具使用效率和结果验证能力时间延长到 90-120 分钟第三轮系统思维考察小组面试或系统设计面试允许使用任何辅助工具重点考察架构思维和技术判断力4.2 改变面试官的评估标准面试官需要从“答案正确性”转向“思维质量”的评估。建议使用这样的评分表评估维度权重具体指标问题分析深度30%能否识别关键问题提出有针对性的追问方案评估能力25%技术选型的合理性权衡考虑的因素工程化思维20%代码质量意识可维护性考量工具使用效率15%提示词质量结果验证方法沟通协作能力10%思路表达清晰度接受反馈的态度4.3 设计合理的约束条件完全开放工具使用可能带来的问题是无法区分候选人的真实水平。因此需要设计合理的约束时间约束在有限时间内观察候选人如何分配时间——多少用于思考多少用于工具使用多少用于验证。信息约束故意提供不完整或有冲突的信息观察候选人如何识别和解决信息缺口。工具约束在某些环节限制特定工具的使用测试候选人的基础能力底线。5. 避免新时代面试的常见误区在向 agentic 时代面试转型的过程中有几个误区需要特别注意。5.1 误区一完全放弃基础能力考察虽然工具能解决很多问题但工程师仍需具备一定的基础判断力。否则会出现“垃圾进垃圾出”的情况——无法判断 AI 生成内容的质量。必要的底线能力包括基础算法和数据结构理解系统设计基本原则代码可读性判断性能基础概念这些不需要达到竞赛水平但要有基本的理解和应用能力。5.2 误区二过度追求“新颖”而忽略有效性有些团队为了体现“与时俱进”设计了过于花哨的面试题却忽略了面试的根本目的——预测候选人在实际工作中的表现。好的面试题应该与真实工作内容高度相关有明确的评估标准能区分不同水平的候选人兼顾公平性和可重复性不要为了创新而创新。5.3 误区三一刀切地应用新标准不同级别、不同岗位的工程师面试重点应该有所不同初级工程师重点考察学习能力、工程习惯、基础技术判断力中级工程师重点考察模块设计能力、问题解决效率、技术深度高级工程师重点考察系统架构能力、技术规划能力、跨团队协作同样前端、后端、算法等不同方向也应有侧重点。6. 面试之外的长期思考技术面试的变革只是表面现象背后是整个工程师能力模型的演进。6.1 重新定义工程师的核心价值当编码实现变得越来越自动化时工程师的价值更多体现在需求翻译能力将模糊的业务需求转化为清晰的技术方案技术判断力在多个可行方案中做出最优选择系统思维考虑长期维护、扩展性、可靠性等非功能性需求风险意识识别技术决策中的潜在风险和应对策略这些能力很难被自动化也是未来工程师需要重点培养的方向。6.2 建立持续学习的新型培养体系传统的“知识积累”式学习效率越来越低应该转向工具使用 mastery如何高效使用各种 AI 工具辅助工作思维方法训练系统思考、批判性思维、决策框架等领域深度积累在特定业务领域建立深度理解软技能提升沟通、协作、项目管理等能力企业和个人都需要调整学习和培养策略。6.3 拥抱人机协作的新工作模式最终我们面临的不是“人被机器替代”的问题而是“人如何与机器更好协作”的机遇。优秀的未来工程师应该是知道什么时候该自己思考什么时候该使用工具能够准确判断工具输出质量善于将工具能力整合到工作流程中保持批判思维不盲目相信任何方案包括 AI 生成的面试设计的终极目标就是找到具备这些特质的人才。回到开头的故事我现在会这样设计那道面试题给出一个 LLM 生成的代码片段里面故意埋了几个设计缺陷然后问候选人“如果你在代码 review 中看到这段代码会提出哪些改进建议”这个问题没有标准答案但能很好地考察候选人的工程判断力和代码质量意识。而这正是 agentic 时代更需要的核心能力。