我走了 Apple 的 DS 面试,岗位是 app analytics 团队里的 senior data scientist。写一下是因为 Apple 的 DS loop 比 SWE loop 资料少很多,而且形式让我挺意外的。
轮数: 一共 5 轮。Recruiter screen、HM intro、technical(SQL + stats)、case study、cross-functional panel。
SQL 轮(60 分钟): 真的很难。不是 FAANG-medium-SQL 那种难,更像「给你一个复杂 schema,有多条 join 路径,你得自己判断哪条才对」的难。schema 是多表的(4 张表)。题目包括: 一个 window function 题,用 LAG() 找用户 session 的间隔 一个 self-join,找在 7 天内先做了 event A 再做 event B 的用户 一个关于 aggregate 里正确处理 NULL 的题
你在共享编辑器里写。他们会看你怎么想。动手前先把 join 思路讲清楚。
统计轮(同一个 60 分钟 block 的一部分): SQL 结束后切到 stats。我被问到: 解释 p-value 和 confidence interval 的区别(他们要直觉解释,不要教科书) 我们跑了一个 A/B test,结果在 p=0.03 时显著。在宣布赢之前你还想知道什么?(这是个坑。要说:sample size、测试时长、有没有 novelty effect、primary metric 是否变化,还是在 p-hacking secondary metrics) 讲讲如果你的实验 statistical power 很低,你会怎么处理
Case study 轮(60 分钟): 给了一个产品指标下滑的场景。他们要一个完整的排查框架:先看哪些指标、怎么做数据分层、会提出哪些假设以及怎么验证、最后要怎么跟团队呈现。这轮感觉非常贴近实际工作。
他们看重什么: intellectual honesty。我在一个 stats 问题上说过一次「我不知道」,然后把推理过程大声讲出来。他们似乎能接受。硬装懂反而更糟。
这个 org 里 senior DS 的 comp:我被告知 base band 大概是 $195-230k,另外还有 RSUs。最终 offer 是 $205k base,SF 岗。