我投了 Canva 的 mid-senior frontend 岗,刚过 OA + 第一轮 coding,把我看到的分享出来,希望能帮到别人。
OA。 Canva 会先发一个 HackerRank 风格的 online assessment,一般两题,约 90 分钟。我遇到了一道字符串处理题(中等难度,大概 Leetcode medium 区间)和一道更偏图遍历的题,但包装成了接近 design-canvas 的问题。包装挺可爱,但本质就是标准 BFS/DFS。别被产品化的描述带偏。
时间限制挺合理。我大概提前 25 分钟做完。关键是两题都要过,按得分展示来看,partial credit 似乎很有限。
live coding 轮。 OA 之后是 45 分钟视频通话,对面一个工程师。语言你自己选,他们挺灵活。我用 JavaScript,因为我投的是 frontend,想展示更地道的 JS 写法。他们接受。
给了一题,比 OA 难。先有一个很干净的暴力解,10 分钟左右能写出来,然后会 push 你优化。整段对话都在讲优化路径:瓶颈是什么,用什么数据结构解决,新方案的时间复杂度是多少。
他们没考什么。 针对 frontend 岗,这轮 coding 没问 DOM 或浏览器相关问题。也没有「how does the event loop work(event loop 是怎么工作的)」这种问题。那些在另一轮里出现(更偏架构)。
难度对标。 我会把 OA 定位在 Leetcode medium。live coding 在 medium-hard。他们不像某些 FAANG 公司那样测试 Leetcode hard 刷题文化。说实话,这个难度更贴近实际工作。
OA 之后总共还有三轮:coding、system design、以及 behavioral/hiring manager 结合。等我走完再发后面的。