标题: Nubank数据科学家面试真题与SQL编程2026
一句话总结
2026年Nubank数据科学家面试的核心不在SQL语法熟练度,而在于你能否用数据决策穿透业务噪音。大多数候选人把时间花在刷LeetCode风格的SQL题上,结果在真实case中被当场淘汰——不是他们写不出JOIN,而是他们不会定义问题。
真正的筛选机制发生在第二轮业务分析面试中,面试官要的不是“分析用户流失”这种泛泛而谈,而是一个能基于有限数据提出可验证假设、并用SQL快速验证的产品级推演。你之前的准备方向大概率错了。
适合谁看
这篇文章适合三类人:一是正在申请Nubank圣保罗或墨西哥城数据科学家岗位的候选人,尤其是有2-5年经验、具备基本SQL和Python能力、但缺乏拉美金融科技实战背景的工程师;二是已经通过简历筛选、正在准备技术轮的申请者,他们需要知道Nubank的SQL题不是考察你写窗口函数的熟练度,而是看你如何用数据支撑信贷决策;
三是那些误以为“数据科学家=建模专家”的候选人——Nubank的DS在组织架构中直接向产品负责人汇报,他们的核心产出不是AUC提升0.5%,而是推动一个功能上线后DAU增长3%。如果你还在用Kaggle思维准备面试,这篇文章会直接推翻你的认知框架。
面试流程拆解:每一轮的真实考察重点
Nubank数据科学家面试共五轮,总时长7-10天,全程远程。第一轮是30分钟的HR电话筛,重点不是你的背景,而是你对Nubank业务的理解深度。曾有一个候选人说自己“熟悉数字银行”,结果被问“Nubank信用卡的坏账率为什么比巴西行业平均低1.8个百分点”时答不上来——不是他不懂风控,而是他根本没查过Nubank的公开财报。
HR当场标记“缺乏主动研究”,直接淘汰。这轮真正筛掉40%的人,不是因为技术差,而是因为态度懒。
第二轮是60分钟的SQL与产品分析混合面试。题目通常是:“我们发现上个月‘一键借款’功能的点击率下降了15%,请用数据诊断原因。”面试官给一个简化的schema:users、sessions、loanapplications、clicks。大多数候选人立即开始写SQL,比如“SELECT DATE(eventtime), COUNT(*) FROM clicks WHERE feature = 'quick_loan' GROUP BY 1”,这恰恰是错的。
正确做法是先追问:“点击率下降是全局性还是特定用户群?有没有同期产品改动?”——这才是Nubank要的思维。他们不要SQL机器,要能质疑指标的人。
第三轮是90分钟的建模与统计推断。题目可能是:“如何评估新推出的‘信用额度动态调整’算法的效果?”候选人常犯的错误是直接上AB测试框架,说“随机分组,看额度使用率”。
但Nubank的信贷产品有强网络效应,纯随机分组会导致样本污染。正确解法是用CUPED或差分法控制用户历史行为偏差,并用合成控制组处理非随机 rollout。曾有一个候选人提出用PSM(倾向得分匹配),面试官追问“如果协变量有缺失怎么办”,他答“用均值填充”,当场被否——Nubank的debrief记录写着:“缺乏对金融数据缺失机制的理解”。
第四轮是45分钟的业务策略面试,由产品总监主面。题目如:“如果我们想在墨西哥城推‘学生信用卡’,你怎么定义目标用户群?”候选人常答“用年龄和学校信息”,但Nubank的真实做法是基于支付行为聚类:比如频繁在教科书商店、学生公交卡充值点交易的用户。
一个通过的候选人提出“用交易周期+小额高频特征构建学生画像”,并用历史数据验证这类用户违约率低于普通青年群体0.7个百分点。他的SQL只写了两句,但逻辑闭环,直接过。
最后一轮是30分钟的Hiring Manager对话,表面是文化匹配,实则是决策确认。HM会问:“如果产品团队坚持上线一个数据证明会增加坏账的功能,你怎么处理?”错误回答是“我坚持数据说话”,正确回答是“我会量化风险敞口,提出AB测试+额度限制的折中方案,并把决策权交回产品”。
这不是妥协,而是理解组织动力学。Nubank的HC会议纪要显示,这类“能推动共识”的候选人通过率是强硬派的3倍。
SQL真题解析:为什么你写的对却拿不到offer
Nubank的SQL题不是考你能否写出正确语法,而是考你如何用SQL驱动决策。一道典型真题是:“计算过去30天内,使用‘分期付款’功能的用户中,有多少人在90天内发生了逾期。” schema包括transactions、installments、repayments三张表。90%的候选人会写:
`sql
SELECT COUNT(DISTINCT u.user_id)
FROM users u
JOIN installments i ON u.userid = i.userid
JOIN repayments r ON i.installmentid = r.installmentid
WHERE i.createdate >= CURRENTDATE - 30
AND r.duedate <= r.paymentdate + 90
AND r.payment_date IS NULL;
`
这语法没错,但逻辑漏洞百出。问题在于:逾期定义是什么?是“未在duedate前还款”,还是“超过宽限期仍未还”?Nubank的宽限期是5天,所以正确条件应是r.paymentdate > r.due_date + 5。
另一个错误是忽略了用户可能有多笔分期——如果一个用户有3笔分期,1笔逾期,是否算“逾期用户”?业务定义必须明确:是“任一笔逾期”还是“逾期率>50%”?没有这个澄清,SQL再漂亮也无效。
更深层的问题是时间窗口重叠。如果用户在30天前开始分期,但第一期还款在90天观察期内,是否计入?这涉及“队列分析”逻辑。正确做法是先用CTE定义队列:
`sql
WITH cohort AS (
SELECT userid, MIN(createdate) AS firstinstallmentdate
FROM installments
WHERE createdate >= CURRENTDATE - 30
GROUP BY user_id
)
`
再关联还款记录,计算每个队列用户的逾期比例。这才是Nubank期待的——不是SQL搬运工,而是能定义分析单元的人。
曾有一个面试记录显示,候选人主动提出:“我需要确认业务是否关心‘首次使用分期的用户’的逾期率,因为老用户可能有行为偏差。” 面试官立即标记“具备产品sense”。而另一个候选人虽然写出完美语法,但被追问“如果repayments表延迟更新怎么办”时,答“假设数据完整”,直接淘汰。
Nubank的debrief会议中,面试官说:“在我们这种高频信贷场景,数据延迟是常态。不能处理现实缺陷的人,无法上线模型。”
业务分析面试:如何用数据讲一个说服产品经理的故事
Nubank的数据科学家不是后台支持角色,而是产品决策的共同制定者。在业务分析轮,题目如:“我们发现‘余额宝式’理财产品在25-30岁用户中的转化率低于预期,为什么?”多数人会说“做用户调研”或“分析点击漏斗”,但这不是Nubank要的。他们要的是一个基于数据的、可行动的叙事。
一个通过的候选人是这样构建故事的:他先查内部监控,发现这个年龄段的用户在“风险评估问卷”环节流失率高出均值22%。他没有止步于此,而是用SQL提取这部分用户的交易特征:
`sql
SELECT
risk_score,
AVG(monthlysalary) as avgincome,
COUNT(CASE WHEN category = 'investment' THEN 1 END) as investtxncount
FROM users u
JOIN transactions t ON u.userid = t.userid
WHERE age BETWEEN 25 AND 30
AND product_view = 1
AND risksurveyexit = 1
GROUP BY risk_score;
`
结果发现:高风险偏好的用户(问卷得分>70)实际收入偏低,且几乎没有投资交易记录。他推断:这些用户“自评激进,行为保守”,问卷存在自我认知偏差。解决方案不是优化问卷,而是调整产品展示——对这类用户先展示“低门槛定投”选项,而非直接要求选择高风险产品。
这个推断被验证:他在测试组中建议产品团队上线一个“行为校准”弹窗,根据用户历史交易动态调整风险问卷选项。上线后,25-30岁用户转化率提升18%。面试中,他只讲了这个案例,没写一行新SQL,却直接通过。
Nubank的HC讨论记录显示:“他展示了数据科学家最稀缺的能力——把统计发现转化为产品干预。” 而另一个候选人分析到“年轻用户更关注流动性”,建议增加“随时赎回”功能,听起来合理,但无法验证。面试官追问:“你怎么证明流动性是主因?
”他答“用户访谈说的”,被否——不是访谈没用,而是Nubank要求所有假设必须有数据验证路径。这不是“不是数据支持决策,而是数据生成决策”的区别。
建模与实验设计:金融场景的特殊性
Nubank的建模面试不考你是否会调参,而是考你是否理解金融数据的特殊约束。一道经典题是:“如何为新用户预测首贷违约概率?”多数候选人立即列举XGBoost、逻辑回归,说“用年龄、收入、信用分做特征”。这完全偏离重点。Nubank的痛点是:新用户几乎没有行为数据,传统特征稀疏。
一个优秀候选人先问:“我们有多少第三方数据接入?比如手机运营商、社保记录?” 得知有部分替代数据后,他提出构建“数字足迹”特征:比如手机使用时长、应用安装多样性、夜间活跃频率——这些在巴西已被证明与信用行为相关。他引用一篇Nubank发表在KDD的论文,指出“夜间活跃>2小时的用户违约率高出1.3倍”。
然后他处理样本偏差问题。新用户≠随机样本——他们主动下载App,本身就有风险偏好。他提出用 Heckman选择模型校正,而不是简单用logistic。面试官追问“如何估计选择方程”,他答“用广告点击数据作为外生变量”,展示了对数据生成机制的理解。
实验设计更见功力。当问到“如何测试新评分卡”,他不答AB测试,而是说:“在巴西,信贷监管要求新模型必须与旧模型并行运行3个月,且不能主动拒绝用户。” 所以他设计“影子测试”:新模型不干预决策,只记录预测值,三个月后回溯比较KS值和坏账率。他还提出用“拒绝推断”技术,用半监督学习估计被旧模型拒绝用户的潜在表现。
相比之下,一个失败案例是候选人坚持用A/B测试,说“随机50%用户用新模型”。面试官问:“如果新模型误拒高价值用户,我们损失多少?”他答不上。Nubank的debrief记录写着:“缺乏商业影响意识”。在金融场景,模型不仅是算法,更是风险敞口。你不是在优化F1-score,而是在管理资本成本。
准备清单
- 精读Nubank近三年投资者日材料,重点看CFO对坏账率、LTV、获客成本的解读,理解他们的核心指标优先级
- 刷20道真实SQL题,但每道题必须附带业务背景推演:比如“这个指标会被哪个团队使用?会影响什么决策?”
- 复盘三个Nubank已上线功能的数据驱动过程,例如“为什么‘反向分期’功能在哥伦比亚有效但在墨西哥失败?”
- 准备两个你主导的、从数据发现到产品落地的完整案例,必须包含指标定义、验证方法、商业影响量化
- 系统性拆解面试结构(PM面试手册里有完整的[数据科学家面试叙事框架]实战复盘可以参考)
- 熟悉拉美金融监管基础,如巴西CMN Resolutions对信贷披露的要求,这会影响实验设计合法性
- 模拟HC对话:找人扮演产品、风控、法务,练习如何在冲突中推动数据共识
常见错误
错误一:把SQL当编程题,不问业务定义
BAD:面试官问“计算月活”,候选人直接写“SELECT COUNT(DISTINCT userid) FROM events WHERE DATE(eventtime) BETWEEN '2026-01-01' AND '2026-01-31'”。
GOOD:候选人先问:“月活是否包含客服通话?是否排除测试账号?是否按首次登录还是任意行为?” 然后根据确认写代码。Nubank的schema常有adminuserid前缀,不排除会高估30%。
错误二:用通用模型解金融问题
BAD:被问“如何提升催收效率”,答“用聚类分群,然后个性化话术”。
GOOD:候选人指出“Nubank的早期催收主要靠APP内消息和短信,人工只占5%”,所以提出用强化学习优化消息发送时机,并用因果推断评估每条消息的增量效果。他引用内部数据:凌晨2点发送的催收短信打开率高40%,但转化率反而低——因为用户醒来就删了。
错误三:忽略数据延迟与质量
BAD:分析“新功能留存”,用“安装后第30天是否登录”作为指标,假设数据实时完整。
GOOD:候选人说:“repayments表通常延迟2天,我会用上线前数据估算延迟分布,并在分析中标注置信区间。” 他展示一个真实案例:一次他认为“功能提升留存5%”,但计入延迟后,真实效果是+1.2%±3.1%,结论改为“不显著”。这种诚实反而加分。
准备拿下PM Offer?
如果你正在准备产品经理面试,PM面试手册 提供了顶级科技公司PM使用的框架、模拟答案和内部策略。
FAQ
Q:Nubank数据科学家的薪资结构是怎样的?
Base $120K USD/年,RSU $60K/年(分4年归属),年度现金奖金目标为15%(约$18K),总包约$198K。圣保罗本地候选人base可能低10-15%,但RSU不变。墨西哥城岗位总包约低$30K,但生活成本也低。薪资在拉美属顶级,但低于硅谷同级。
值得注意的是,RSU以Nubank母公司Nu Holdings股票发放,过去三年年化回报率42%,但这不是保证。内部数据显示,真正影响长期收入的是项目影响力——主导一个核心功能的DS,下次晋升平均快8个月。薪资谈判时不要只盯base,可争取签约奖或额外RSU,但需证明你填补了关键能力缺口,比如懂巴西税法对交易数据的影响。
Q:非拉美背景的候选人机会大吗?
机会存在,但必须证明你能快速理解本地行为。一个美国候选人通过的关键是:他分析TikTok上巴西年轻人的财务短视频,总结出“dinheiro vivo”(现金为王)文化对产品设计的影响。面试中他说:“你们的‘零钱投资’功能增长慢,可能是因为用户觉得数字余额不‘真实’。
” 他建议增加“现金存入动画”和“实体卡关联”,被产品团队采纳测试。而另一个英国候选人虽有高盛经验,但回答“巴西用户应该像英国人一样接受自动投资”时,被直接否决——Nubank要的不是“全球最佳实践”,而是本地洞察。语言不是硬门槛(英语可工作),但对葡萄牙语/西班牙语的理解能加分,至少能看懂用户反馈。
Q:没有金融经验能过吗?
能,但必须用其他领域的复杂决策经验替代。一个通过的候选人来自电商推荐系统,他讲了一个故事:“我们发现‘猜你喜欢’点击率高但转化低,分析发现是用户被低质商品吸引。” 他用PSI(Population Stability Index)监控特征分布漂移,并设计“转化率校准”层。这个逻辑被面试官迁移验证:“你在处理‘数据-行为’错配,这和我们识别‘高风险偏好用户’本质相同。
” 而另一个无金融背景候选人说“我做过用户分群”,但拿不出业务影响,被淘汰。关键不是领域,而是你能否展示“在约束下做最优决策”的思维。Nubank的HC记录显示,跨领域候选人通过率低20%,但一旦通过,创新提案率高50%。
准备好系统化备战PM面试了吗?
也可在 Gumroad 获取完整手册。