几个月前我走完了 Reddit 的 DS loop,投的是 senior data scientist 岗位。流程很清晰,我觉得题的质量也确实挺高。下面是我遇到的情况。
流程(virtual,总共 5 轮):
SQL(60 分钟)。 两道题。第一道中等难度:filter、aggregate、window function。第二道更难:需要 self-join 加一些 conditional logic,用来回答一个关于用户留存的行为问题。你在他们提供的 live SQL editor 里写,他们能看到你的屏幕。
关键点:别只写 query。先把你的逻辑讲清楚,说你要检查什么。并且在你说「我写完了」之前,仔细看一下输出。我第二个 query 有行重复的问题,就是靠检查 result set 发现的,面试官还专门记了正向反馈。
统计和概率(45 分钟)。 两位面试官。我碰到的主题:A/B test design(他们给了一个测试新 ranking signal 的场景,让我从零设计实验)、Bayesian vs. frequentist 简单带过、以及一个在 community metric 语境下的 Simpson's paradox。没什么深数学,但你概念要很清楚,而且要能不用白板讲明白。
产品 case(45 分钟)。 'Reddit is seeing a decline in average comment length on a major subreddit. walk me through how you'd diagnose this.'(Reddit 在一个主要 subreddit 上的平均评论长度在下降,带我走一遍你会怎么排查。)经典 DS 诊断题。先做数据质量检查,再做假设生成,然后按可能性和可验证性给假设排优先级并设计测试。他们想看的是结构化思考,不是立刻灵光一现。
ML/modeling(45 分钟,senior 专向)。 他们问了 ranking models、推荐系统的 feature engineering、以及我会怎么处理 cold-start。这很相关,因为 Reddit 的核心产品基本就是一个 ranking 问题。
behavioral。 标准 STAR。记得带 impact 数字。
整体感觉: SQL 和产品 case 是筛选轮。如果这两轮很强,后面更像对话。到 2026 年初为止,senior 在 SF 的 DS comp 跟市场价比挺有竞争力。