技术面试设计:考什么、怎么判断
一句话速记
技术面试不是”考倒 TA”,是用最低的成本判断 TA 能不能在这个团队的实际工作中胜任。三个必须验证的维度:① 能否独立解决问题(不是背题——给一个 TA 没见过的场景,看 TA 怎么拆);② 能否和团队协作(代码 review 模拟 / 方案讨论表现);③ 能否对自己的工作质量负责(问 TA 上次的生产事故——看是归因于外部还是反思自己的改进)。面试官的每一轮都只验证一个核心维度,不要一场面试试图验证所有维度——那样一个都验不准。
通俗解释(5 分钟版)
失败的面试:
你:"请写一个 LRU Cache。"
TA 写了 20 分钟,写出来了。
你:"很好。面试通过。"
→ TA 入职后:代码写得好,但任何需求变更都崩溃、
从不主动同步进度、和 PM 吵架。
→ 因为你的面试只验证了"TA 是否刷过这道题"。
有效的面试:
你:"我们线上有个服务,偶尔在凌晨 3 点 CPU 飙高到 100%,
5 分钟后自动恢复。你跟我说说你会怎么排查这个问题。"
TA:(没有标准答案,你要看 TA 的排查思路)
"我会先看监控,确定是什么时间、哪个实例、
哪个接口引起的。然后我看 GC 日志和线程 dump…"
→ 你在验证:TA 遇到没见过的问题时,第一反应是什么?
TA 的排查方法论是什么?
TA 能不能从现象反推到根因?
关键细节
各轮次面试的职责划分
每一轮只验证一个维度:
轮次 1:技术基础(45-60 分钟)
单独面试官(Senior IC 或 TL)
验证:能否独立解决没见过的问题
考察方式:
- 一个开放式的排障场景(不是算法题)
- 或者一个简易系统设计(不是"设计 Twitter",
是"设计一个短链服务",画清楚数据怎么流)
评分标准:不要求答对所有点,看思路是否结构化
- 差的:上来就写代码,不分析
- 好的:先问清假设 → 拆问题 → 给出方案 → 讨论 trade-off
轮次 2:技术深度 + 代码能力(45-60 分钟)
另一个面试官
验证:TA 过去的项目深度是不是真的
考察方式:
- 从简历里挑一个 TA 最引以为傲的项目
- "这个项目如果让你重新设计,你会改哪里?"
- "当时为什么不选 XX 方案?"
(这些问题能区分"真的深度参与"和"在旁边看了看")
轮次 3:团队协作(45 分钟)
HM(Hiring Manager)或 TL
验证:TA 进团队后会是什么样
考察方式:
- "讲一次你和同事有技术分歧的经历——怎么解决的?"
- "你遇到过的线上故障,最严重的一次是什么样的?
你从中学到了什么?"
(看 TA 是否归因于外部——"是别人的 bug"——
TA 如果从不承认自己的问题,入职后也会是随时甩锅的人)
判断标准
每轮面试后立即打分(不要等回忆模糊了再打):
打分标准:
Strong Yes — 聘用后我会更放心,团队会变得更好
Yes — 能满足岗位要求,有成长潜力
No — 有硬伤(能力/沟通/态度任一方面不匹配)
Strong No — 聘用后团队会变差(即使只因为 TA 的
态度和沟通方式)
铁律:
- 任何一个 Strong No → 不录用(不管其他轮分多高)
- Hiring Manager 有一票否决权(因为 TA 要对团队负责)
- 面试官之间的意见不一致 → 不是要投票,而是要讨论:
"你看到了什么我没看到的?"
面试官常见错误
✗ 考自己擅长的而不是工作需要的能力
→ 你是 JVM 专家就猛考 JVM,但岗位 90% 是写 CRUD
→ 面试题应该从实际工作内容倒推,不是从面试官个人偏好
✗ "TA 没回答上来我那个 trick 问题" = 不行
→ trick 问题区分的是"是否看过某篇特定博客"或
"是否刚好背了这个点",不是区分工程能力
✗ 试图在 45 分钟里验所有维度
→ 每个面试官只盯一个维度,才能看得准
✗ 被"和我一样"的舒适感欺骗
→ 候选人和你是校友/前同事/技术栈完全相同 → 容易产生好感
→ 但这和 TA 能不能胜任没关系
延伸追问
- Q:怎么判断候选人是在”背题”还是在”思考”? → 换一个稍微变化的问题。“我看到你用 Map 做缓存。如果并发量变大,你用什么来替代?“如果 TA 直接背出 ConcurrentHashMap 源码——可能刷过题。如果 TA 说”我不确定最新实现,但我可以讲讲思路——锁分段或者 CAS”——这是在思考。后者比前者好 10 倍。
- Q:要不要让团队成员一起面试? → 要。让未来的同事参与面试(通常轮次 2)。他们对”这个人进团队后会不会是好队友”的判断,有时候比你还准。而且候选人也会通过他们看到团队的真实文化。
- Q:面试时间太短,怎么在有限时间内做出判断? → 聚焦在”不可培训”的东西:问题拆解能力、沟通真诚度、对工作的责任感。这些东西很难通过入职后培训来改变。技术栈可以学、框架可以学——但”遇到问题第一反应是什么”很难学。
我的记法
- 每轮只验一个维度:基础 → 深度 → 协作
- 四个档次:Strong Yes / Yes / No / Strong No。Strong No 一票否决
- 不要做的事:考 trick、验太多、被”和我一样”感骗
- 一句话:「面试不是考 TA 知不知道标准答案——是看 TA 在不完全信息下怎么思考和反应」
状态
- 已背速记
- 能讲通俗版
- 能答追问