三轮技术面试通常分别在看什么

第一编 · 第八章:三轮技术面试通常分别在看什么的深入分析


标准社招面试的三轮结构

中高级前端岗位的技术面试,通常是三轮,每一轮的面试官角色和考察重点不同。知道每一轮在考什么,是高效准备的前提。

大多数公司的结构是这样的:

第一轮由同级工程师或者资深工程师来面,主要考察编程能力和基础是否扎实。这一轮通常会让你写代码,题目难度不大,链表反转、数组处理、字符串操作这类基础题为主。

第二轮由高级工程师或者 tech lead 来面,主要考察技术深度和工程判断。会问很多"为什么",追问细节,看你对技术的理解是表面的还是深入的。

第三轮由架构师或者技术总监来面,主要考察架构能力、技术视野和软技能。问题比较开放,没有标准答案,看的是你的思考框架和全局视角。

当然不同公司会有差异,有的公司会把第二轮和第三轮合并,有的公司会有四面。但大体的考察维度是类似的。


第一轮:编程能力

这一轮的面试官和你做的工种差不多,平时可能也在写前端代码。他们问的问题通常比较具体,你答得好不好他们心里有数。

这一轮在看的

你的代码写得怎么样。不是会不会写,而是写出来的代码质量怎么样。边界条件有没有考虑,变量命名是否清晰,逻辑是否容易读懂,遇到特殊情况会不会崩。

你的思路是否清晰。拿到一个问题,会不会先想清楚再动手,还是拿到就开始写,写到一半发现不对又删掉重写。

你能不能在压力下保持基本水平。有的人在面试环境下会紧张得手抖,写出来的代码跟平时完全两个样。这一轮要看的就是你能不能在压力下维持一个基本的输出能力。

这一轮的典型问题

手写算法题(难度通常在 Easy 到 Medium 之间)、让写一个具体功能的实现(比如防抖函数、节流函数、深拷贝实现)、给你一段有 bug 的代码让你修。

怎么准备这一轮

保持每天一到两道题的刷题节奏,不需要刷很难的,Medium 难度就够了。刷题的目的是保持手感,不是为了押题。

写完代码之后一定要检查:边界条件有没有处理、空数组会不会崩、输入非法值会不会报错。很多人的代码写完一跑就有问题,不是因为思路不对,是因为边界没考虑。


第二轮:技术深度与工程判断

这一轮的面试官通常经验更丰富,问的问题会更开放,也更追细节。他们不是在考你"知不知道这个知识点",而是在考你"理解得到底有多深"。

这一轮在看的

你的技术理解是否深入。问一个知识点,你能回答到第几层?比如问 React 的 state 更新,你能说到"setState 是异步的"这一层,还是能说到"React 的批处理机制、Fiber 架构下的 lane 调度模型、render 和 commit 两个阶段的具体行为"这一层?

你有没有自己的思考。问一个开放问题,你会怎么组织答案?是照本宣科还是能有自己的分析角度?面试官通常会追问"为什么",就是想看你有没有自己的思考,而不是只会背别人的结论。

你能不能把复杂问题讲清楚。技术深度的一个体现就是:能不能把一个复杂的机制用自己的话讲清楚。讲不清楚通常意味着理解不够透彻。

这一轮的典型问题

"说说 React 的更新流程" "useEffect 的依赖数组怎么决定" "React Fiber 解决了什么问题" "你们的项目遇到过什么性能问题,怎么排查的" "说说你们的技术选型过程"

怎么准备这一轮

对着核心技术点,一个一个过,确保能从底层机制讲清楚,而不是只说表面描述。

每个技术点准备一个项目里的真实案例,知道这个技术在项目里是怎么用的、遇到过什么问题、怎么解决的。

练习"展开讲"的能力。拿到一个常见问题,不要只给一个一句话答案,试着用三到五分钟把这个问题的来龙去脉讲清楚。


第三轮:架构能力与技术视野

这一轮的面试官通常不写具体业务代码很多年了,他们的视角更多在团队、技术方向、系统设计上。

这一轮在看的

你的全局视野。你不只是埋头写代码的人,还是会抬头看路的人。你知道技术趋势是什么,知道团队在技术上的瓶颈在哪,知道应该往哪个方向投入。

你的架构思维。遇到一个系统设计问题,你是怎么拆解的?考虑了哪些维度?做了哪些权衡?这些思考比最终方案更重要。

你的软技能。你怎么和团队协作、怎么推动技术改进、怎么在冲突中达成共识。这类问题没有标准答案,看的是你的思维方式和工作风格。

这一轮的典型问题

"如果让你从零设计一个后台管理系统,你会怎么做" "你们团队的技术债主要在哪,你打算怎么逐步改善" "遇到过什么技术挑战让你睡不着觉的" "怎么判断一个技术值不值得引入团队" "你最近关注什么新技术,为什么"

怎么准备这一轮

准备两到三个系统设计类的问题,不是为了背答案,而是为了建立思考框架。比如如何设计一个前端模块化方案、如何设计一个性能监控体系、如何设计一个前端权限系统。

准备一两个你最近在思考的技术方向,不需要很成熟,有自己的分析和判断就行。

准备一个"技术改进故事":你们项目在哪方面有技术债,你做了什么来改善,效果怎么样。


每一轮的时间分配

了解每一轮在考什么之后,时间分配就应该有针对性了。

第一轮:代码能力需要平时积累,临时抱佛脚效果有限。但在面试前一周每天保持刷题手感是必要的。

第二轮:技术深度需要系统性准备,对着核心技术点一个一个过,串成一张网。这一轮的准备时间应该是最多的。

第三轮:架构思维和软技能很难临时准备,更多靠平时积累。但面试前花时间把自己的项目经验和技术思考整理一遍是有效的。


这一章想说的

三轮面试考察的维度不同,每一轮的准备方式也应该不同。

第一轮靠平时积累,第二轮靠系统准备,第三轮靠沉淀和思考。知道每一轮在考什么,才能把有限的时间分配到最需要投入的地方。