今年早些时候我走完了 microsoft 的 coding loop,投的是 senior backend 岗。分享一下形式和难度,因为 OA 有些变化,很多备考帖还是 2023-2024 的。
online assessment(OA)
如果你通过 portal 投大多数 swe 岗,通常会先收到一个类似 HackerRank 的 OA。两道 coding 题,总共 90 分钟。我的是: 一道 medium 的数组/滑动窗口题 一道 medium-hard 的图 BFS 变体(要追踪 visited states,而且 state 里包含一个额外条件)
OA 没有 system design,也没有 behavioral。纯 coding。难度大概是扎实的 leetcode medium 到 medium-hard。我也没见到所谓的「easy」,听朋友描述他们的 OA 也差不多。
真正 loop 里的 coding 轮
OA 过了就进入 loop。onsite 通常会有一轮专门的 coding(如果你是 senior,有时会两轮)。形式和 OA 不一样:你会在共享编辑器里现场写代码(他们看起来用的是内部工具,不是 coderpad)。面试官能实时看到你敲。
我的题是树遍历加一些额外逻辑。medium 难度。但重点是:他们非常在意你写代码时能不能沟通。我会把思路大声说出来,面试官也会跟着互动。朋友说他们一直沉默只写代码,氛围会很尴尬,就算解对了评分也更低。
我会怎么准备 leetcode mediums。至少刷 80 道再说。 练习边做边说。这点很容易被低估。 复杂度要背得很熟。他们一定会问。 每类题掌握一个干净的解法套路:双指针、BFS/DFS、滑动窗口、dp(简单 knapsack 风格)
以我的经验,他们没 Google 那么执着 leetcode-hard。但他们确实想要干净、可读的代码,不只是能过 test cases 的答案。