6月3号下午,我顺利结束了华为OD AI岗的最后一轮HR面。走出面试间的时候,心里其实没底,因为当天一起面试的其他候选人在技术面都被追问得很深,甚至有人聊到数据库驱动源码。三天后HR发来消息说通过,进入定级审批,我才终于松了口气。
从3月初决定投华为OD的AI岗,到6月3号完成最后一轮面试,前后整整三个月。这中间经历了简历筛选、机试、综测、两轮技术面、HR面,每一步都有人被刷。我同期拉了一个备考小群,里面十几个人,最后走到审批环节的不到一半。今天这篇就把整个过程摊开讲一遍,包括机试怎么准备、AI方向会问什么、华为生态技术栈有哪些坑、哪些问题差点让我当场挂掉。如果你也在准备华为OD的AI岗,或者打算挑战大厂AI方向的面试,这篇应该能帮你少走不少弯路。
1. 岗位认知:华为OD AI岗到底在做什么
1.1 这份岗位的实际工作内容
华为OD(Outsourcing Developer)很多人叫它“外包研发”,但实际形式和传统外包差别挺大。合同签在人力公司,日常工作却在华为的项目组里,和正式员工一起参加迭代评审、一起发版、一起值班。AI方向的OD岗,绝大多数落在AI应用落地这一层:大模型平台建设、知识库问答、Agent能力开发、模型服务封装、内部AI工具链优化。
我投的这个岗位是AI应用方向,JD里写得很清楚:负责大模型应用开发、Agent平台能力建设、内部AI工具链优化。后面面试时问的也基本围绕这三块展开。所以如果你准备的方向是纯算法、纯训练岗,那和OD的AI岗不是一回事,OD更多是“把模型用起来”的工程岗,模型训练更多在正式员工的算法团队手里。搞清楚这一点非常重要,备考方向完全不同。
1.2 2026年的整体流程和时间线
我这一批的流程是这样的:简历投递→机试→综测→技术一面→技术二面→HR面→定级审批→Offer。整体周期偏长,从投简历到最终发Offer一般要一个半到两个月,赶上报批节点会更久。
| 时间 | 环节 | 说明 |
|---|---|---|
| 3月上旬 | 投简历 | 走人力公司内推,附上了项目经历和GitHub |
| 3月中旬 | 简历筛选 | 约一周,HR电话确认基本信息和当前薪资 |
| 4月上旬 | 机试 | 邮件通知,双机位在线监考 |
| 4月中旬 | 综测 | 机试通过后当天发性格测评链接 |
| 5月中下旬 | 技术一面、二面 | 两轮间隔约一周,全部线上 |
| 6月3日 | HR面/定级 | 最后一轮,之后进入审批 |
| 6月中旬 | 收到Offer | 审批通过后口头Offer,随后发书面 |
中间和HR沟通时她明确说,2026年的批次基本都换成了新的C卷系统,机试监考升级为双机位,对过程合规要求更高。我后面细说。
1.3 硬性门槛和简历筛选
学历方面,大多数部门要求统招本科以上,部分产品线偏好双一流或硕士,但也不是绝对。我知道的同期候选人里,有普通二本进来的,也有985硕士在机试环节被刷掉的,学历只是入场券,后面的环节更看硬实力。
简历筛选这块,最加分的几类:做过RAG问答系统、自己部署过开源大模型、写过Agent应用、有Java后端项目经验、用过华为云或ModelArts。如果这些都没有,至少要在简历里体现“我在学习AI、我在实践AI”,比如放一个GitHub仓库链接,里面是你自己搭的本地模型对话或向量检索Demo,都比空泛的“熟悉大模型”有说服力。
2. 机试环节:三个月的刷题计划,双机位C卷怎么稳过
2.1 机试考什么:题型、分值、双机位
华为OD机试一般是三道编码题,我这一批的邮件写的是:时长150分钟,第一题100分、第二题200分、第三题300分,总分600。通过线看部门,我们这批的说法是150分到200分就能推进,但想稳一点最好冲着250分以上去。题目是黑盒用例判题,按通过的测试用例比例给分,不是非对即错。
2026年很多批次换成了新的C卷系统,最大的感受是“过程管理”变严了。双机位监考:一台电脑用网页答题,另一台手机放在侧后方45度,全程录像。考前会有监考老师检查机位角度,手机倒下来或者频繁低头看手机都会被警告。我有个同期小伙伴就是因为手机支架倒了,中途被监考老师喊话调整,虽然没算作弊,但心态直接受影响,第二题没写完。所以设备一定要提前架好、提前测试。
2.2 三个月刷题计划表
机试准备我用了整整三个月,平均每天2到3小时,周末翻倍。具体分三个阶段:
| 阶段 | 时间 | 内容 | 每日投入 |
|---|---|---|---|
| 基础期 | 第1个月 | 数组、链表、栈、队列、哈希表、二叉树、基础排序、二分查找 | 2小时 |
| 专项期 | 第2个月 | 字符串处理、滑动窗口、双指针、动态规划、回溯、DFS/BFS、贪心 | 2-3小时 |
| 模拟期 | 第3个月 | 每天一套真题模拟,限时150分钟,复盘错题和超时原因 | 3小时 |
基础期不用贪多,一天一到两道LeetCode简单或中等题,重点是建立“数据结构→算法思路”的映射。专项期是提分关键,尤其是字符串处理和动态规划,华为机试特别喜欢考这两块。模拟期一定要做整卷,不是一道一道刷,而是掐时间做三个小时,练的是考场上的时间分配和心态。我当时找了牛客网上的华为OD真题集,晚些时候又看了CSDN上一位老哥整理的C卷题库目录,它把高频考点按标签归类,我打印了一份贴在桌上,每天睡前扫一遍。
2.3 高频考点与典型题:为什么华为爱考这道题
我整理了C卷和之前各批次的高频考点:
| 考点 | 出现频率 | 典型题型 |
|---|---|---|
| 字符串处理 | 极高 | 字符统计、字符串压缩、子串查找 |
| 滑动窗口/双指针 | 高 | 最长无重复子串、窗口最大值 |
| 动态规划 | 高 | 背包问题、最长子序列、路径问题 |
| 回溯/DFS | 中高 | 排列组合、岛屿数量 |
| 图论/并查集 | 中 | 连通性判断、最小生成树 |
| 排序/二分 | 中 | 合并区间、旋转数组找目标值 |
| 单调栈 | 中低 | 接雨水、下一个更大元素 |
| 贪心 | 中低 | 区间调度、跳跃游戏 |
拿一道高频题“最长无重复字符子串”举例,题目本身不复杂,但它能看出你懂不懂滑动窗口的优化思路。给出一个思路参考:
def length_of_longest_substring(s: str) -> int: left = 0 window = set() max_len = 0 for right, ch in enumerate(s): while ch in window: window.remove(s[left]) left += 1 window.add(ch) max_len = max(max_len, right - left + 1) return max_len这种题的面试价值在于:暴力法是O(n^2),滑动窗口能到O(n)。华为机试对时间复杂度的要求越来越高,C卷很多题目都在考察“能不能从暴力解优化到最优解”。面试官后来说,机试高分的人,往往不是背题背得多的,而是能在考场上快速判断“这道题用什么数据结构”的人。
2.4 机试现场的注意事项和踩坑
机试现场的坑太多了,挑几个最实际的讲:
- 提前一小时进会议室,按邮件要求架好双机位。我用的方案是电脑+手机,手机用支架放在侧后方,角度能同时拍到屏幕和手部即可。
- 在线OJ是标准输入输出,不是力扣那种函数式提交。平时刷题要额外练“用sys.stdin.readline读多行数据”这种写法,否则本地跑得好好的,提交上去0分。
- 拿到题目先全部读一遍,按分值决定做题顺序,不要在第一题死磕超过40分钟。我模拟期有一次在第二题上耗了1小时,第三题没时间做,总分直接少一半。
- 如果遇到断网、设备异常,第一时间截屏并联系监考,不要自己硬扛。考后把提交记录截图存好,万一结果有争议可以作为申诉材料。
- 机试结束后立刻记录每道题的思路和提交结果,方便后续和HR沟通,也方便自己复盘。
3. 综测与技术面:AI Agent、大模型原理、AI编程工具一个都不能少
3.1 综测(性格测评)为什么也会刷人
机试通过后,当天就会收到综测邮件。很多人以为这就是走个过场,但我同行的人里真有人挂在综测。华为OD的综测是性格测评,题量大、每道题有倒计时,而且前后会出现重复或相似题目来检测作答一致性。如果前后矛盾太多,系统直接标记“作答一致性存疑”,后面基本没戏。
我的经验是:不要刻意往“最积极、最完美”的方向选。比如“遇到困难时我会坚持到底”这种题,你选“完全同意”没问题,但如果前面一道类似的题你选了“视情况而定”,后面又选了“完全同意”,系统就可能判定不一致。放松点,按真实想法快速作答,不确定的题目跟着第一直觉走,不要回头改。另外综测结果一般不能申请重测,所以宁可答普通一点,也要保证前后统一。
3.2 技术一面:从项目问到RAG原理,再到手撕算法
技术一面约了45分钟,面试官是部门里的技术骨干,开场没寒暄,直接让我讲“你过去最值得说的一件事”。我讲了之前做的RAG知识库问答项目,然后他就沿着项目一路往深挖。
追问的方向大概有这些:
- 你用的embedding模型是什么?为什么选它?我当时用的是bge-m3,理由是中文效果稳、支持长文本、开源可私有化部署。面试官接着问“和OpenAI的text-embedding-3-small相比呢”,这就得提前准备对比认知。
- 文档切分是固定长度还是语义切分?切错了会有什么后果?固定切分实现简单但会把语义切碎,语义切分效果好但依赖模型能力和算力。如果切分不当,召回率会显著下降。
- 检索结果的相关度阈值怎么定的?阈值太低会混入大量无关片段,太高又会漏掉正确答案,这个值要靠标注集实验调,不能拍脑袋。
- 有没有做Rerank?用的什么模型?我说用了bge-reranker,效果比纯向量召回有明显提升,但延迟会增加,所以线上只在Top-N之后做重排。
项目问完,面试官要求手写一道“反转链表”,要求迭代和递归两种写法都讲一遍。然后是大模型基础:多头注意力的意义是什么?为什么Transformer用LayerNorm而不用BatchNorm?这些问题不是背八股,更看重你是否真正理解背后的原因。我的建议是不要只记结论,要把“为什么”也准备清楚。
3.3 技术二面:系统设计题和AI Agent的底层逻辑
技术二面更像一场系统设计加源码级追问,面试官开门见山:“给你一个企业知识库问答系统,你会怎么设计?”然后围绕方案持续追问了一个小时。这是全流程里技术密度最高的一轮。
我的方案流程是:用户输入问题→权限校验→查询改写→混合检索(向量+BM25)→Rerank→Prompt拼接→大模型生成→流式返回→日志与评估。面试官对每个环节都会追问,尤其是:
- 用户问题有歧义怎么处理?比如“苹果的股票”和“苹果的手机”,需要做意图识别或查询改写,结合上下文消歧。
- 如何防止大模型编造不存在的知识?系统提示词要限定只能基于检索内容回答,检索不到就明确说不知道,同时要求回答里标注引用来源。
- 数据权限怎么做?检索阶段就要过滤用户无权访问的文档,不能等生成后再处理,否则存在越权泄露风险。
- 线上QPS上来后变慢了,怎么优化?