全面解析数据科学、商业分析以及数据分析岗位的面试异同


(yishui) #1

本文选自BITTIGER讲座内容,关注公众号BitTiger获取更多求职干货!

2018年,对掌握Deep Analytical Skills的人才的需求有140000~190000的缺口。对大数据熟悉和编程能力的强调已经成为了大数据时代的一个要求,所以,这也是大家以后学习和补充的一个方向。

职位行业分布

![](data:image/svg+xml;utf8,)

大家可以在上图中的左边的图中看到,其实各行各业都需要数据分析师或数据科学家。因为大数据时代的到来使得数据越来越多。

数据只是表象,其实背后隐藏了更多与Business相关的,与运营相关的或者与产品相关的一些Insights,所以就需要一些能读懂数据的专家去做一些分析与预测,去建立一些模型,去帮助企业真正的提升业绩。

BA更多的是做流程上的Business层面的分析和修正,DA和DS更多的则是从更长远的发展上去做一些分析。各行各业都在招聘分析师,比如汽车类的行业,沃尔玛等互联网的分析,尤其是传统的生物医药,金融,这是最早的数据分析起始的部分。

右图一方面是为了证明这些行业的需求,另一方面是为了解决有些同学说为什么工作内容相似或不相似的一些职位的Title每个公司都不同。

![](data:image/svg+xml;utf8,)

上图中列出了跟DS相关的职业的Title都有哪些。Title有很多种,有些工作内容一样,有些不一样,很多同学都会分不清楚。下面,我们就会讲每个Title的具体含义和你更适合哪个Title。

数据分析Lifecycle

![](data:image/svg+xml;utf8,)

下面,我们去分析一下数据分析的整个Lifecycle是怎么进行的,以及Lifecycle中的每个环节都对应什么职位。每个时代都有不同的重点,入了DT的时代后,我们就可以做更多的事情了。

上图中最左边是Data Source,下面是System Infrastructure,是用来显示所有东西的系统架构。Data Management是做数据的管理,因为很多数据需要做集成,把Dirty的数据Clear或者结构化,然后去做分析,在分析时有描述、预测和优化,最终的目的是得到一些在商业上(图中写BI)做出一些商业化的有用的东西。这就是典型的从萃取数据到分析数据然后最终变成对具体业务有帮助的(比如销售,财务)这样一个流程。

数据团队的构成

![](data:image/svg+xml;utf8,)

上图中的流程中有Data Scientist,Business Analyst,Business Intelligence Engineer和Data Engineer。

![](data:image/svg+xml;utf8,)

上面这个图表示出了BA,DA,DS的分工。

Business Analyst不建议翻译为商业分析,应该是业务分析。因为在早期时候,一个公司一般会有这样的两个职位:Program Manager和Project Manager,他们主要负责产品,负责业务方向的发展。那么,这里就有一个问题,就是怎么去构建公司的市场规划,产品规划,财务规划,怎么给大老板一个清晰,Make Sense的计划,细到要招多少人,要给多少钱,未来要怎么给公司Return等问题。

2015年前这样的事情大多都是一拍脑袋决定的,一个优秀的Program Manager和Project Manager凭借他的行业经验和他对经验敏感的嗅觉来决定。那么到底这些决策准不准?在现在的大数据时代,所有东西都需要用数据来说话。

所以目前BA的核心工作就是结合自己的业务,在基于业务的层面上,利用一定的数据分析的能力,主要是SQL,Python或者R去帮助老板做Presentation或回答他的问题。

举个例子,如果一个公司一共有5款产品,那哪款产品在什么样的市场最受欢迎,哪款产品分别在全球的不同市场的投入,支出,收益的比率最高与最低?也就是经常要给不同的产品,不同的项目组做数据报表,对产品排序,通过数据来说话。

这时候你会发现,BA是站在高管的角度,利用先进的数据分析的能力,来给公司提供决策支持。这就是BA干的事,他们需要经常和高管见面去Present业务上的一些新的想法,这些想法的基础就来源于数据分析。

如果一个同学的Coding不是很强,但是很Smart,并且情商比较高,就建议他去走BA这个方向。因为BA有很多机会接触高管,升职机会很多。BA最重要的是了解业务流程,第二重要的是了解上级的想法,第三重要的是有一定的数据分析能力。

Data Analyst就是去分析为什么这个产品在这个地方受欢迎,在另外一个地方不受欢迎。DA就是基于现有的数据找出背后的原因。

Data Scientist就是去解决问题,比如怎么把公司的物流,产品,财务等做到极致。这里面就涉及到重新建模的东西了。在一些大数据实验里面,Data Scientist往往是做比较核心的东西,Data Analyst往往做类似于助手的工作。DS要想办法通过模型的优化,产品的优化,数据的优化,去达到目标或者提高参数来使得用户更满意。

![](data:image/svg+xml;utf8,)

上图所示的是一个Circle,大家可以看到左上方是Business Understanding(业务理解),这个很重要。因为BA要了解自己要干什么,他们的目标是为公司赚钱,所以一定要把客户关系处理好,产品做好,现金流做好,资本市场做好。这些每一个都是一个业务,业务下面映射的是很多的数据,所以要理解数据。这些数据往往都有很多问题,比如非结构化,脏数据,所以需要对数据做结构化,数据Cleaning这些东西,叫Data Preparation。

当你把数据清理干净后,就要放入模型里面,模型一般都由Data Scientist来做,然后要进行Evaluation,Evaluation后又会回到Business Understanding,这叫结果导向。这就形成了一个闭环Circle,目的是为了把客户的现金流最大化,最终如果达到了要求,就可以部署上去。

不管你是什么专业,如果你要做BA的话,核心是喜欢和公司高管在一起,喜欢和人打交道,要能在管理层内部如鱼得水的工作。一些做的比较好的Senior BA, CEO开会时一般都会带着他们。因为在开会的前一晚要为CEO准备大量的数据,素材,PPT等。BA的上升空间很大,薪资发展也很大。技术固然重要,但是在业务上面的提高对公司的促进也是巨大的。

职位发展路径

BA职业发展路径

![](data:image/svg+xml;utf8,)

如果你做BA,从技术路说,你有两条线路:

1. 刚进入这个行业时你需要做的就是把积累BA所需要的技能。具体的工作业务经验要慢慢积累。BA你刚开始进入公司是Junior级别,时间长了以后,随着你对业务越来越理解,你会成为 Senior,然后成为Director,就是部门主管,后来可能会成为Staff,Principal,最后到CXO。BA的核心就是当你熟悉一块业务之后就走管理路线。

2. 如果你做了一段时间BA之后,你对业务都很了解了,但你与高管的关系不是很好,那你可能会去做DA这个工作,分析产品问题背后的原因,最后可能成为DS,来把这些问题都解决。

如果你想做BA,一定要珍惜高管问你的每一个问题,就算他问你比较简单的问题,你也要在数据上面展示的很好。这样你的职位会上升很快,如果你对一些问题一问三不知,他就不会再来问你了。

从管理路线来看,BA可以做Senior,再做Manager,然后做Project Manager。其实BA本身就来自于早期的Program Manager和Project Manager。

DA职业发展路径

如果你做DA的话,处理的就不是业务上的问题,BA是发现问题,DA就是要解决问题或者找出那些问题的原因,然后让DS来解决这些问题。所以在技术路线上来说,DA可以做Senior DA,然后成为一个DS。

DS职业发展路径

在技术路线上,DS可以先做到Senior DS,然后做到Principal DS,当你做到这一级的时候,CEO会经常因为产品层面上的问题来问你。接下来会成为Director,最后会做到Chief,就是首席科学家。

技能需求

很多同学说自己想找BA的实习,但不知道SQL,Python,Excel到底要学到什么程度,技能需求这一部分就是给大家解决这样的问题。

![](data:image/svg+xml;utf8,)

对于BA来说,AB Test是必须要掌握的,以及简单的概率统计的知识也要有,SQL和Excel是非常关键的,但Model的运用比较少,Python和R你只需要会非常简单的技术就可以了。当然,Communication非常重要,因为你每天都要跟高官打交道。

DA的核心是要解决问题,所以对Python和R有一定要求,对统计,A/B Test和SQL的要求比BA高,并且要求会一点Model。

对于DS,他们的核心集中在Model和Python等技术上面。因为DA会帮他们处理好数据,很多情况下,DS的工作都是在DA辅助下完成的。

![](data:image/svg+xml;utf8,)

如上图所示,BA和DA对Python,Excel,SQL,BI Tools有一定要求,对于Model只要了解就可以了。

![](data:image/svg+xml;utf8,)

如上图所示,如果你想做DS的话,Python,R,SQL,包括Tensorflow你都要进行深度学习。最近比较火的让机器取代人就是用计算机模拟人的大脑的神经网络的方式去搭出一个类人的神经网络,非常有意思。当你发现你的机器像一个小孩一样每天都在进步,在成长时,你会很有成就感。DS的技术核心就是Math,统计数学,以及信息基础和Business之间交叉的这个部分。

技能对比

![](data:image/svg+xml;utf8,)

Data Science这个学科有BA,DA,Data Engineer和Reporting Expert。Data Engineer的核心是给上层分析数据的人提供强劲的数据访问的基础。Reporting Expert会慢慢被BA取代。目前,还是BA先创造图表和数据。但是还是由另外一些人去做Present和Report。但是以后BA会逐渐取代Reporting Expert,BA会又分析数据,又做PPT,又写Report,最后直接交给老板。

下图中显示了DA和DS的技能对比,其实这两个职位的技能是有重复的,DA中的中级统计你只需要知道一些统计或概率的大概知识就可以了,DS中的高级统计就要求你把旧的东西在脑子里融合出一个新的东西,来为业务和数据服务。

![](data:image/svg+xml;utf8,)

数据方向面试

面试考察点与侧重

![](data:image/svg+xml;utf8,)

上图显示了BA,DA,DS的不同面试考查点,有统计概率,SQL,R,Python,A/B Test,包括一些算法。这里面有着重点,对于BA和DA来说,前面几项是重点考察。

也就是说作为一个BA和DA,前面几个问题你都答对了,那么就算后面的问题答得不是很好也没事,因为面试官往往会再给你一次面试机会。如果BA和DA前面5个问题没有答好,无论后面的问题答得有多好都得不到下一个机会。

对于DS来说,A/B Testing,Experimental Design,算法,ML,大数据都是重点考察的内容。如果你这5个部分答得非常好,其他答得不是很好也有可能得到下一轮的面试机会。当然最好的情况是你都可以答对。

在这里我们强调一点,你的工作,实习和Project要有价值,要做到就算你站在一个面试官的角度也会觉得自己的工作实习很有分量。

![](data:image/svg+xml;utf8,)

上图中虽然每个职位在这三个技能上都打了勾,但侧重点不一样。在北美,不管是Facebook,Amazon还是Google,都有大量的Behavioral Question。比如许多年前有一道面试题时问你帝国大厦有多重,这道题没有准确答案,因为帝国大厦里面还有汽车,有桌椅,有家具,有人,所以这是无法准确回答的。但是,你要讲出一种妥善的思路,这个妥善的思路最后可以不断逼近帝国大厦真实的质量。你可以想个办法,比如看它地上有多少层,地下有多少层,体积多大,里面空间有多少,每天日常人流量有多少。这样你就可以和面试官互动,这个环节被称为Query Question,在问询的过程中,面试官就会知道你是否聪明。包括也会问你最成功的一件事,最失败的一件事,最得意的一件事是什么这种问题。

大公司面试考点分析

刚才我们讲了BA,DA最重要的是SQL题目,下面我们来看一下这道题。

SQL面试题目

![](data:image/svg+xml;utf8,)

![](data:image/svg+xml;utf8,)

一共四个Table,拿出这道题的原因是想告诉大家你在学校里面学的东西和工业界的东西差距很大,工业界面试时问的问题都比较刁钻。我们现在来看一下这道题目。

第一张表A表,包含四个File:AID,Name,Title,Type,每个下面都有不同的内容。第二张表B表,有ID,AID,Int_Value,Varchar_Value。注意,这两个表中的AID有对应关系。下一个是C表,C表很简单,有一个ID,Name和Attri_Id。Attri_Id里面有1,3,这里的1,3对应的是表B的AID中的1和3。现在问你,D表中的Height和Material是什么。

这道题该怎么解呢?通过表D,你知道了你的ID是1,Name是Box,所以你先要在表C中找到Box,然后找到它的属性指分别是1和3。再在表A中找到1对应的Title Hight,3 对应的Title Material,然后在表B中找到1所在的Hight对应的值是10,3所在的Material对应的是Golden。所以得到表D中的Height是10,Material是Golden。

拿出这道题是希望大家可以对SQL有一个清楚的认识,希望大家提高自己的深度。

Machine Learning面试题目

![](data:image/svg+xml;utf8,)

如果你是做DS,DS就会有一些ML的问题,比如SVM内部的解释,拉格朗日算子,Duality Problem,调参和Overfitting For SVM等问题。其实核心就是别人想知道你调参的一些细节,但是他没有办法直接问你,所以就会问你很多数学的内容。也包括XG Boost的残差学习,Overfitting For XG Boost,调参,Stacking等问题。这些问题都是DS中最基本的一些问题。同时也包括最近很火的Deep Learning的RNN,长短期记忆以及GRU门控单元的机理你需要搞清楚。

DA方面的ML的考察一般不会问的很深入,但是一般会问你如何Overfitting,Overfitting是什么,为什么会Overfitting,如何去调参等问题。比如会问你做的项目中有没有SVM,有没有XGBoost,如果你说有,他会问你当时是怎么调参的,

大公司面经分享

![](data:image/svg+xml;utf8,)

我们来讲一下Amazon的面经。

Amazon的面试一般第一轮是HR筛选,HR觉得你比较Match之后就会跟你进行Phone Screen,这个一般比较容易过。如果你能得到Onsite的话,你后面还会经历4轮面试,其中一定有一轮是Behavior Question,面试官会给你设定很多假定场景,问你最成功,最失败的事这类问题。这一环节你一定要准备好。

其次还会有三轮往往来自于3个不同专业的面试官。如果你面的是DS,一定会有一个精通深度学习或者算法面试官来问你45-50分钟的问题,剩下的15分钟还是会问你一些Behavior Question。只不过这些Behavior Question会嵌扣到你的深度学习或机器学习的算法里面。除此之外,如果你面DS,可能会有两个面试官来面试你,但他们有不同的侧重点,有的会问算法,有的会问深度学习。最后如果你是DS,面试官会问你一些Program。如果你是BA或者DA的话,其中有两轮面试一定会问你SQL和Excel的东西。接下来会有一些Business Question,这和Behavior不太一样,面试官会问你关于公司的业务流程,会给你一些假设的场景,问如果你是某人你要怎么办?这里会涉及到关于概率统计的一些知识在里面,它是一个基于假设场景的概率统计和具体Task的结合。

4轮面试下来差不多一天就过去了,所以Amazon的面试很辛苦。Google和上图中列出的其他公司的面试都不一样,它有很多考你聪明与否的问题。比如给你一些数学的求导让你去求,但这些数学题又不完全和数学有关,需要你有很多其他的技巧。Airbnb的Data Challenge这个部分非常注重AB Testing,这是Analyst一个比较核心的技能,所以大家要尽可能把你每一部分的专业技能都大幅度提高,千万不能报侥幸心理。

Amazon和Facebook一般不会出Leetcode上面很Specific的Code问题,它们会切入到一个主题里面。比如说有一个小村子,这个小村子里面有一个法官,所有人都相信法官但法官不相信所有人,普通人彼此互不相信,让你写一个最高效的查找算法,能够查出具体一个东西。你需要把一个具体的问题变成数学建模,建完模之后,再去编写Code。

BA/DA/DS面试流程

下面,我们来讲一下BA/DA/DS的面试流程。

![](data:image/svg+xml;utf8,)

如上图所示,一般来说,面试的流程有三步,第一步是HR面试,如果你通过了HR面试,就说明你的背景基本符合要求。然后你会进入到Technical Interview部分,会经历1到2轮。如果你全部通过了就会进入到Onsite Interview环节。

在HR面试环节,你一定要对自己写在简历上的东西了如指掌,每一个项目都要如数家珍。HR面试过不了就说明你的准备有问题,就像有的同学说自己英语不过关,也其实也是准备的问题,因为同样的自我介绍你说5遍和50遍的效果肯定是不一样的。有些同学怕实习经历之类的自己现场表达会不太好,那你可以提前写下来去背诵。除了Behavior Question以外,你的背景经历,你的Sponsorship,你是什么身份这些是否符合职位要求都是HR会问到的问题。所以,你在面试前期要仔细阅读JD。另外,非常核心的一点是你对公司的了解和对职位的兴趣。尤其是很多中小型公司特别在意Culture Fit,他们会很在意你是否对他们的产品感兴趣。这是可以理解的,因为可能小公司就要靠着你的一腔热血,他们在Benefit和薪资上没有办法给你很多Support,所以他们真的希望你看好公司的业务和产品。 HR面试这一轮比较经典的问题就时你未来5年对自己职业的规划。

进入Technical Interview之后就是进入Hard Skills的部分了。不管是DS,BA还是DA第一轮都会考到统计概率,这是最基本的一个内容,如果你连这个都过不了的话面试肯定是过不了的。Coding取决于职位,SQL,R,Python都会有不同程度的考核。这一部分以SQL为主。

Data Challenge这个部分,就是给你一道题让你去做。这些题有难的也有简单的,有从几个小时就可以做完的到需要几天才能完成的。这个就是考核大家的硬实力。大家拿到Data Challenge一定要给老师看一眼,不要因为提交了错误答案而浪费机会。Case Interview,Project Experience 这一块不同的面试官问的东西就会不一样。有可能是你同组的DS去面你,也有可能是你同组的BA去面你,他们想要了解你之前的Project或者实习,工作的经历,看你是否能和招聘职位Match,Match的程度越高越好。比如Amazon招聘,他们非常Prefer那些有Ebay工作经验的学生,甚至经常叫第三方公司去挖一些在Ebay实习、工作过的人。

Technical Skills的第二轮面试取决于你的面试官,面你的人有时候是你同组做Technical的人,有时候也可能是PM或者Manager。这主要看公司的大小。一般来说,越是职位高的面试官越在乎你Behavior Question。比如你在Team里面合作沟通的过程中是否有Conflict,你和老板有意见分歧该怎么处理等问题。这些问题如果你不能马上反应出来的话,就要提前准备。这些问题在Glassdoor等平台都有解答,如果你周围有业界工作的人,你也可以去问问他们,给自己做一些铺垫。

Onsite Interview阶段大公司一般会面一天,很辛苦,首先你心态要好,很多学生早晨面了两轮觉得自己面试的不好心态就很容易崩了。但是这个面试是投票机制,你一轮面的不好不代表拿不到Offer,所以心态一定要好。

Onsite部分就是综合的一个考察,会有基础部分的提问,Coding方面的SQL,R,Python都会去考,Hard Coding的Algorithm。另外,Case Interview,Work Experience,Behavioral Question都是需要你提前做准备的一些部分。

%1.%2.%3 BA/DA面试准备

![](data:image/svg+xml;utf8,)

前面我们也提到了BA和DA比较相似,针对General Behavior Question,你要提前准备,搜集公司的Model,Product,面试的Team等信息,你准备的越充分发挥的就越好,而且面试官也是能感受到你投入的时间的。有时候对于同样程度的Candidate,如果对方比你显示出了更大的诚意与Passion,可能公司就招他了。SQL部分重点是熟练度,它是相对比较简单的一个考核模块,你一定要很熟练。统计概率你要有深刻的理解和应用。它考核的内容只有几个方向,包括硬币,做一些数学的计算。你提前一定要自己多训练。Case的部分是面试的一个重难点,不管是DS,BA还是DA的学生都觉得它是很难攻克的一个堡垒。这块一定要做积累,提前做准备,要多读一些Case。Case比较注重的是End-To-End这样的一个分析流程以及如何把一个Business的问题转化成数学问题。工作,实习,Project这部分也很重要,这一部分最核心的不是你有没有实习,有没有工作,而是你做了什么东西和你为什么要这么做。

DS面试准备

![](data:image/svg+xml;utf8,)

DS面试与BA和DA面试有区别的部分有以下几个:

1. Python部分,会有一些算法的考核,以及要求你有过真正的工业界的实战经验。

2. Coding的部分要多训练,要跟你的实习,工作,项目的实战结合起来。

3. Machine Learning的部分很难准备,所以不管你通过什么样的平台都一定要去上课,要听一些在业界有多年工作经验的人给你分析如何去使用和深入的理解。

如何选择方向

短期发展

![](data:image/svg+xml;utf8,)

大家可以根据上面的表格给自己打分,看自己是一个什么背景。在选择发展方向的过程中,技能是一方面。兴趣也是一方面,短期之内建议大家以技能为主,大家要考考虑到自己的时间问题。如果你的背景和上表列出的情况相似,建议大家去投BA和DA的职位,以BA为主。如果觉得自己能力很欠缺的学生就要抓紧时间去补技术。

![](data:image/svg+xml;utf8,)

上图是一些学生的真实例子,第一个同学拿到了BA和Market Research/Analytics方向的职位。现在Market Analytics的Opening非常多,对Market感兴趣的同学可以去投一下这个方向。第二个商科的学生找到了Marketing Analyst的工作。第三个统计的学生拿到了Facebook的BA工作。

长期计划

![](data:image/svg+xml;utf8,)

这个部分的学生,大家可以根据上面表格给自己打个分,然后思考自己未来的兴趣方向和职业发展。如果你的技能背景和上表描述的相似,建议你去找DA,DS方向的工作。具体怎样发展还是要看你的兴趣。下图是一些简单的案例:

![](data:image/svg+xml;utf8,)

第一个同学拿到了Microsoft DA的工作,数据方向相对更有意思一些。最后一位同学,他的专业是EE,他拿到了LinkedIn的BA方向的工作。