2024淘天数据岗笔试复盘:SQL、Python与机器学习考点全解析
2024年春招我投了淘天集团的数据岗从简历筛选到收到笔试通知节奏比想象中快。本来以为会像互联网大厂常规操作一样发一套行测加性格测评的题结果点进去发现题目量不小而且数据岗的针对性非常强。考完之后我和几个同样投了数据岗的朋友对了一下题发现淘天的笔试在电商系里算是相当硬核的一类既有逻辑题又有很重的SQL和Python实操题还掺了一些机器学习基础概念的考察。这篇就把我这次笔试的完整复盘写下来针对题型结构、每个模块具体考了什么、怎么准备更有效、以及我踩过的坑一份全部分享出来。不管你是明年春招还是秋招打算冲大厂数据岗这套笔经应该都值得你花半小时看完。1. 笔试基本盘流程、平台与题型结构先说进入笔试前的流程。淘天集团2024年春招的数据岗笔试通知一般是在投递简历后一周到两周内发到邮箱邮件标题通常带着“在线笔试邀请”字样发件人是淘天集团招聘系统。我当时用的平台是牛客网登录后需要完成身份验证然后进入考试房间等待倒计时。整体题型分布大致如下模块题量时长主要内容行测逻辑约20题30分钟言语理解、图形推理、数量关系数据相关专业题约30题60分钟SQL、Python、机器学习基础、概率统计主观/业务题1-2题30分钟业务场景分析或数据方案设计部分岗位还会有性格测评环节但那个不计入总分按真实情况填写就行。笔试总时长大概是120分钟左右但我实际做下来发现时间非常紧。尤其是专业题部分SQL题不是单纯写代码的思路题而是真的要在编辑器里跑出结果Python题也涉及实际代码调试一旦某个函数写错了日志报错会直接浪费你五分钟。所以时间分配异常关键。另外一个值得注意的点是这次笔试是分模块计时的。行测模块30分钟到点自动交卷不能提前做后面的题。所以千万不要想着先跳过行测去写SQL系统是不允许跨模块跳转的。每一模块的时间都要独立管理。我个人的体感打分是专业题难度中等偏上比一般中小厂的笔试题要高出半档尤其是SQL题目里埋了好几个容易忽略null值处理的坑稍不留神就翻车。普通基础扎实的同学能对七成左右想拿高分就得靠平时的积累和临场的细心。2. 行测逻辑模块分值不高但别卡在数量关系上淘天数据岗笔试前面的行测逻辑模块和大部分互联网公司用的题库基本一致。主要分三个小类言语理解与表达、图形推理、数量关系。言语理解的题本质上就是给一段文字材料然后判断主旨大意或找细节差异偶尔会有选词填空。这块没什么好突击的大家从小考到大的东西凭语感做就行。唯一要注意的是控制时间每道题尽量控制在60秒以内遇到纠结的直接凭第一印象选不要回头改。图形推理是行测里比较费时间的一块。它考的是图形之间的规律比如旋转、对称、封闭空间数、元素数量变化等。我记得这次笔试里连续出了三道图形题难度递增前两道是标准的元素数量变化最后一道是立体展开图的折叠问题。立体图形那道我直接蒙了想了快三分钟也没选出来最后果断跳过把时间留给后面的数量关系题。事实证明这个策略是对的。数量关系是整个行测模块里最让学生党又爱又恨的部分。它不像公务员行测那样考一堆工程问题、行程问题、鸡兔同笼更像是在考数据处理里的基础数学思维。数字推理、数列求和、概率计算、排列组合几乎都是高中数学难度但要在平均每题90秒内解出来压力还是有的。这里我强烈建议大家准备的时候多刷公务员行测中的数字推理和数量关系题因为出题思路非常一致。不需要题海战术每天练30道保持手感就够了。关键是形成条件反射看到数列先看差分差分不行看比值再不行考虑隔项、裂项这些套路。时间分配上我给自己的红线是行测总时长30分钟言语理解最多8分钟图形推理最多8分钟数量关系加检查留14分钟。考场上遇到一道题卡了90秒还没有思路立刻标记然后跳过最后如果还有时间再回头看。这样至少能保证后面会做的题不丢分。3. SQL题最大的分仓也是最容易翻车的地方淘天数据岗笔试的专业题里SQL占比非常高。这次我抽到的试题中SQL相关题目一共占了专业题的将近一半题型包括查表条件筛选、多表连接、子查询、分组聚合、窗口函数、数据去重、空值处理等。可以说SQL题答得好不好直接决定专业题部分的成绩档位。先说一下通用准备建议。数据岗笔试的SQL本质上是在考察你能否用简洁、正确、高效的查询来实现业务需求。刷题平台不用多牛客网的SQL题库加LeetCode的数据库板块就完全够用。牛客侧重面试场景难度梯度比较友好LeetCode的Hard题可以锻炼复杂逻辑但说实话和淘天笔试的实际难度有差距。再说说考的具体内容。多表连接是必考基础题。这次我遇到一道给定订单表orders和商品表products需要统计每个商品类目的订单数量。最常规的写法是inner join两表然后group by类目。这种题本身不难但有一个隐藏的坑如果订单表中存在商品ID为空的情况inner join会直接把这些记录过滤掉导致统计结果和业务实际情况不一致。如果题目要求是“包含所有商品类目”那么就应该用left join并且用count(distinct)进行去重计数。这个点如果没意识到结果就会错。窗口函数也是常客。淘天的题考到了一道关于“每个用户最近一次下单时间”的题目。这类需求在数据分析中太常见了解法就是用row_number() over(partition by user_id order by order_time desc)然后取排名为1的记录。实际笔试时这个函数写起来不难但有几个容易出错的地方partition by的字段要不要包含多个维度如果题目是“每个用户在每个城市最近一次下单”那么partition by就得写两个字段。order by的方向是desc还是asc这决定了取的是最近还是最早。取外层数据时是在子查询里过滤rn1还是用qualify不同数据库写法不同。牛客网平台上一般是MySQL语法不支持qualify所以必须用子查询。如果这些细节都注意到了窗口函数的题基本能拿满分。空值处理是淘天SQL题里隐藏的杀手。我印象特别深的一道题给定用户表和订单记录表需要统计每个用户的订单金额总和如果一个用户没有订单也要显示该用户并且金额显示为0。这题的关键在于如果直接join之后group by没有订单的用户不会出现在结果里。正确做法是left join后对订单金额做ifnull或coalesce处理把null转换成0。这道题我身边有朋友就写漏了最后结果集少了零订单用户一分没得。还有一类容易被忽略的题是数据去重。比如统计某时间段内活跃用户数但因为底层表是全链路日志同一个用户可能一天内有多条记录。这种题的标准解法是先用distinct或group by对user_id去重再做外层统计。注意distinct和group by在去重语义上等价但和count(distinct)不一样count(distinct)是统计去重后的数量而不是把行去掉。写错的话结果会差一个数量级。SQL题的时间分配也非常讲究。牛客网笔试的编辑器不像本地IDE那么智能没有自动补全功能写代码时必须逐字敲容易在函数名和别名上浪费不少时间。我的建议是先扫一遍所有SQL题的题干把一眼就能写出来的基础题先做完再把时间留给复杂的多层嵌套查询。千万不要死磕一道题哪怕是15分的题卡住了就应该果断跳。4. Python与数据结构数据岗要掌握到什么程度淘天数据岗笔试专业题里Python的占比不低但考察方式和算法岗笔试有本质区别。算法岗考的是算法思维和代码功底比如动态规划、图论、二叉树遍历这些。数据岗的Python题更偏数据处理和工程能力pandas的DataFrame操作、字典列表的复杂筛选、正则表达式提取、简单的文件读写等。说白了数据岗的Python笔试是在考你会不会用Python做数据分析而不是考你能不能手写红黑树。这一点大家准备的时候千万不要跑偏。我这次遇到的Python题大概有这几类第一类是pandas操作题。给定一个DataFrame包含若干行记录问题是筛选出某列值大于阈值的行并对另一列做分组求和。这类题需要熟悉DataFrame的基本操作包括loc、iloc、groupby、agg这些常用方法。有一点需要注意牛客网的Python环境是3.x版本pandas库的版本也比较新所以一些老教程里的写法可能不兼容。比如df.append()在pandas 2.0之后已经被移除了现在要用pd.concat()来实现。如果你平时用的是本地环境最好提前确认一下自己装的pandas版本和新旧API的变化。第二类是纯Python逻辑题。比如给定一个列表需要把列表中的元素按照某种规则重新排序或者统计元素频率并取前K个。这类题用python内置库就能解决collections.Counter统计频率、sorted加key参数排序、zip或者enumerate处理配对问题。这些都属于最基础的能力但如果平时上手就写pandas反而容易在基础语法上卡壳。第三类是核心业务场景题。我遇到一道典型题目一个日志文件里每行是“用户ID 时间戳 行为 金额”这种格式最终要统计出每个用户的行为总数和总金额并输出到新文件。这种题其实就是SQL思路在Python里的映射读文件、解析字符串、字典聚合、写文件。它的难点不在于算法而在于对字符串分割和异常处理是否熟练。日志文件往往有脏数据比如某些行字段缺失或者格式不对如果不做try-except保护整个程序就会崩溃一分不得。这里我特别想强调一下编程环境适应问题。笔试平台上的Python编辑器没有代码补全和语法高亮而且要手动点击运行按钮才能看到输出结果。如果平时习惯了IDE帮你自动纠错考场上写代码的速度会明显下降。平时练习时需要有意识地脱离IDE辅助直接在文本编辑器里写代码然后用命令行跑提前适应这种“裸写”环境。数据结构方面淘天笔试不会考太深的算法题但以下基础知识点建议牢牢掌握列表和字典的时间复杂度、堆栈和队列的基本概念、排序算法的基本原理和适用场景、二叉树遍历的前序中序后序。这些内容不会单独出题但可能会以“请选择以下哪种数据结构最适合这个场景”的形式出现。比如实现一个先进先出的缓存机制应该用队列还是栈答案是队列。这类题考察的更多是对数据结构的理解而不是手写代码能力。5. 机器学习与统计基础高频考点速查表数据岗虽然不像算法岗那样要求手推公式但机器学习基础知识和概率统计理论仍然是笔试中不可忽视的模块。这次淘天的笔试在这一块出了好几道选择题覆盖面比较广难度中等偏向概念理解和场景应用而不是复杂推导。我整理了一下高频考点基本可以分为以下几个方面机器学习基础是重头戏。比如过拟合的表现是什么训练集loss低、测试集loss高解决过拟合的常见方法有哪些增加训练数据、正则化、Dropout、早停等。这类题务必把概念记牢不要和欠拟合混淆。又比如决策树分裂节点时常用的指标是什么答案是信息增益或基尼系数这个几乎每年都考。监督学习和无监督学习的区分也是常考内容。给出一个业务场景问应该用分类还是聚类、用回归还是降维。做这类题要抓住核心判断标准有没有标签。有标签是监督学习没有标签是无监督学习。千万不要因为题目里出现“预测”两个字就默认是回归要先看输入数据中是否包含目标变量。概率统计方面需要掌握的基础知识包括条件概率公式、事件的独立性、随机变量的期望和方差计算、正态分布的常用结论、置信区间和显著性水平的概念。淘天笔试喜欢把概率题包装成业务场景比如“某商品页面的点击率为5%现在随机抽取1000次曝光问期望的点击次数是多少”。这种题本质就是在考二项分布的期望值掌握基础公式就能解不需要复杂的推导。贝叶斯公式也是焦点之一。我记得题目里考了“已知某分类器的准确率和误报率求当预测为正例时真实为正例的概率”这就是标准的贝叶斯公式应用。说实话这个公式本身不难但如果在紧张的笔试环境下突然看到脑子容易短路。考前最好自己从头推导一遍贝叶斯公式的变形过程确保印象足够深刻。AB测试相关的题目也值得注意。数据岗的工作绕不开AB实验所以笔试里经常会考实验组和对照组的设定原则、显著性水平的含义、如何避免辛普森悖论等。这次淘天就出了一道关于显著性水平的题p值小于0.05说明什么正确答案应该是“在原假设为真的前提下观察到当前样本结果的概率小于5%”而不是“原假设为假的概率小于5%”。这个区别非常细微但恰恰是考官喜欢设置陷阱的地方。我建议准备这部分的时候不要死记硬背而是把每一个知识点和实际业务场景做绑定。比如“过拟合”就想象成“模型把训练数据里的噪声背下来了考试时遇到没见过的题就露馅”“贝叶斯公式”就想象成“根据新证据来修正旧判断”。这样记忆要比背定义牢固得多。接下来我花一点时间专门说一下业务分析题因为这是数据岗笔试里很多人的短板也是拉开分数差距的关键所在。6. 业务分析题数据岗笔试拉开差距的关键相比前面客观题“会就是会、不会就是不会”业务分析题考察的是数据思维和业务理解的结合能力没有标准答案但对答案的完整性和逻辑性要求很高。这次淘天笔试的业务题一共两道一道关于用户增长分析一道关于活动效果评估每道题需要在15分钟内写出完整思路时间非常紧张。用户增长那道题是某电商App的新用户次日留存率最近三个月连续下降作为数据分析师你会如何定位原因并给出建议这类题在数据分析面试中非常经典几乎每个大厂都会考但不同水平的回答差距非常大。最基础的回答是先查一下留存率具体下降的幅度和趋势然后看是新用户来源渠道变化还是产品功能调整导致的。这个回答能拿基本分但远远不够。高分的回答应该是结构化的我根据实际经验总结了一套框架先拆解再对比最后给建议。先拆解是指把“留存率下降”这个问题拆分为多个维度新用户从哪些渠道来每个渠道的次日留存率分别是什么趋势新用户进入后首日使用了哪些核心功能不同功能使用者的留存差异是什么通过这种拆解才能定位下降主要集中在哪个细分群体。然后是对比。如果某个渠道的次日留存率大幅下降那就是渠道质量问题可能投放人群不精准如果是所有渠道都下降那大概率是产品本身的问题比如首单体验变差、注册流程变长、核心功能改版。还有一种情况是用户结构变化比如新增用户大多来自下沉市场这部分用户的留存天然偏低那就得考虑是不是投放策略偏了。最后是建议。如果是渠道质量问题建议复盘投放定向逻辑调整出价策略如果是注册流程变长建议推进流程优化并同步做流失漏斗分析定位具体卡点如果是首单体验问题建议优化新用户优惠券的发放时机。这种回答既有分析框架又有具体可落地的方案考官才会觉得你有真正的数据思维。活动效果评估那道题考的是某次大促活动投入了大量补贴如何科学评估这次活动带来的增量效果而不是只看GMV成交总额涨了多少。这题的核心考点是因果推断。常见的错误回答是直接对比活动前后GMV算出增长多少然后归因于活动。这个思路的问题在于存在太多同时变化的外部因素比如季节性增长、竞对动作、自然流量增长。所以真正科学的评估方式是构建对照组让实验组和对照组之间除了“是否参与活动”之外其他条件尽量一致。具体落地时可以用PSM倾向得分匹配选择对照组也可以用DID双重差分法来做增量评估如果有条件还可以做正交实验。需要说明的是数据岗笔试不需要你把公式完整写出来但只要你能提到这些方法的名字并解释清楚为什么需要这样做就已经能超过大部分考生了。业务分析题的答题策略我总结为三步定义问题、拆解框架、给出结论。先用自己的话复述一遍问题让阅卷人知道你理解到位了然后按维度拆解用“先全局、后细分、再归因”的逻辑展开最后落到可执行的动作上不要只分析问题不给方案。宁可写得简洁也要保证逻辑链条完整。7. 笔试避坑与实战心得笔试不只是考你会不会更是考你在有限时间内能不能稳定输出。根据我这次淘天笔试的实际经历整理几个实战心得希望能帮你少走弯路。第一个坑是环境准备不足。笔试通知邮件里一般会提前说明平台和浏览器要求但我发现很多人忽略了硬件测试环节。最好的做法是收到笔试通知后立刻登录平台做一次设备测试确保摄像头、麦克风、浏览器插件都正常然后找一个网络稳定的地方最好用有线网络避免Wi-Fi波动导致页面刷新失败。第二个坑是答题时间分配失衡。行测逻辑模块如果花了太多时间会直接影响后续专业题的作答心态。我的建议是采用“三轮答题法”。第一轮快速扫题把自己100%会做的题先做掉第二轮集中攻克需要算一算的题第三轮如果还剩时间再回头啃不确定的题。遇到一道题超过3分钟还没有突破不要恋战直接标记跳过。笔试是看总分一道题的失分可以通过后面简单的题补回来。第三个坑是SQL题没有先看表结构。牛客网的SQL题一般会给两张或三张表的字段说明但很多同学一上来就急着写代码写了一半才发现自己连表名都没看清楚导致join字段写错白白浪费了调试时间。正确做法是花30秒看完整表结构和每一列的说明理清主外键关系再动笔写SQL。宁可前面多花半分钟也不要后面花五分钟让程序跑出错误结果。第四个坑是Python题不测边界情况。笔试和面试不一样面试时你说一下思路就可以笔试则要求代码真正跑通并返回正确结果。所以写Python代码时一定要考虑边界条件列表为空时怎么办字符串里混入了非法字符怎么办输入数据量特别大时会不会超时这些边界情况很可能是隐藏的测试用例。把边界处理好代码的通过率会高很多。第五个坑是名词解释题答得太浅。如果遇到概念题比如“什么是数据倾斜”不要只回答“数据分布不均匀导致某些任务处理量过大”然后结束。至少要结合业务场景展开比如在电商场景中某个爆款商品的订单量特别大导致按商品ID聚合时的计算节点负载过高可以通过加盐、参数调优、两阶段聚合等方式解决。给出定义、分析场景、提出解法这样才是一个完整的回答。第六个坑是最后没有检查。很多人做完题就提交结果明明有粗心的小错误也没发现。如果时间还有富余一定要返回去检查尤其是SQL题中的null值处理、group by的字段和select字段是否一致、Python题的print输出格式是否符合要求等。我这次就在检查时发现了一道SQL题忘了加ifnull处理改回来之后至少保住了5分这5分可能就是面试筛选的分界线。以上这些坑基本都是我在实际笔试中踩过的或是在和其他候选人交流时听到的。如果你能提前避开笔试的通过率会明显提升。8. 接下来还能怎么准备笔试结束后大概一周内会收到面试通知或感谢信这个阶段不用太焦虑把重点放在为面试做准备上。如果笔试感觉不错面试轮一般会考察更深的项目经历和业务思维。面试官会让你挑一个自己做过的数据分析项目从业务问题、数据获取、分析思路、结论落地这几个方面展开。建议提前准备好一个完整的项目案例用STAR法则组织表达背景是什么你负责了什么做了哪些分析最后产生了什么业务影响。另外SQL和数据敏感度依然是面试的重头戏。笔试里能写对一道窗口函数题只是入门面试中你需要在白板上手写SQL并且要解释每一步的意图。多练手写SQL没有坏处特别是窗口函数、多表连接、复杂子查询这三类高频题型。数据敏感度也是一个需要日常积累的能力。看到任何一个业务数字要习惯性地去想这个数字是怎么算出来的它可能受哪些因素影响如果它突然涨了20%应该从哪些维度去排查原因这种思维方式在笔试的业务题中非常重要在面试中更是决定你能否拿到offer的关键。准备春招是一个漫长而磨人的过程但每一场笔试都是经验值。把每一次笔试都当作一次学习机会考后及时复盘补上知识盲点你的成长速度会比闷头刷一个月题库更快。希望这篇淘天数据岗笔试复盘能够给正在备战大厂数据岗的你带来一点实在的帮助。

相关新闻

最新新闻

日新闻

周新闻

月新闻