整理几份 Waymo 的面经之后,一个很不一样的感受是,这类面试不像典型大厂那样结构清晰、题型固定。相反,它更像是在刻意制造不确定性,通过模糊问题去观察你的建模能力、沟通能力,以及在开放场景下的思考方式。很多人会觉得题目不难但面得很怪,其实这正是 Waymo 的风格。
Coding 表面上覆盖常见题型,比如 run-length encoding、top K、custom sort、二维点集找矩形、稀疏矩阵计算等,但真正的考察重点往往藏在约束和 follow-up 里。比如 run-length encoding 不只是让你 encode,而是让你基于压缩数据实现随机访问函数 Find(p),再进一步扩展到区间查询。这其实是在考你如何在压缩表示上构建索引。custom sort 要求 linear time,意味着你不能用常规排序,而需要利用字符集有限的特性做计数排序。
Problem Solving 的题目经常带有语义模糊的特点。比如电面中让你计算地图节点之间的 ETA,本质是最短路径问题,但不会直接说是 graph。你需要自己识别出这是一个加权图问题,然后选择合适的算法。关键不是写代码,而是你如何把问题抽象成一个数学或计算模型。
System Design 非常不一样,甚至反常规。典型题是如何评估自动驾驶模型。这类题没有明确的输入输出,也没有标准架构图,更像是一场开放讨论。你需要从多个角度去拆这个问题——如何构建测试数据、如何做仿真、如何设计评估指标、如何覆盖长尾场景。这一轮很少画图,更像是在考察你对复杂系统的理解,以及你是否能在不确定条件下建立评估框架。
有些题明显带有真实系统的影子,比如停车场 + 叫车系统。这种问题的重点不在于设计一个完美系统,而在于你是否能识别关键状态、关键流程,以及如何定义性能指标。你是否会考虑等待时间、资源利用率、车辆调度效率,而不是只停留在怎么存数据。
Waymo 的面试体验经常让人困惑——题目不明确、system design 不像 system design、面试官互动较少。这种非结构化的体验其实不是偶然,而是筛选的一部分。他们想看你在陌生、模糊甚至有点混乱的环境下,是否还能建立清晰的思路。