说实话,Jane Street 是我准备最久、也最有挑战感的一次面试。和传统科技公司不太一样,这家金融科技公司里有不少是数学、物理、计算机博士,甚至还有直接从学术界转型的 researcher。整个面试下来,我最大的感受就是——题目非常硬核、思维非常深入、节奏非常快,好在有Programhelp 全程语音助攻,才能顺利 hold 住每一轮。

面试流程概览
整体流程共三关:
- 申请审核:投递简历后大概一周左右就收到面试邀请。
- 电话面试(2-3轮):每轮大概 30-60 分钟,主要是技术脑筋急转弯题 + 模型类题目。
- 全天 VO(4-6轮):包括 live coding、概率推理、trading strategy 设计等,极度烧脑。
第一轮:概率 + 策略题
第一题一上来就让我措手不及(幸好语音助攻及时提醒了思路):
“你有一个 20 面骰子,数字从 1 到 20,你可以 roll 最多 100 次,每次可以选择 roll 继续,或者 take 当前数字作为收益。请设计一个策略最大化期望收益。”
我一开始说设定 threshold,比如 15 以上就 take,但面试官立刻追问:“为什么是 15?你怎么算的?”
这时候 Programhelp 的语音辅助帮我及时提示了计算期望值和平均 roll 次数的平衡。我现场算了一下:
- 设 threshold 为 T,期望收益是 T~20 的平均;
- 但 roll 达到这个范围的概率是 (21−T)/20;
- 综合期望 = [T+20]/2 × (21−T)/20
我试了一些 T 的值,发现 T=11 时期望收益最高,于是得出策略:当数字 ≥11 时 take,否则继续 roll。
面试官满意后又变换规则:
“现在每次你 take 之后骰子会自动重新 roll。策略要怎么变?”
这就变成了一个多轮博弈问题。我根据语音提醒,快速重设了期望的计算方式,把每一次 roll + take 的组合看作独立事件,重新得出 threshold 约为 13。
再下一题就更硬核了:
“你和赌场在博弈:你可以选择 take,赌场可以选择重新 roll。请分析均衡策略。”
这就是纯博弈论了。我借助语音引导快速搭建了 payoff matrix,根据 Nash equilibrium 思路,分析了我和赌场的收益均衡点,最后估算出 threshold 应在 10 附近。
第二轮:Market Making + Python 策略实现
题目相对工程化一点:
“你是 market maker,需要根据历史数据给出买卖报价,同时控制 inventory 风险。”
我的第一反应是:volatility 越大,spread 要拉宽;库存偏一边,就要拉高该方向的价格。于是用 Python 快速写了一个逻辑 demo(语音提醒了关键词 “mean reversion” 和 inventory-adjusted spread):
def calculate_quotes(current_price, inventory, volatility, max_inventory):
base_spread = volatility * 2
inventory_adjustment = (inventory / max_inventory) * 0.01
bid = current_price - base_spread/2 - inventory_adjustment
ask = current_price + base_spread/2 - inventory_adjustment
return bid, ask
虽然代码不是最终版本,但逻辑表达清楚就过了。之后还讨论了怎么动态调整参数、极端市场情况下的策略调整等。
最终轮:数学深度 + 高频交易建模
量化 researcher 上场,题目立马拉满难度。
Bayesian 推断题
“两个盒子,一个有两个白球,一个有一白一黑,你随机选一个,抽到一个白球。这个球来自哪个盒子的概率是多少?”
这是典型贝叶斯题,我当场写出:
- P(两白盒 | 白球) = P(白 | 两白盒) × P(两白盒) / P(白)
- = (1 × 0.5) / (0.5×1 + 0.5×0.5) = 2/3
Order Book 数据结构设计题
“设计一个支持插入、删除、查询最优价格的 order book。”
我选择用 max heap + min heap,分别维护 bid 和 ask,再用 hashmap 记录价格–数量对应关系,插删 O(log n),查询 O(1)。分析完复杂度后还讨论了 HFT 环境下如何优化,包括内存池、时间戳一致性等。
Statistical Arbitrage 策略题
“两个股票出现价格偏离,你怎么捕捉这个套利机会?”
语音助攻提前提示了关键概念“cointegration”。我的完整流程是:
- 用历史数据检验是否协整;
- 设定 entry / exit threshold;
- 考虑 transaction cost 和 slippage;
- 设置风控参数:position sizing、stop loss、drawdown 限制。
行为面试也不简单
最后几轮是标准 behavioral:
为什么转做 quant?
描述一次高压下做决策的经历?
有没有遇过特别复杂的问题,怎么解决的?
我的回答结合了我实习项目经历(也提前在 Programhelp 模拟里过了一遍),逻辑清晰 + 真实反思,效果不错。
总结
Jane Street 的面试真的不简单,尤其是概率、策略设计、数据结构和博弈论题目,强度远超大部分科技公司。好在我准备得够久 + Programhelp 的 VO 语音助攻全程陪跑,从建模思路到面试节奏都给了我很大帮助。
如果你也打算冲击 quant / trading / algo 方向,Jane Street 是不能错过的挑战之一!