几周前刚走完完整 loop。想把 coding 轮的真实信息写出来,因为现有帖子都挺含糊。
对 senior 的 SWE 来说,没有单独的异步 online assessment(OA)。recruiter screen 之后直接进入 live coding。你会有两场分开的 coding session,每场 45-60 分钟,每场一个面试官。
题目大概长这样:
Round 1:一道 medium-hard 的算法题。不是冷门图论,更像是:给一些系统约束,写一个函数,在各种 edge case 下正确处理输入。最优解很干净,但需要你推到位。我会放在 leetcode medium-hard,偏 medium,如果你平时练得多的话。
Round 2:更偏应用,像一个小型实现任务。给你一个简化版需求说明(我刻意说得模糊点),让你做一个可运行的模块。这轮不太考巧妙算法,更考你能否在时间压力下写出干净、正确、可维护的代码。
语言: 我用的是 Python。面试官都 OK。我也听说 Go 和 Rust 也行。他们不会强制你用某种语言。
他们实际在评什么:
他们很看重我如何沟通思路。我先用几分钟复述题目、确认 edge case、边想边说。两位面试官都很参与这个过程,没有人催我立刻开始写代码。
有一位面试官在我走到一个次优路径时给了很明确的 hint。那种感觉是对方在帮你成功,而不是看你失败。
难度结论: 比平均 FAANG phone screen 更难,但又比最难的 leetcode hard 轻一点。如果你 medium 题能稳定做出来,也做过一些 hard,就没问题。别只刷 easy 就去。