本文结构:
- 前言
- 面经分享
- 数据分析面试知识体系
- 统计知识(AB实验)
- SQL面试题整理
- 业务场景
- 其他
一.前言(包括实习经验)
由于疫情原因,我已经宅家2个多月了,期间一直想动手写博客,记录下自己的学习与读书所得,输出倒逼输入,无奈拖延症严重。今天心血来潮,想总结下自己去年找工作的经历。
笔者本科毕业于某末流工科211,工业设计专业。大三期间,大数据和人工智能概念被炒得火热,自己一来对数学和编程很有兴趣,二来眼馋这个领域的发展前途(跟风),所以就决定跨专业考研,入了应用统计的坑...
方向选择 刚开始目标是算法岗,按照前辈们攻略,看西瓜书,李航的统计学习方法,争取每个公式都能做到手推,也打了一段时间kaggle,但是越往后面学,越觉得知识的深度和广度很大,仅仅靠一年的时间是远远不够的(2年专硕准备找工作实质只有一年时间)。就拿数据结构来说,一个合格计算机的学生,应该从本科开始就做相关的题目,leetcode100道和剑指offer应该刷了好几遍了。然而,自己遇见一道新题,往往就是不看答案,就写不出来,而且即使做过的题,第二遍也不能写出来(哈哈)。当时的心态一度崩溃,每当刷数据结构的时候,就想着放弃算法岗。后来牛客,知乎也出现了各种算法岗的劝退消息,因为竞争大,似乎名校,顶会Paper,竞赛Top,大厂实习才是拿到offer的必要条件。我当然知道即使各项没有那么强,也存在拿到offer的可能性,因为即使职位title一样,不同公司的要求也不一样,同一公司不同部门不同组,也可能存在很大的差异。但是自己知道实力不够,碰运气的事也就不想尝试了。
实习 去年3月开始找实习,改投数据分析的岗位,原因很真实,不用刷数据结构,不用手写代码!找实习还是比较顺利的,3月底拿到了百度和携程的offer,选了百度。我觉得能拿到offer的原因,一是我简历上有几个数据挖掘类的比赛和项目,不至于那么差,二是投的日常实习岗,难度不高,自己运气比较好。
其中携程实习面试就是聊天型,简单问了下项目和经历。
百度实习一面是leader面,包括简历上写的算法原理(时间序列,贝叶斯优化原理等),一道SQL题,微信有哪些用户体验设计好的点(我恰好本科学的就是用户体验设计...)。二面组长面,主要介绍下项目,项目中的原理,Python用了哪些包(还有这样问的,作为一个资深调包侠,把平时调的包都说了),Spark的DataFrame和DataSet的区别(自己简历上写了了解)。
总而言之,我认为找工作固然看实力,但是对于实力处于中下的同学或者不够硬核的面试,实力与运气并存,这里运气包括投的时间是否合适,面试官性格等等。这里说下自己对于日常实习与春招实习的看法,前者难度比后者小,但是后者一般转正几率比较大,而且参加春招实习可以提取感受下秋招的氛围,相当于预秋招。我就是没参加春招实习笔试面试,没体会到竞争的残酷,秋招才会准备不足的。对于日常实习,无论实力如何,大厂都应该投投,对于非核心的部门或者组,要求不会很高。
实习职位是数据分析工程师,主要写SQL以及用Python写MapReduce代码,参与了AB实验分析,做了个大数据报表,还有个数据挖掘需求(query分类问题),核心仍然是围绕各种指标展开。实习期间,我虽然成长一些,但是因为自己接的需求有很大局限性,没有深入接触分析业务,同时由于大数据技术方面也没涉及Java,Scala,Spark等,所以对于数据开发,也毫无优势,我觉得没有过早确定方向(纯技术or纯业务)是自己后来秋招失利的主要原因。
二.春秋招面经分享
之前以为自己实习能转正,到八月底才开始投简历准备笔试面试,果然不听前辈言,吃亏在眼前。实习五个月,基础知识没长进,除了多了些工作经验,剩下就只有云顶下棋了。这段时期也让我认识到,互联网只有保持持续学习的良好心态才能让自己具有市场竞争力。秋招面的公司不多,一来笔试没做好,二来数分竞争确实很大,简历都沉了。
面试结果如下:
秋招
拼多多 二面挂
Bigo 二面挂
斗鱼 一面挂
趣店 三面 offer sp
银联数据 一面过 二面没面 放弃
步步高 一二面过 三面没面 放弃
春招
猿辅导 四面 offer sp
拼多多面经(远程)
一面(40min)
1.自我介绍,实习项目介绍
2.一道SQL题(忘记了,后续会给出自己整理的拼多多SQL面试题)
3.费米问题:估计上海市每年航班次数
4.指标构建问题:对于电商用户购物流程中,需要哪些指标
5.如何做留存分析
6.说下对数据分析的看法
二面(40min)
1.自我介绍
2.说下AB实验有哪些需要注意的原理
3.在MapReduce中如何实现group by,用Python实现
4.两道SQL
Bigo面经(远程)
一面(10min)
1.如果微信朋友圈的DAU下降了,该怎么分析
2.说下对数据分析的看法
二面(40min)
Bigo二面就是考察一个数据分析的完整流程
给一个指标(QQ头像框框佩戴渗透率)
1.如何设计埋点
2.一道SQL
3.如果这个指标下降了该怎么分析?
4.导致这个指标下降的原因有哪些,如何分析?
斗鱼面经:
趣店面经
1.简历面:
实习具体的业务,怎么做badcase挖掘的,原理,业务
MapReduce原理,AB实验如何处理多个实验并行的情况
AB实验case:
如何分析的,然后就是各种互动,总体而言就是聊项目,针对项目提相关知识点
2.组长面
如何分析电商销售额
3.HR面
常规问题,这里就不赘述了
猿辅导面经
感觉猿辅导面试问题比我之前面试加起来还多...
一面(40min)
1.LR损失函数是什么?怎么来的?为什么这样?
我回答假设Y服从二项分布下用极大似然推导的,他就问为什么要用极大似然
我从极大似然概念和指数分布族(LR,线性回归,Softmax)算法解释了
2.SQL
User_id,subject_id,score
(1)求每个学科下的学生平均分数
(2)求每个学科下最高分数的学生
3.贝叶斯公式和三扇门的问题
4.数据库索引有哪些类型?建过什么索引
5.Linux-如何查看一个文件的总行数
6.正则表达式-如何匹配13位电话号码
7.AB实验:如何处理多个实验并行的情况
答:正交试验
8.解释下正交试验原理
9.ABTest的原理和流程
二面(1h)
自我介绍
1.简历相关 怎么量化用户体验的,说说我的贡献在哪里
2.XgBoost的原理,与GBDT的区别
3.GBDT是否是贪心算法
4.怎么处理过拟合
5.不同班级数学成绩排名前五的学生信息SQL,rank和dense_rank的区别
6.Hive或者Python实现 一个数据处理问题 我选的Python
7.新的商品详情页上线,灰度20%,设计何种指标反映上线后的效果,如何检验效果的显著性
8.如果分成10个群体,检验群体之间的广告点击率的差异,用什么统计方法
答方差分析,然后问方差分析的原理
8.各种检验的条件和应用场景(z,t,卡方,f)
9.说说你了解的随机变量分布(分离散和连续)
10.解释下EM算法
11.假设检验的流程 ABTest用什么检验
12.圆内选择三个点,这三个点组成的三角形是锐角三角形的概率
13.矩估计和极大似然估计的区别和联系是什么
14.二项分布与泊松分布的联系
三面(40min)
1.SQL题:已知user_id,dt,class_id,求1001~1010之间每天都做新题的人数
2.一块圆形蛋糕,蛋糕边缘有一个点,从原点出发切2刀,蛋糕分成2个扇形,求包含点的一块蛋糕的面积的期望
3.非参数检验与参数检验的区别
4.如何比较两个分布之间的差异?答ks检验 然后问前提条件是什么
5.说说知道的随机变量分布
6.泊松分布 举个例子
7.篮球投篮满足泊松分布吗?为什么?
四面-总监面(30min)
1.介绍下实习做了哪些事,介绍下自己接触的业务
2.报表指标是怎么确定的,有哪些维度?
3.计算指标有什么约束吗?我一脸懵逼,说了平时取数的几个SQLwhere条件。。。。
4.有什么问题要问他的?
5.什么时候能来实习
面试完后也分析了下面试失败的原因:
1.对于Bigo,其实考察得挺专业的,就是数据分析接到一个需求的分析流程,从怎么设计埋点到SQL提取数据,到分析维度,最后是找到具体的原因,怎么验证。
这次面试失败,我是心服口服的,因为实习期间确实没有做过深入的数据分析,再就是自己的逻辑分析思维,表达能力都一般。
2.对于拼多多,我一直都不服,因为题目基本都回答上了,只能说竞争大,后期HC少了吧。
这里有个忠告,就是能线下面试就不走线上,线上流程太慢了。我面完拼多多二面,都耗了半个月了,期间等结果很焦虑。而且因为准备面试,都没怎么跑宣讲,也错过很多公司的投递时间。但是线下很多都是一天走完流程的。
3.对于斗鱼,我认为就是经验不符吧,他们需要有运营经验的,面试过程没有太多专业技能考察,就是了解了下基本情况。面试官看我简历写了数据挖掘比赛,算法,Hadoop等偏技术的知识点,就问我实习偏挖掘还是分析...
所以早点确定方向很重要:
对于业务分析,可以投数据分析,数据运营,数据产品职位。以SQL+场景分析+产品运营思维+逻辑表达+对口的实习经验为主。其实不需要怎么学Python,机器学习,我有的同学专注业务分析,简历没写机器学习,同样可以拿到大厂offer。
对于偏技术类的,可以投数据分析(带工程师title),数据研发(数据仓库)。这点其实很尴尬,对于有些数据分析而言,其实你说有技术吧,确实会用到Python,机器学习,Hadoop,Spark等知识,但是比起开发和算法,真的小巫见大巫了,核心还是业务。例如我实习期间,也会用Python写MR代码,但是只涉及到日志解析,指标计算,统计等,这些其实和SQL用途是一样的,包括后来在绿盟实习,用Spark也差不多,写Spark SQL,未涉及到大数据平台级开发。
总之就是经验太少,见得太少,对于数据分析,我还未有明确的职业规划。但是也认识到,不管做什么,要做好都不简单,专注一点,踏实沉淀就能有所收获。
三.数据分析面试知识体系
数据分析范围很广,不同类型公司面试风格迥异。我将数据分析面试情况分为以下几种类型:
1.算法型:代表-腾讯
腾讯数据分析投录比好像是几十比一,看面经,和算法岗无异,除了机器学习,像深度学习,数据结构,大数据计算框架等纯技术知识也会考到。
2.标准型:代表-拼多多,滴滴,京东,携程,猿辅导,Bigo,顺丰,ov等,这类理论和业务都会考,但是原理偏统计专业。
面向数学统计专业,统计学,概率论,SQL,常用机器学习,业务场景题,偶尔会碰到手写基础的Python代码(比如简单的斐波那契,排序算法等)。
3.业务型:代表-字节,斗鱼
字节的数据分析是产品序列,主要是SQL+业务场景分析,偏产品。
斗鱼数据分析,偏运营。
4.聊天型:以项目介绍,了解基础情况为主
5.未知型:阿里,百度
百度数据分析是算法岗入口,也就是按算法标准招,进去做数据分析,例如我实习的部门数据挖掘和数据分析技术栈是一样的...
阿里面经太少,有的是纯业务,有的却偏技术。
总而言之,有些岗位title是研发,算法的也可能会从事类似数分的工作。
四.统计知识(AB实验)
统计知识例如常见分布,T,F检验,方差分析等可以按照应统考研来准备。AB实验原理如下
五.SQL面试题整理
关于SQL准备,我认为可以分为两个阶段
1.基础语法,可以去牛客和leetcode练习
牛客是免费的,但是题目比较杂,且刷题体验不好。
leetcode付费,但是刷题体验比牛客好
2.面向面试的进阶,面试题往往是基于业务中面临的具体问题,多考察窗口函数,比这些刷题网站要难,具体可参考我面试整理的SQL题
六.业务场景
这个我经验不多
七.其他
最后就是机器学习算法+概率题部分了。
对于机器学习,如果以前是学算法的,那么肯定看过西瓜书和李航的统计学习方法,对于数分的机器学习面试,是比较简单的。
如果以前没学过,我认为可以不用花时间学,有兴趣可以看看,作为知识储备,简历上不用写。但是自己要在分析思维上有优势,再加上实习经验丰富,拿到高薪大厂offer不是梦。
概率题就多看看牛客上的面经,多复习下概率基础。
全部评论
(43) 回帖