面试总体概述
案例背景
20 届 211 本科,工作约 6 年,中间空窗 5 个月,应聘华为 OD(JavaScript / TypeScript 方向,东莞)。完整流程为机考 → 资格面 → 技术一面 → 技术二面 → 主管面五个环节:机考 3 题、时长 2.5 小时、按通过测试用例数计分;面试以项目深挖为主,手撕难度整体低于机考,一面偏广度、二面偏项目深挖;主管面基本不考技术,重点看态度与求职意愿。
基本信息
- 公司:华为技术有限公司
- 岗位:OD · JS 开发
- 招聘类型:社招
- 用工形式 / 部门:OD
- 工作地点:东莞
- 面试轮次:4 轮
- 题目数量:共 14 题,均附参考答案
- 整体难度:★★★☆☆ 中等
- 候选人背景:学历 本科(211,20 届)|经历 工作约 6 年,空窗 5 个月,技术栈 JavaScript · TypeScript
- 是否参加笔试:是
- 笔试形式:牛客机考(在线笔试,时长 2.5 小时)
- 题型构成:100 分 · 模拟题 + 100 分 · DFS + 200 分 · 动态规划
面试轮次与结构
| # | 轮次 | 类型 | 时间 | 时长 |
| --- | --- | --- | --- | --- |
| 1 | 资格面试 | HR 面 | 未注明 | 未注明 |
| 2 | 技术一面 | 技术面 | 未注明 | 未注明 |
| 3 | 技术二面 | 技术面 | 未注明 | 未注明 |
| 4 | 主管面 | 主管面 | 未注明 | 未注明 |
高频考点
| 考点 | 分类 | 出现轮次 | 次数 |
| --- | --- | --- | --- |
| 手撕代码(模拟 / DFS / 动态规划) | 算法与数据结构 · 手撕代码 | 机考、技术一面、技术二面 | 3 |
| 项目深挖(技术选型 → 落地 → 困难与克服) | 项目经历 | 技术一面、技术二面、主管面 | 3 |
| 八股文(偏广度) | 基础八股 | 技术一面、技术二面 | 2 |
| AI 使用情况与 AI 工作流参与度 | 机器学习 / AI | 主管面 | 3 |
| 稳定性与求职意向 | 背景与动机 | 资格面试、主管面 | 2 |
备考建议
| 优先级 | 易失分点 | 准备动作 |
| --- | --- | --- |
| P0 | 机考题干偏应用,容易一开始建模就跑偏 | 刷题以 LeetCode 中等为主,专项练「先翻译题干、再抽象成算法模型」;同时练无思路时用暴力实现拿部分用例分 |
| P0 | 项目只讲功能,讲不出选型理由与取舍 | 按「背景 → 技术选型理由 → 落地细节 → 困难与克服 → 结果」准备 2 个重点项目,每个都能讲 10 分钟以上 |
| P1 | 手撕写不出来就直接放弃表达 | 写不出完整代码也要把思路、复杂度、边界用例讲清楚,并主动向面试官要提示;题意不清先确认再动手 |
| P1 | 空窗期与跳槽次数被追问时说不清 | 提前定口径:离职原因、空窗期做了什么、为什么选这个岗位与城市;资面与主管面都要主动表达意向强烈 |
| P2 | 一面二面侧重不同,准备失衡 | 一面偏广度、二面偏项目,但两手都要有准备,按面试进度自己调整优先级 |
第 1 轮:资格面试
面试形式与时长
- 轮次名称:资格面试
- 面试类型:HR 面
- 本轮题量:1 题
重点考查维度
- 背景与动机 —— 本组 1 道题
- 偏向流程化的面试,面试官主要评估稳定性,保持态度端正即可。
- 判断候选人的求职意向与稳定性,而不是技术能力
面试真题与参考答案
Q1(资格面试)重点评估求职意向与稳定性
背景与动机 提问形式维度式提问考察重点判断候选人的求职意向与稳定性,而不是技术能力
参考答案
资面偏流程,考察点集中在「你会不会来、能不能待住」。
- 意向明确:说清为什么选这个岗位、这个城市,能接受岗位的实际工作内容与节奏。
- 稳定性:工作约 6 年、中间有 5 个月空窗,要给出主动且可控的原因(例如主动离职做技术沉淀、家庭安排已落定),并说明现在可以长期稳定投入。
- 经历连贯:几段经历之间要有一条清晰的能力主线,避免给人「跳着找」的印象。
- 态度端正、表述干脆;资面阶段不必急着谈条件。
稳定性求职意向
第 2 轮:技术一面
面试形式与时长
- 轮次名称:技术一面
- 面试类型:技术面
- 本轮题量:3 题
重点考查维度
- 算法与数据结构 —— 本组 1 道题
- 基础八股 —— 本组 1 道题
- 项目经历 —— 本组 1 道题
- 先手撕代码、再进入面谈,手撕结束后需要向面试官讲思路与用例测试情况;本轮时长不固定,通常不超过 30 分钟。八股与项目问题大致各占一半,整体偏广度。
- 看编码手感与表达:能否把思路和测试用例讲清楚;考察知识面的广度,以及能否把原理落到项目场景里;快速判断项目的真实性与个人贡献度
面试真题与参考答案
Q1 手撕题(难度低于机考,写完后需讲思路与用例测试情况)
算法与数据结构 · 手撕代码 考察重点看编码手感与表达:能否把思路和测试用例讲清楚
参考答案
流程是「先写后讲」,讲解按四步走:
- 复述题意与边界:输入输出格式、数据范围、空值与重复元素怎么处理。
- 思路与复杂度:说明为什么选这个算法,给出时间 / 空间复杂度。
- 走用例:一个正常用例 + 一个边界用例(空数组、单元素、全相同、极大值),交代期望输出。
- 主动说取舍:有没有更优解法、当前实现有什么局限。
写完不要等面试官发问,主动把上面四步讲完。
手撕复杂度分析
Q2 常规八股文(一面偏广度)
基础八股 提问形式维度式提问考察重点考察知识面的广度,以及能否把原理落到项目场景里
参考答案
一面的八股以广度为主,语言、计算机基础到中间件都会抽。
- JavaScript / TypeScript:事件循环与微任务宏任务的执行顺序、闭包、原型链、this 绑定、类型系统的取舍。
- 计算机基础:进程与线程、锁、TCP 三次握手与四次挥手。
- 中间件与数据库:缓存设计、索引、事务隔离级别的基本原理。
- 答题结构建议:先给结论 → 再说原理 → 最后补一个项目里的使用场景。只记得名词的知识点,坦白说明掌握范围,不要编造细节。
JavaScript计算机基础
Q3 项目经历问题(一面偏广度,不会深挖到底)
项目经历 提问形式开放讨论考察重点快速判断项目的真实性与个人贡献度
参考答案
一面问项目偏「扫一遍」,二面才会深挖,所以一面要能快速讲清重点。
- 每个项目控制在 90 秒:一句话说清业务目标 → 你负责的模块 → 一个具体难点 → 可核实的结果(量级、耗时、缺陷率等)。
- 常见追问:这个模块为什么这么拆、如果流量再涨 10 倍会先动哪里、当时有没有更简单的方案。
追问链(3 条)
- 这个模块为什么这么拆
- 流量再涨 10 倍会先动哪里
- 当时有没有更简单的方案
项目叙述
第 3 轮:技术二面
面试形式与时长
- 轮次名称:技术二面
- 面试类型:技术面
- 本轮题量:5 题
重点考查维度
- 项目经历 —— 本组 2 道题
- 软素质 —— 本组 1 道题
- 算法与数据结构 —— 本组 1 道题
- 基础八股 —— 本组 1 道题
- 先面谈后手撕。八股与项目问题都有,但项目问题比重明显更高,重点项目与「困难及如何克服」两题问得最久;手撕难度与一面持平。
- 看技术深度与判断力:选型理由、落地细节、取舍依据;考察独立解决问题的能力与复盘意识;看协作意识,同时验证项目里的分工是否与你描述一致
面试真题与参考答案
Q1 重点项目介绍:从技术选型到落地完整讲一遍
项目经历 考察重点看技术深度与判断力:选型理由、落地细节、取舍依据
参考答案
按五段式讲,不要跳步:
- 背景与目标:业务问题是什么,成功标准怎么定义(可量化)。
- 技术选型:候选方案有哪些,对比维度(性能、开发成本、可维护性、团队熟悉度),为什么选 A 不选 B。
- 落地细节:你负责的部分,模块划分与关键接口,最容易出错的地方在哪里。
- 难点与取舍:一个真实的技术难点及处理方式,说明当时放弃了什么。
- 结果:用指标收尾,并说明指标怎么测的。
讲的时候给出架构或数据流,面试官会顺着图追问。
追问链(3 条)
- 为什么选这个方案,还有哪些备选
- 落地过程中最关键的一次改动
- 如果重做会改哪里
技术选型项目深挖
Q2 工作中遇到的困难以及如何克服
项目经历 考察重点考察独立解决问题的能力与复盘意识
参考答案
用「现象 → 定位 → 方案 → 结果 → 复盘」五步回答:
- 困难是什么、影响面多大(要有量级,不要只说「很麻烦」)。
- 怎么定位:用了什么手段(日志、埋点、二分定位、最小复现),排除了哪些可能。
- 怎么解决:方案与取舍,为什么不用另一个方案。
- 结果:量化改善。
- 复盘:沉淀成了什么机制(监控、规范、工具),避免再犯。
面试官关心的是排查路径是否合理,而不是困难本身多戏剧化。
追问链(2 条)
- 怎么确认是这个问题导致的
- 有没有影响到线上其他模块
问题排查复盘
Q3 组内协作中遇到的问题(可以简单带过)
软素质 · 协作 提问形式维度式提问考察重点看协作意识,同时验证项目里的分工是否与你描述一致
参考答案
可以简短,但要给出「问题 → 处理 → 结果」的闭环:
- 常见场景:接口约定反复变更、联调排期冲突、代码评审意见分歧。
- 处理方式:把口头约定文档化、用接口契约与 mock 解耦、用数据说话而不是争论偏好。
- 结果:交付时间、返工次数等可以量化的改善。
回答时避免把矛头指向具体同事,重点放在你推动解决问题的动作上。
协作沟通
Q4 手撕代码:题目要求不清晰时的现场处理
算法与数据结构 · 手撕代码 考察重点看遇到模糊需求时的沟通与取舍能力
参考答案
题目描述不清是常见情况,处理顺序:
- 当场确认题意:输入输出格式、约束、边界,复述一遍请面试官确认。
- 若确实存在多种理解,先说明两种理解分别怎么做,选一种实现,另一种留到口述。
- 写不完不要硬撑:把已有思路、复杂度、剩余步骤讲清楚,主动问能不能口述收尾。
本案的教训是:需要自己主动向面试官提问,而不是按自己的理解同时写两个方案,结果两个都没落地。
题目要求不清晰时写出了两个方案,第二个未完成,最终以口述思路收尾。
题意确认多方案
Q5 八股文(二面仍有,但比重低于项目)
基础八股 提问形式维度式提问考察重点确认基础没有明显短板,考察知识点与项目经验的关联
参考答案
二面八股更偏「用」而不是「背」,面试官更想听你在项目里怎么用、踩过什么坑。
准备方式:把 JS / TS、浏览器与网络、数据库与缓存的常见考点各配一个项目实例;被问到不会的,说明自己的掌握边界,并给出获取答案的路径(查文档、压测验证)比硬编答案更安全。
八股
第 4 轮:主管面
面试形式与时长
- 轮次名称:主管面
- 面试类型:主管面
- 本轮题量:5 题
重点考查维度
- 机器学习 / AI —— 本组 3 道题
- 背景与动机 —— 本组 2 道题
- 问题不局限于技术,主要围绕个人工作经历展开,从项目到工作流到协作都有涉及,也包含较多 AI 相关话题;不必紧张,重点看态度与求职意愿。
- 看工作方式、成熟度与团队契合度;看是否真的把 AI 用进了日常工作,而不是跟风表态;看技术视野与独立思考,而非复述新闻
面试真题与参考答案
Q1 个人工作经历:从项目到工作流到协作
背景与动机
提问形式:开放讨论
考察重点:看工作方式、成熟度与团队契合度
参考答案
主管面问经历不是查技术,而是看你的工作方式,准备一条主线:
- 做过什么业务、你在其中扮演什么角色(独立负责 / 协作 / 带人)。
- 工作流:需求怎么接、方案怎么定、怎么保证质量与进度。
- 协作:和产品、测试、上下游怎么配合,冲突怎么解决。
- 按时间线讲,每个阶段配一个具体例子,不要跳到技术细节里。
工作方式
Q2 AI 的使用情况
机器学习 / AI
考察重点:看是否真的把 AI 用进了日常工作,而不是跟风表态
参考答案
回答要具体到工具和场景:
- 日常用哪些(代码补全、单测生成、Review 辅助、文档整理),分别提升了哪个环节的效率。
- 边界:哪些场景坚持自己写(安全敏感、核心逻辑),为什么。
- 量化:例如单测覆盖率提升、联调时间缩短。
- 避免只说「经常用 AI 提效」这种没有场景的空话。
AI 工具
Q3 对 AI 的展望
机器学习 / AI
提问形式:开放讨论
考察重点:看技术视野与独立思考,而非复述新闻
参考答案
给判断 + 依据,不要只喊趋势:
- 判断:模型能力会继续下沉到工程工具链,个人竞争力的重心从「会写代码」转向「会拆解问题与验证结果」。
- 依据:结合自己使用 AI 工具后的实际变化(交付变快还是变慢、返工点在哪)。
- 落到岗位:说明这与应聘岗位的关联,体现你是认真想过这件事的。
行业认知
Q4 是否对 AI 工作流有过 contribute
机器学习 / AI
考察重点:看主动性与产出意识
参考答案
contribute 不限于公司内部:
- 内部:把提示词 / 工作流沉淀成团队可复用的模板、脚本或知识库。
- 外部:给开源项目提 PR、写工具、写文档、参与社区答疑。
- 表达方式:做了什么 → 谁在用 → 带来了什么可衡量的改善。
- 没有就如实说不,并给出接下来打算怎么参与,别硬凑经历。
AI 工作流开源贡献
Q5 空窗期 / 跳槽原因与职业规划
背景与动机
考察重点:判断稳定性与求职动机的真实性
参考答案
这一题几乎必问,口径要提前定好:
- 离职原因:指向客观与主动(业务调整、方向不匹配、想换技术赛道),不要抱怨前公司或同事。
- 空窗 5 个月:说明这段时间做了什么(技术沉淀、项目、家庭安排),并强调现在可以长期稳定投入。
- 职业规划:3 年内的技术方向与岗位匹配,落到「为什么是这家公司、为什么是这个岗位」。
- 表达意向强烈,但不要过度承诺。
空窗期职业规划
备考提示
备考阶段,我发现很多同学容易陷入「不知道从哪准备」的困境。机会永远留给有准备的人,希望读到这篇文章的每一位同学都能拿到心仪的 offer。
以上内容整理自学员和应届同学反馈的真实面经,结合华为技术有限公司的最新考情整理,仅供参考学习。祝各位求职者顺利拿到心仪 offer!