联想的数据分析岗笔试难不难?如果只看题目本身,我的答案是不算难;但如果你问我“能不能顺利通过”,那就很难一句话说清。我在2024年春招期间参加了联想的数据分析岗在线笔试,整场做下来最深的感受是:题目范围没有跳出统计、SQL、Python、业务分析这四块常规内容,但它对时间压力、模块拆分、细节审题,以及业务题里隐含的公司背景要求都不低,任何一个短板都可能让你丢分。
这篇文章不是官方真题,是我自己4月那场笔试的完整复盘。我会从笔试前的准备讲起,拆解在线测评系统的使用规则,逐类分析统计、SQL、Python和业务思维题的考法,最后整理一份避坑清单。无论你是大三准备暑期实习,还是研二、大四正在冲春招,只要投的是数据分析、商业分析、经营分析这类岗位,这篇复盘都值得当作参考资料。
1. 笔试前的情报与准备
1.1 先搞清楚联想数据分析岗挂在哪条业务线
投联想的时候,我第一个疑惑是:联想到底有多少个数据分析岗?后来在官网翻了一圈,发现联想的数据分析相关岗位并不都叫“数据分析师”,有的叫“经营分析专员”,有的叫“商业分析”,有的挂在销售运营体系下,有的挂在中后台供应链和职能体系里。它们的笔试大概率是同一套题,但进入面试之后,业务方向完全不同。
联想当前的业务盘子大致分成三块:IDG智能设备业务集团,做PC、平板、手机和智能家居;ISG基础设施方案业务集团,做服务器、存储和网络设备;SSG方案服务业务集团,做支持服务、运维服务和解决方案。另外还有集团层面的财务、人力、战略等职能部门,也会招分析类岗位。不同业务对数据分析的诉求差异很大:IDG最关心市占率、渠道库存、产品定价和促销效果;ISG更关心订单交付、配置报价、供应链计划;SSG更关心客户满意度、服务响应时效、续约率和耗材复购。
了解这些不是为了在笔试里背出来,而是为了做业务题时能踩到点子上。联想这种制造型企业非常看重渠道和库存的联动,分析销量时你要能想到sell-in和sell-out两个口径:sell-in是厂商卖给渠道的量,sell-out是渠道最终卖给消费者的量。很多时候业务反馈的“销量下滑”,其实是两个口径在打架。笔试业务题不一定会直接考这个术语,但能把这类视角写进分析思路里的候选人,明显比只会讲“看点击率转化率”的人更对味。
1.2 从岗位JD倒推笔试要考什么
等笔试通知那几天,我反复看了几遍岗位JD。联想数据分析岗的JD一般会写:熟悉统计学基本方法,具备数据清洗和建模能力,熟练掌握SQL,熟悉Python或R,使用过Excel和至少一种BI工具,有较强的业务理解和沟通能力。看完JD再去看历年笔试题型,你会发现出题逻辑非常简单:JD要求什么,笔试就考什么。这也是大厂数据分析岗笔试的共通规律。
所以笔试准备的第一步不是急着找题库刷题,而是把目标岗位JD里的每一条硬技能,翻译成具体的考察形式。“熟悉统计”翻译过来就是描述统计、推断统计、假设检验和回归分析的客观题;“熟练SQL”翻译过来就是一个多小时里写完几道查询并得出正确结果;“具备数据清洗能力”翻译过来就是pandas相关操作的结果判断题,不排除给你一段数据处理代码让你补全;“业务理解”翻译过来就是情景分析题,让你写一段归因思路。
把JD翻译成考点之后,复习范围会清晰很多。我见过太多人准备数据分析笔试时一头扎进力扣刷算法题,结果在大厂数据分析岗笔试里,纯算法题的权重并不高。与其花时间啃动态规划,不如把统计概念、SQL窗口函数、pandas聚合操作这些真正高频的考点过一遍,性价比高得多。
1.3 我笔试前两周的复习清单
从收到笔试通知到正式开考,中间隔了大约一周,加上我之前已经为春招做了一些基础准备,真正用来冲刺的时间是两周。我的复习计划是按板块拆的,一块一块过,不走大而全的题海战术。
统计学板块,我把描述统计、概率论基础、假设检验、置信区间、线性回归过了一遍。重点不是背公式,而是理解概念,尤其是p值、置信区间、贝叶斯公式、中心极限定理这类选择题高频考点。统计概念题的特点是:你公式背熟了,概念理解错了照样答错。所以每看完一个概念,我就找出对应题目做几道验证。
SQL板块,我没有从零刷基础题,因为平时做项目经常写,重点放在窗口函数和业务场景查询上。每天找几道留存率、TopN、同环比、连续行为的题目,限定时间手写出来,写完再丢到数据库里跑一遍,看结果和预期是否一致。手写和编辑器里边看提示边写,状态完全不同,前者逼着你把语法彻底想清楚。
Python板块,我把pandas和numpy的常用操作过了一遍,重点看merge和join的区别、groupby之后索引的变化、apply函数的执行逻辑、缺失值处理的几种方式。这些操作在真实项目里经常用,但笔试的代码输出题非常抠细节,稍不留神就会在“你以为你懂”的操作上翻车。
Excel和BI工具我没有专门刷题,因为笔试里很少直接考工具界面操作,但我在平板上重新过了一遍数据透视表和常用图表,目的是应付面试中可能出现的“你用Excel做过什么”这类问题。很多团队现在都在尝试用dify这类Agent工具做数据清洗自动化和可视化分析,但笔试基本不会考Agent工具的配置,它考的还是你懂不懂清洗逻辑。工具会变化,背后处理数据的思路不会变,别被工具热词带偏了复习节奏。
2. 联想笔试系统与时间分配:这几个细节最容易丢分
2.1 在线测评系统的使用规则与考场纪律
我参加的那批联想春招数据分析笔试,用的在线测评平台是北森系统。收到邮件通知后,需要自备一台带摄像头的电脑,准备好稳定网络,提前安装最新版Chrome或Edge浏览器。北森系统在正式答题前有一个设备检测环节,会检测摄像头、麦克风、网络延迟,同时提示你关闭屏幕共享类软件和远程控制软件。
考试过程中系统会全程录像,并且有切屏监测。切屏的定义不只是切换浏览器标签页,只要鼠标移出答题窗口,系统都会记录一次。切屏次数过多会被自动判定作弊,所以考试前一定要把所有无关软件关掉,微信、QQ、邮件客户端全部退出,尤其要小心杀毒软件偶尔弹出的更新提醒,这种弹窗也可能被算作一次切屏。我身边有同学因为系统弹窗被警告过,直接影响后面答题的心态。
另外,北森的笔试一般是分模块计时的,每个模块单独倒计时,时间到了系统自动交卷,不存在“整个考试统一交卷”的说法。也就是说,你在第一个模块上多花的时间,不可能从第二个模块里补回来。开始答题前应该先看清楚整个流程有几个模块、每个模块多少分钟,做到心里有数,再决定各段落的节奏。
2.2 模块分布、题量与时间分配策略
我这场笔试的模块安排大致是:通用能力测评、专业能力测评、性格测评三大部分。通用能力测评里主要是言语理解、数字推理、逻辑判断、资料分析这类题,风格有点像考公的行测,题量不小,每题只有一分钟左右。专业能力测评才是数据分析岗的核心,统计、SQL、Python、数据处理相关的题都集中在这个模块,时间同样紧张。性格测评放在最后,题量很大,但没有标准答案,按真实情况作答就好。
拿到试卷后,不要急着从第一题顺着往下写。我先花了两三分钟把专业模块所有题目快速浏览了一遍,把一眼有把握的题和明显没思路的题在草稿纸上做标记。正式作答时先解决有把握的题,再回头啃没思路的题,最后处理计算量大的资料分析题。这个顺序不是绝对的,但能保证最容易拿的分先进口袋。
时间分配上,我给自己定的原则是:单选题平均每题不超过一分钟,多选题控制在两分钟内,碰到完全没有思路的题,先蒙一个答案并标记,最后有时间再验证。不要在一道题上死磕,笔试算的是总分通过率,一道题磨五分钟,和直接放弃这道题相比,前者亏太多。性格测评部分不需要纠结太久,保持前后一致、不刻意伪装,比追求所谓的“完美人格”更安全。
3. 统计、SQL、Python核心题型拆解:到底考到什么程度
3.1 统计学与概率题:考概念,不考计算器
专业模块里最先遇到的一批题就是统计学和概率论。这部分题不要求你使用复杂计算工具,给的数据也都很整齐,多数时候是送分题,但前提是概念真的理解透了。我考下来的感觉是,它不会让你硬算一个多变量回归,反而喜欢考那些“听起来很简单但特别容易被误解”的概念。
高频考点集中在几个方向。描述统计里的均值、中位数、众数、方差、标准差、偏度、峰度,以及什么时候用中位数比均值更合适;概率论里的条件概率、独立性、贝叶斯公式、期望和方差;推断统计里的抽样分布、中心极限定理、置信区间、假设检验和p值、一类错误和二类错误;相关与回归里的相关系数含义、线性回归基本假设、R平方的解释。从这些考点分布就能看出来,笔试考的不是你模型做得多复杂,而是你对基础概念的把握是否准确。
这里面的坑往往是概念性的。比如p值,很多人在项目里跑模型时天天看,但真问你“p值是什么”,能说清楚的人不多。p值不是原假设为真的概率,而是假定原假设为真时,观测到当前结果或更极端结果的概率。再比如置信区间,“95%置信区间”不等于“参数有95%的概率落在区间内”,参数是固定的,随机的是区间本身。还有相关系数为0不代表两个变量独立,只能说明它们之间没有线性关系。
笔试里有一道让我印象很深的题:某个异常交易识别系统的误报率为5%,实际交易中异常交易占比2%,当系统给出报警时,这笔交易是异常交易的概率是多少?很多人第一反应是95%,实际上需要用贝叶斯公式算,结果不是95%,而是不到30%。刷再多的题,不如把每个概念吃透,这种题一旦理解到位就是白送分。
3.2 SQL题:窗口函数是分水岭
SQL在笔试里的权重比我预想的高。题型一般是给你一张或两张表结构,要求写查询或选择正确的查询结果。表结构通常很简单,字段名、主键、外键关系都标得很清楚,不会故意堆一堆乱表来为难人。
考察的难度层级很明确。基础层面是select、where、group by、having、order by、join、case when,这些属于必须拿满分的题。进阶层面几乎必考窗口函数,尤其是row_number、rank、dense_rank三者之间的区别,以及lag、lead、sum() over(partition by ...)这类在分组内做排序和累计的用法。如果只会group by但没练过窗口函数,遇到“求每个品类销量排名前三的商品”“求每个用户最近一笔订单时间”这类题会非常吃力。
举一个典型的题目写法。假设有一张销售表sales,包含item_id、category_id、sales_qty、dt字段,要求找出每个品类销量排名前三的商品,SQL可以这样写:
WITH ranked AS ( SELECT item_id, category_id, sales_qty, ROW_NUMBER() OVER ( PARTITION BY category_id ORDER BY sales_qty DESC ) AS rn FROM sales WHERE dt = '2024-03-31' ) SELECT category_id, item_id, sales_qty FROM ranked WHERE rn <= 3;这个查询用CTE先算出分组排名,再在外层过滤出排名前三的行。如果考试不要求手写SQL,考法会变成“下面哪个查询能正确返回结果”或者“执行之后返回多少行”,但核心考察点还是窗口函数。
SQL题的时间压力比统计题更大,因为写完查询还要推演数据变化。我的习惯是先确认表结构和连接条件,尤其留意一对多、多对一时会不会产生行数膨胀,再审题看它要的是明细还是汇总。平时练习时别只在编辑器里跑题,多手写SQL,把窗口函数、行数变化这些细节变成肌肉记忆,考场上才不会慌。
3.3 Python与数据处理题:考的是pandas结果直觉
Python在笔试里很少让你手写一个完整函数来解决算法题,更多是给你一段pandas或者numpy代码,问你输出结果是什么,或者给你一个数据处理需求,让你选择正确的写法。和我一起备考的朋友也考了其他大厂的数据分析岗,反馈类似,pandas操作结果题是目前数据分析笔试的主流考法。
常见考点包括:DataFrame的merge、join、concat三者区别;groupby之后得到的是DataFrame还是Series,索引会发生什么变化;apply函数和lambda表达式的执行逻辑;numpy数组的广播机制;dropna与fillna在缺失值处理中的行为差异;时间序列处理里的to_datetime和resample;重复值判断duplicated和去重drop_duplicates。
举个例子,给定这样一个DataFrame:
import pandas as pd df = pd.DataFrame({ 'user_id': [1, 1, 2, 2], 'item': ['A', 'B', 'C', 'D'], 'price': [10, 20, 15, 30] }) print(df.groupby('user_id')['price'].agg(['sum', 'mean']))输出是按user_id分组后的每个用户消费总额和平均消费金额。看起来是基础操作,但如果平时不常看groupby的输出格式,很容易在“这里到底有没有默认索引”“聚合列是什么类型”上犹豫。笔试不考多高深的算法,但非常考细节。
我的一个建议是,把pandas的常用操作在本地环境里亲手跑一遍,亲眼看一下