上个月走了 Booking.com 的 coding 轮,包括自动化的 online assessment 和 live technical screen。分享一下,因为我几乎找不到 OA 的细节。
Online assessment(OA): recruiter screen 之后通过 HackerRank 链接邀请。两道题,总共 90 分钟。两题都是算法题,不是 system design 或 SQL。我遇到一道 array 操作(本质是 sliding window 的变体),另一道是 tree(找满足特定条件的路径)。两题感觉都是 leetcode 的 medium。有人说拿到 hard,但我没遇到。可能因职位或批次不同。
我这次没有视频监考,就是浏览器里写代码。语言随意选。我用的是 Python。
Live coding rounds(完整 loop 里有两轮): 和 OA 感觉不一样,更偏对话式。两位面试官都是先把题读一遍,然后明确说「在你写任何东西之前,先把你的思路讲给我听。」我觉得他们更在意你的解题方式,而不是你能不能最快写出最优解。
第一轮:string manipulation,挺标准,不刁钻。我大概 20 分钟写完,剩下时间在讲 edge case 和一个 follow-up 变体。
第二轮:graph 题,基本是带约束的最短路径。我用 BFS 的思路做,并解释了原因。他们会温和 push back,问有没有别的思路。我简单讲了 Dijkstra,然后讨论 tradeoff。第二种没写代码,只是推演。
我会建议怎么准备:数组、字符串、树、图这几类,刷 60-80 道 medium。按我的观察,coding 轮不会出 hard。live 轮特别奖励清晰的口头推理。如果你一直不说话只打字,他们会让你解释。
我在 coding 轮里被塞进来的 behavioral 题(对,真的有一题夹在里面):「Tell me about a time you caught a bug in production. What did you do?(讲讲你在生产环境发现一个 bug 的经历。你做了什么?)」典型的 Booking structured behavioral。
如果你想了解任意一轮更多细节,我也愿意补充。