2 月做了 lululemon 的 online assessment,岗位是 mid-senior backend。一直想写个总结。
先说:这不是标准的 HackerRank 刷题。没有限时算法题,也没有那种边界条件特别重的 test case。他们发了一个 github repo,里面是部分实现和一套 failing tests,你有 72 小时把 tests 跑过,并且还要自己补充测试。
题目领域大概是:一个简化的 checkout service,带 loyalty points 的计算系统。有一些类是 stub 好的,有 README 解释业务规则,还有大概 15 个预写测试,覆盖基本 happy path。
这个 assessment 实际在考什么: 快速读懂已有代码,理解原本的设计意图 正确实现业务逻辑(边界点在业务规则里,不是那种刻意的算法陷阱) 写测试,这不是可选项。他们会看测试质量。 代码组织:命名、函数大小、你有没有引入不必要的复杂度
语言不限,我用的是 Python。take-home 里有备注说会在 debrief 里聊我的选择,确实聊了。
难度: 老实说中等。如果你做过真实的产品代码,基本没问题。如果你只刷 leetcode,从来没写过可维护、可测试的真实系统代码,你会比预期更吃力。
时间: 大多数人可能 4-5 小时能做得不错。我花了大概 7 小时,因为我把重构搞得太工程化了。别这样。做一个简单能跑、测试覆盖好的版本就行。
debrief: 有一个 30 分钟的 debrief call,他们会带着你过一遍提交内容并提问。他们问我为什么把 loyalty calculation 按那种结构来写。准备好把你的选择用嘴讲清楚。
结论:如果你是那种工作里写真实代码的好工程师,这种形式很吃香。如果你纯面试刷题,这个 format 可能会让你措手不及,因为它没有一个单一「trick」能解。