我几个月前走完了 Renaissance Technologies 的 coding 面试流程,尤其是 online assessment 这块把我打了个措手不及。记录一下,因为这个形式不标准。
OA 本体: 限时。按你怎么算是 3-4 小时。多道题,难度逐步上升。和常见 leetcode 风格 OA 不一样的点: 题是原创的。我后来对照过,在 leetcode 或 codeforces 都找不到原题。 有一部分是纯算法/DS:树、图、动态规划。这部分像偏 hard 的 leetcode。 另一部分偏数学:概率、组合,还有一些数论。如果你大学之后没复习过这些,很容易栽。 似乎很看代码质量。有一题先让你写解法,然后明确追问 edge cases。感觉他们会读你写的东西,不只是看过不过测试。
coding rounds(on-site): 也是偏算法。我 onsite 两轮 coding,一轮更纯 DS/algo,一轮融合了更贴近系统的实际问题(如何高效处理数据流)。两轮都是我写出能跑的东西之后继续追问。追问才是难点。比如“what if the input size is 10x(如果输入规模变成 10 倍呢)”或者“what if this is distributed(如果这是分布式的呢)”,他们不一定要你重写所有代码,而是要你讲推理。
语言:他们很灵活。python 没问题。如果你想更出彩,C++ 会加分,因为他们在意底层性能。我用 python 也顺利过了。
整体难度:比典型 FAANG coding 更难。不是那种“出怪题”的难,而是“深度很真实”的难。如果你 LC hard-ready,算法部分问题不大。数学部分需要专门准备。
面试官都挺好,不会刻意刁难。但门槛很高,在这儿装不出深度。