刚做完 Atlassian 的 online assessment,然后也做了正式 loop 里的 coding round。跟我预期不太一样,所以把完整情况分享出来。
online assessment (OA): 在 HackerRank 上。两道 coding 题,总共 90 分钟。难度感觉是 leetcode medium。一题是字符串操作(比如解析结构化 log 格式),另一题是图遍历。没有很 DP 重的东西,也没有 segment tree。如果你能在时间压力下稳定做 medium,问题不大。
正式 coding round(loop 内): 这轮更有意思。一小时,一道题,一个面试官。我那题是:给定一串 events,按 session 分组(session = 同一用户 30 分钟内的事件算同一个 session)。经典的 sliding window / 区间合并类型题。
they cared a lot about: 先从 brute-force 思路开始讲,讲清楚思考过程,再去写优化版本。 code quality。他们真的说了「write production-quality code, not pseudocode.」(写生产级代码,不要伪代码)。边界情况、清晰的变量名、稍微一点错误处理。 testing。我写完解法后走了一遍 test case,他们还问如果要上线你还会测什么。
我觉得题是 medium,但门槛在代码清晰度上不亚于算法本身。我是 frontend dev,而且工作里经常做 event-stream 处理,所以这题我反而很顺。但对 testing 的强调确实让我意外。
python vs. java vs. JS: 听说面试官对语言都 OK。我用的是 python。一个月前走过的朋友用 java 也没问题。
结论:刷 medium 的时候重点练 interval、sliding window、字符串解析。别跳过写干净代码,因为面试官真的会盯这个。