求职系列(3):如何准备面试
面试准备这件事,大部分人的做法是打开一个面经合集,从第一题背到最后一题。背完觉得自己OK了,但一上场发现面试官根本不按套路出牌。
因为你准备的是答案,但面试考的是能力和内核。答案是死的,能力是活的。面试官稍微换个角度追问,背答案的人就卡壳了。
每个人的技术方向和项目经历都不一样,我没法告诉你具体该准备什么内容。
但准备面试这件事本身是有方法论的,我自己用了很久,效果极好。
1.面试前:做好背景调查
很多人准备面试只盯着技术和专业能力进行准备,但更重要的是需要了解:你要去的那家公司、那个团队、那个岗位到底是什么情况。
你至少要搞清楚几件事:
1.这个岗位的 JD 里哪些是核心要求,哪些是凑数的。
JD 里列了十几个技能点,不可能每个都是硬性要求。找到那两三个反复出现的关键词,那才是这个岗位真正需要的能力。你的准备应该围绕这些核心点展开,而不是面面俱到。
2.这个团队在做什么业务,目前处于什么阶段。是新业务在探索期,还是成熟业务在优化期。
探索期的团队更看重你的学习能力和抗压能力,成熟期的团队更看重你的系统设计和深度优化经验。知道这些,你在面试中举例子的时候就能挑最匹配的来讲。
3.面试官是谁,他的技术背景是什么。LinkedIn、GitHub、技术博客,能查到的都查一下或者找HR、猎头大概打听一下。
不是让你去讨好面试官,是让你知道对面坐着的人关注什么方向,他大概率会从自己熟悉的领域出题。
这些信息花不了你多久,但能让你的准备精度提升一个量级。盲目准备就像不看地图就出发,方向都没对,走再远也是白走。
2.简历:每次重要的面试都应该微调
一份简历走天下,这是大多数人的做法,也是大多数人的错误。
你的简历不应该是一个固定文档。每次投递不同的岗位,简历都应该做针对性的微调,调整侧重点。
同样是你做过的三个项目,投 A 公司的基础架构岗,你应该把偏基础设施的项目放在最前面,展开写;投 B 公司的业务开发岗,你应该把业务复杂度高的项目提上来。
项目还是那些项目,但排列顺序和展开深度不一样,给面试官的第一印象就完全不同。
项目描述里的技术关键词也要和 JD 对齐。不是让你编,是你确实用过这些技术,只是之前没在简历里强调。JD 里提到了 Kubernetes,你的项目描述里就把容器编排相关的工作写清楚。面试官扫简历的时间可能只有 30 秒,关键词匹配度直接决定你能不能进入下一轮。
还有一点:简历上写的每一个点,你都要能展开讲三分钟。写了不能讲的东西,就是给自己埋雷。
面试官最喜欢挑简历上看起来很厉害的那一行追问,你要是讲不清楚,可信度瞬间崩塌。
3.模拟面试:最被低估的准备方式
技术知识可以看书学,但面试能力只能通过模拟来练。
这两个东西完全不同。你可能对某个技术点理解得非常透彻,但一开口就是一团浆糊,说了五分钟面试官都没听明白你在讲什么。知道和说出来之间,隔着一条巨大的鸿沟。模拟面试就是在填这条沟。
1️⃣ 自己给自己模拟面
每次太久没面试,我都会给自己来一轮。步骤很简单:
1. 写一份题单,围绕你的技术方向和项目经历出题
2. 只有题单,不写答案。答案在你脑子里,写出来就变成了背诵而不是思考
3. 开始回答,全程录音
4. 回放录音,审视自己的状态、表述和内容质量。哪些点回答得不够顺畅、哪些知识有盲区、哪些表达可以更精炼,全部记下来
5. 没答好的点记录成清单,下一次模拟面的时候加进题单
6. 循环迭代
这个方法的核心在于录音回放。你以为自己说得很好,回放的时候会发现各种问题。有些点你以为很熟,一开口才发现根本组织不出来清晰的表达。语速太快、逻辑跳跃、关键信息遗漏,这些问题你在说的时候根本意识不到,录音不会骗你。
2️⃣ 找人模拟面
自己面自己有一个局限:你没法模拟真实面试中的压力和追问。
自己问自己的时候,你知道答案是什么,潜意识里会绕开那些你不擅长的方向。但真实面试中,面试官偏偏就会往你不舒服的地方追。
如果条件允许,找一些对应方向有经验的人给你做模拟面试。可以是朋友、同事,也可以是网上的付费 mock interview 服务。关键是对方要能问出有质量的追问,而不是照着题库念。好的模拟面试官会根据你的回答临时追问,逼你暴露出真实的知识边界。
模拟面试之后一定要要反馈。不只是哪些题没答好,更重要的是你的表达方式、沟通节奏、回答的结构性,这些东西自己很难察觉。
3️⃣ 每次正式面试都录音
这一条很多人不知道,但非常重要。
每次正式面试全程录音。重要的面试结束后回放复盘,哪些问题答得好,哪些答得拉垮,面试官的追问你有没有接住。
没过的面试,100% 复盘。
没过一定有原因。是技术深度不够?是表达不清晰?是某个项目细节被追问到了盲区?找到原因,下次就不会在同一个坑里摔两次。
过了的面试也值得复盘。哪些回答让面试官眼前一亮,哪些问题的回答框架可以复用到其他面试中。好的经验要提炼出来变成你的标准打法。
项目复盘:提前把坑填了
面试中 80% 的追问都围绕你的项目经历展开。
项目复盘不是把你做了什么列一遍。面试官不关心你用了什么技术栈,他关心的是你为什么做这个选择、做的过程中遇到了什么问题、你是怎么解决的、如果重来一次你会怎么改。
每个你打算在面试中讲的项目,至少要想清楚这几个维度:
这个项目的业务背景是什么,你在里面承担什么角色。别一上来就讲技术细节,面试官需要先知道 context。
技术方案为什么这么选,有没有考虑过其他方案,为什么没选。这个问题回答得好,比你把技术方案本身讲得多精彩都有用。因为它展示的是你的决策能力,而不只是执行能力。
遇到了什么困难,怎么解决的。最好是真实的困难,不要编。面试官见过太多人了,编的故事一追问就破。
最终效果怎么样,有没有可量化的数据。性能提升了多少、成本降低了多少、效率提高了多少。没有数据的项目复盘就像没有 benchmark 的性能优化,缺乏说服力。
心态:面试是一个训练过程
很多人把面试当成考试,一次没过就觉得自己不行。
面试能力和任何能力一样,是可以训练的。每一次面试都是一次实战,每一次复盘都是一次参数调优。面的越多、复盘越勤,你的面试模型就越准。
前几场面试表现不好很正常,就当是 热热身。不要把你最想去的公司放在第一个面,先拿几个没那么在意的 offer 练手,把状态调到最好再去面你的 dream company。
面试这件事,准备的上限很高。
你永远可以更了解对方公司、永远可以把项目讲得更清楚、永远可以把表达打磨得更精炼。
但也别追求完美到焦虑,准备到你觉得能自信地坐在面试官对面聊天的程度,就够了。
显示更多
求职系列(2):如何理解每轮面试
大部分人准备面试,只准备专业能力。刷题、背八股、复盘项目。然后到了二面或者终面被刷,复盘的时候一脸懵:我技术答得挺好啊、题也做出来了,怎么就挂了?
因为你把不同的面试当成了同一场考试。但实际上每一轮面试考察的能力完全不同,所以针对每一面,你需要切换的不只是知识储备,是整个应对模式。
先聊面试流程
一般来说,大厂的面试流程会标准一些,小厂可能简化成两三轮就搞定了。
比较标准的大厂流程是业务三面 + HR 一面。社招的话,HR 可能在业务初面之前就已经和你沟通过了,因为很多时候是 HR 先在市场上找到的你,她需要先做一轮初筛确认你的基本情况和薪资预期。
一些特殊的业务线还会加面,比如微信,通常会额外安排 1-3 轮面委会面试。面委会的人可能和你未来的团队没有直接利益关系,纯粹是从更高的维度做交叉验证。
1️⃣ 业务一面:证明你能干活
一面通常是你未来的同事或者直属 mentor 来面你。
这一轮的逻辑很简单:验证你的基础能力。算法写得出来吗,基础知识扎实吗,项目是真的做过还是简历吹的。面试官需要确认一件事——这个人专业能力是否靠谱,招进来能不能马上干活。
一面你需要做的:
突出专业能力,回答尽量有逻辑。面试官问什么,你回答什么,但要回答得有层次。别一句话甩过去,也别漫无边际地展开。
好的回答永远都是有层次、有逻辑的,尽量像一棵树,先给结论这个主干,再展开细节的枝叶。
一面的对话模式更像问答。面试官主导节奏,你负责高质量地回应。不需要太多发散,也不需要抢节奏。把每个问题回答扎实了,比什么都重要。
坦率地说,国内面试环境还是有一些不太好的地方,候选者和面试官之间的关系不够平等。一面尤其明显,你大概率会感受到一种被审视的压力。但这也是你必须接受的,这一面你只需要专注于展示自己的专业度。
一面考察的核心能力:
→ 专业知识的深度和广度
→ 项目经验的真实性和理解深度
→ 技术表达的清晰度
2️⃣ 业务二面:证明你能想
二面通常是你未来的虚线汇报人,或者组织架构上的 +1。具体是谁,取决于公司的架构。
这一轮可能还会涉及部分基础能力的考察,但这不是重头戏了。你的基础能力在一面已经被验证过,不然不可能被放到二面来。
二面开始考察更高维度的东西。系统设计能力、技术方案的 trade-off 思维、对复杂问题的拆解方式。面试官想问的不再是你的具体专业能力,而是你面对一个模糊的大问题时,怎么把它拆成可执行的小问题。
从这一面开始,对话模式要变了。
一面是问答,二面要开始有来有回。面试官抛出一个问题,你不能只给一个答案就停了。你要展开你的思考过程,甚至可以主动问面试官一些背景问题和边界情况。一个好的工程师在动手之前,一定会先把问题定义清楚,要主动把你的思维体现出来。
可以尝试多说一些话,把面试节奏握在自己手里,也尽量多展示出自己的软素质,推荐候选人和面试官的对话比例在 1.5:1 - 2:1 左右比较健康。
你说得太少显得没想法,说得太多显得不听人说话。
二面考察的核心能力:
→ 更高维度的专业能力,比如:系统设计和架构思维;技术方案的 trade-off 分析能力
→ 沟通表达,能不能把复杂的事情讲清楚
→ 面对模糊问题的拆解和推理能力
→ 软能力:视野、态度、思维、内核
3️⃣ 业务三面 / 终面:证明你这个人
如果二面是虚线面的,终面就是你的 +1;二面是 +1 面的,终面就是 +2。
到了终面,前两面该检查的技术能力都检查完了;这一轮基本不会再考你专业能力,比如写代码或者做系统设计之类的。
终面考的是你这个人。
很多人到了终面就紧张,因为不知道会问什么、不知道标准答案是什么。但真相是:终面大部分问题没有标准答案。
面试官问你怎么看待某个行业趋势、问你遇到过最大的困难是什么、问你和同事发生过冲突怎么解决的。
这些问题的具体答案不重要。面试官真正在考察的是你的认知深度、价值观和抗压能力。你对一个问题的思考角度、分析过程和表达方式,比最终结论重要得多。
终面是沟通,不是答题,如果你在终面还是面试官问一个你答一个的模式,你大概率过不了。
终面更像一场对话。面试官抛出一个话题,你回应你的观点,他可能会追问或者提出不同看法,你再接着聊。候选人和面试官的对话比例在 2:1 到 3:1 之间比较健康。也要尽可能把面试节奏抓在自己手里,当然前提是对方不是那种特别强势的风格。
面试官通常会主动绕过你的准备,面的问题通常不会让你舒服。面试官当然知道你对面试有所准备,他就是要绕过你的准备,看你底层的能力。
比如你准备了一个完美的项目复盘,他偏不问你怎么做成的,他问你如果重来一次你会怎么改。比如你准备了一套职业规划的说辞,他直接问你对当前团队最大的不满是什么。
遇到没准备过的问题,不要慌。
用嘴巴去想,终面最忌讳的事:沉默太久。
遇到一个没想过的问题,不要低头沉思两分钟然后蹦出一个干巴巴的答案。把你的思维过程说出来。比如:这个问题我之前没有想过,但我觉得可以从几个维度来看。第一……第二……
面试官想看到的就是你思考的过程。你的逻辑链条、你考虑问题的全面性、你面对未知问题时的应对方式。一个能当场把思路理清楚的人,比一个背了标准答案的人有价值得多。
面试官是善意的,到了终面这一步,公司已经在你身上投入了大量的面试资源。多轮技术面、多个面试官的时间,HR 的协调成本。他们是希望你过的。
所以不要把终面当成一场对抗。面试官不是在找理由淘汰你,他是在找理由录用你。放松一点,展示真实的自己。过度紧张和过度表演,反而会让面试官觉得你不够真诚。
终面考察的核心能力:
→ 对行业和技术趋势的认知深度
→ 沟通表达和思维展示能力
→ 价值观、性格和内核稳定性
→ 面对未知问题时的应变和结构化思考
→ 你对自己职业发展的思考是否清晰
4️⃣ HR 面:确认你值多少钱,以及你是不是对的人
HR 面主要做两件事:谈薪 和 确认文化匹配度。
可能会聊一些你的过去经历、未来发展方向、离职原因、对公司的了解。
这些问题听起来比较虚,但不要掉以轻心。
HR 面不是走过场,部分公司的 HR 权力很大,一票否决权是真实存在的。某里就是典型,HR 面挂人的比例并不低。
HR 面的核心是真诚和一致性。你在前三面展现的形象、你简历上写的东西、你跟 HR 聊的内容,这三者之间不能有明显矛盾。HR 的训练就是抓这种不一致,一旦被抓到,信任感瞬间归零。
谈薪环节别太紧张也别太随意。提前了解市场行情,给一个合理的范围,表达出你对这个机会的重视。
别狮子大开口,也别委屈自己。
整体来看
面试这四轮,能力要求是一条递增曲线:
一面 → 同事/mentor → 基础能力、干活能力 → 问答型,扎实回应
二面 → 虚线/+1 → 系统思维、技术深度 → 对话型,有来有回
终面 → +1/+2 → 认知、价值观、软素质 → 主导型,抓住节奏
HR 面 → HR → 薪资、文化匹配 → 真诚型,保持一致
从一面到终面,面试官的 level 在升,问题的抽象程度在升,你需要展示的东西也在变。一面考你会不会,二面考你行不行,终面考你是不是。
想明白这一点,你就知道为什么有些人技术很强但终面总挂了。不是技术不够,是他从头到尾只展示了一个维度的自己。
面试是一个完整的系统,每一层都有自己的评估逻辑,你得在每一层给出那一层需要的输出。
显示更多