刚做完 OA 和两轮 coding(PepsiCo 的 software engineer 岗位,digital/ecommerce 组织)。我把完整拆解写下来,因为我当时搜的时候几乎没有任何最新信息。
Online Assessment: HackerRank。两道题,你一旦开始就只有 45 分钟(但你有 72 小时选择什么时候开始)。coding 过程中没有 webcam proctoring。我拿到的是: 一道中等难度 sliding window(带约束的 substring) 一道 medium 的树遍历(level-order 带变化)
两道题都有多个可见测试和一些隐藏测试。我可见的都过了,第二题挂了一个隐藏(大概率是 empty tree 的 edge case)。依然进了下一轮。所以他们不要求 100%。
Tips:Python 没问题,我就是用的 Python。先读 constraints。题不难,只要你刷过几周 LeetCode medium,但也不算轻松。别跳过 edge cases。
Coding Round 1(onsite 里,50 min): 先来一个 warm-up easy(反转链表变体,大概 10 min 搞定),然后进入一道 medium graph:在一些约束下找 node 间的 minimum cost path。我用 BFS + priority queue。面试官很投入,会追问复杂度。互动氛围挺好。
Coding Round 2(第二天 onsite,50 min): medium-hard。dynamic programming:分割数组以最大化某个函数。我先暴力,然后讲清楚为什么慢,再用 memoization 优化。他们看起来很满意我把思考路径讲出来,哪怕我最后没在时间内写出完全最优解。
总体难度:扎实的 LeetCode medium,偶尔摸到 medium-hard。不是 FAANG-hard。你不需要把 hard 题刷爆才过。大声思考和复杂度推理很关键。
还有一点:面试官几乎都会问「what would you test here (你会在这里怎么做测试)」或「what edge cases worry you. (哪些边界情况会让你担心)」。我认识的几个人都被这点打了个措手不及。如果你投的是 SWE 不是 QA,也建议准备这类问题。