几周前我在还在职的情况下做了 IBM 的 online assessment 加 coding 轮,所以基本都是午休时间挤出来的。感觉应该把实际形式写一下,因为我能找到的大部分帖子还停留在 2022。
online assessment(OA): HackerRank 上两道 coding。限时,总共 90 分钟。按一个“善意尺度”来说难度是 medium;如果你一直只刷 easy,可能会觉得 medium-hard。一道偏图(BFS/DFS 就够了,不花),另一道是字符串处理,有些 unicode/特殊字符的边界情况我差点漏掉。OA 里没有 system design。
OA 还有一个更短的「cognitive + personality」部分,选择题。我没听说有人挂在这部分,所以别想太多。
live coding round(过了 OA 才有): 45 分钟电话,一位面试官,也在 HackerRank。题目大概在 LeetCode medium 和 easy-medium 之间。面试官还行,中间打断了几次问澄清问题,感觉更像协作而不是找茬。
有件事没人告诉你:IBM 并不要求你给出最优复杂度证明。我当时说「这个是 O(n log n),用 hash map 可以做到 O(n),但我想先把可用方案写出来」,面试官回我说「完全没问题」。他们更在意你的代码能不能跑起来,而不是你能不能白板证明。
结论: 比 FAANG 的 coding bar 明显低一档。只要你能稳定做出 medium 基本就没问题。别在算法上过度准备,结果在 behavioral 上准备不足,因为 IBM 在后面的轮次会问很多 behavioral。