今年早些时候我走了 NVIDIA 的 coding / OA 流程,面的是 senior software engineer 的 CUDA compiler team。把形式写清楚点,因为我准备时怎么都找不到一份靠谱的描述。
我这条线没有单独的 HackerRank/Codility OA。coding 是在面试里做的。recruiter 说形式因 team 而异:有的 team 在 technical screen 前会给 take-home,有的直接跳到 live coding。我这边全是 live。
Technical phone screen:45 分钟,和 team 里的 senior SWE 一对一。1 道中等难度题:图遍历变体。不阴,但面试官让我把边界情况讲透,然后在我给出初版解法后,又让我优化空间复杂度。第二部分把我打了个措手不及。复杂度计算要熟。
Onsite coding(我这条线两轮): Round 1:动态规划,medium-hard。我觉得已经到 LeetCode hard 的范围了。不是那种著名题,但属于背包变体同一类。他们要你把代码写干净,不是写伪代码。 Round 2:系统/算法混合题。一开始是个直接的实现题,但逐步变成“怎么扩展”的设计讨论。感觉像把一个软 system design 轮伪装成 coding 题。
语言选择:NVIDIA(GPU 方向)C++ 很常见,但我用 Python 也没人介意。有个面试官明确说他们更看重解题能力而不是语言。话虽如此,太小众的语言还是别用。
总体难度:比 Google phone screen 难,差不多对标 Meta E5 onsite coding。以我经验,NVIDIA 的面试官给 hint 的节奏没有 Meta 或 Google 那么“职业”。卡住了就要主动问澄清问题。
不需要买 LC premium 订阅,但这场之前我会重点刷 graphs、trees 和 DP。