刚在上个月跑完 Zendesk 的 SDET/QA 职位 loop。虽然跟纯 SWE 不一样,但 coding 部分重叠度挺高,应该也能给更多人参考。
online assessment(OA): HackerRank 上两道 coding 题,90 分钟。难度稳稳的中等,其中一道偏 medium-hard。我不觉得有 LC hard。一题是图遍历的变体(BFS,找连通分量),一题是字符串处理。我在时间内一题先暴力解,另一题做了优化。
纯 SWE 的话,我朋友说他拿到的也类似:两道 medium,一道数组/hash map,一道树。他大概 50 分钟做完。OA 通过更像是进 phone screen 的门槛,不是用来拉开差距的。
技术电话面: 一通 45 分钟,跟团队里的 SWE。共享编辑器里现场写(CoderPad)。一道题,中等复杂度。我那题是数据限流(sliding window 思路)。他说这很常见。他们想看你能写出干净的代码、把思路讲出来,而且至少提一下时间/空间复杂度,就算他们不强求极限优化。
现场 coding 轮: 两场各 45 分钟。两场都更偏应用场景而不是纯算法。其中一场很像真实工作场景:解析并查询结构化数据,有点像 support 工具链里会遇到的问题。另一场更接近经典 LC:two-pointer 或 sliding window 之类(不是我那场,但跟最近面过的两个人确认过)。
总体难度评价: 如果你对 LC medium 很熟,Zendesk 的 coding loop 不会让你意外。不是 Google。但也不简单。他们更在意你能写出干净、可读的代码并解释你的选择,而不是你能不能用破纪录的速度秒出难题。注释、变量名、「我想一下这个 edge case」这些都很重要。
另外:他们工程侧主要用 Python 和 JavaScript,所以用这些语言写会更贴近面试官的阅读习惯。用 Java 也可以,但你可能更少遇到那种「哦这个写得真不错」的瞬间。