面试近百场才明白 原来这5点最重要丨Data Scientist求职亲述

 

听如何收获Yelp,Hulu等4个offer?读过的小伙伴都感叹:都要是早知道这些就好了!回复【Data】,获取24页DataScientist面经精华。...

回复【Data】,获取24页Data Scientist面经精华


作者背景:北京交通大学本科,信息与计算科学专业;乔治亚理工大学Master,Computational Science and Engineering专业。

Offer:Yelp, Hulu, ServiceNow, 以及湾区某Startup近两个月的时间里疯狂地投了200多份简历,聊了50多家公司,搞了近百场面试。拿到了ServiceNow, Hulu, Yelp以及湾区一家Startup的Data Scientist offer,最后从了ServiceNow。趁着最近记忆还鲜活,唠叨一下自己这两个月面试的心得体会,希望能够帮助有需要的同学。

Master毕业后在一家Startup做Data Scientist,到今年1月裁员的时候刚好干满一年。之前工作主要集中在两个方面,一是客户与产品分析(customer conversion / churn analysis, product analysis),二是数据分析产品的研发。这次找工目标是Data Scientist,另外也有面过Machine Learning Engineer, Software Engineer。

面过的公司里面以High tech公司为主,少部分是传统行业的公司。Data Scientist面试的基本流程包括:

  • 一到两轮电话面试
  • Homework Assignment
  • Onsite interview(通常四到六轮面试)


其中,电话面试主要是聊聊简历,问问机器学习概率统计,写写代码。Homework Assignment, 通常是给一个简化但与实际工作相关的问题,根据给出的数据进行建模、分析、完成报告。Onsite interview里每一轮面试的侧重点都会有所不同,但是基本上是电话面试的扩展版。面试内容可以归纳为简历、机器学习、概率统计、算法与Coding、开放性问题五个方面。
1

简历

由于目前数据行业从业人员背景千差万别,所以不同背景的面试官关注的点可以能不一样。有的侧重于具体的技术细节,有的更看重Business impact。所以在准备简历的时候,最好能保证两个方面都照顾到。在聊简历到过程中,常被问到这些问题:

  • 为什么用某一种方法及与之相关的各种技术细节
  • 如果有机会重新做这个项目,有什么可以改进提高的地方等等


聊简历的终极奥义是引导面试官聊你最熟悉的内容,引导面试官问你想让他问的问题(能体现你的水平与思考的)。总的来说,简历从写到聊,水很深。但是最基本的要求,必须熟悉简历上的每一句话,每一个关键字,了解每一个技术点。

2

机器学习

机器学习是Data Scientist面试中非常非常重要的一个部分,因为这是Data Scientist看家吃饭的技能,所以机器学习的面试结果会很大程度上左右最终面试结果。一般公司会从广度、深度、经验三个角度进行考察。

从广度上讲,应该对机器学习各个方面(Regression, Classification, Clustering, etc.)的算法都有所涉猎。不要求精通,但是至少能够用几句话描述出
算法是在怎样的假设下用怎样的步骤解决了怎样的问题,有什么优缺点。
从深度上讲,一方面能完整的掌握几种机器学习的算法。不仅仅知道算法是干什么的,更要知道与之相关的数学推理、技术细节。比如Naive Bayes怎么利用Naive Assumption简化,比如AUC为什么对于数据不平衡问题不敏感等等。另一方面,能够对算法进行横向比较。比如什么情况下Random Forests 比Gradient Boosting好,什么情况下不如GBM,为什么会这样。

从经验上讲,侧重的是考察与实际项目有关但是在课堂或教科书里一般不会涉及的内容。比如,

  • 如何进行Feature engineering,
  • 如果数据量比feature量少怎么办,
  • 如何解决Imbalanced data classification的问题,
  • 如果模型的Performance没有达到预期应该怎么办等等


3

概率统计

面试中概率有关的都是一些很经典的问题,比如红白球取某种球的概率,计算条件概率,根据贝叶斯公式计算概率等。统计相关的概念也经常会被问到,比如什么是p值、置信区间、最大似然估计、中心极限定理、大数定律等

如果职位对统计的要求较高,也会涉及一些统计检验方法,比如如何判断两组数是否来自同一分布。AB test也是一个统计的考察点。

4

算法与Coding

Data Scientist对于算法和coding的要求相对较低,不需要像Software Engineer那样要求bug free。

能搞定Leetcode medium难度,明白时间及空间复杂度,知道基本的数据结构,就能应付绝大多数Data Scientist的面试。

与Data相关的题目被问到的几率相对较高,比如find median from data stream, median of two sorted array等。另外,简化版的k-means,tf-idf等机器学习的算法也有被要求过现场写代码。此外,SQL基本是必考内容,从各种不同的Join,再到一些高级技巧都所涉及,基本上过一遍w3school就能解决绝大部分SQL题。
5

开放性问题

我把开放性问题分为三类,一是实际问题的Case study,二是“之前的经历中有没有遇到过xxx问题”,三是Behavior questions。

Case study简单来说是对面试官提出的一个工作过程中可能会遇到的问题,要求进行分析建模。这个问题可能是偏技术的,如设计一个推荐系统,开发一个数据有关的功能。也可能是与公司产品、客户、运营有关的business问题,如怎样进行客户流失分析等。
 我个人的回答思路是:
首先明确问题并将其转换成建模问题
确定需要什么样的数据
进行feature的构建及选择,模型评估方法的选择,模型的构建与测试评估
最后谈一下结果的delivery
“有没有遇到过xxx问题”也是一类经常被问的问题。这需要注意在工作过程中的积累,平时多思考。如果真的遇到不熟悉的问题也不要慌。这类问题典型的有:

  • 有没有遇到过数据不足的情况
  • 有没有缺少可信的Labeleddata或者数据质量突变的情况
  • 如果数据量太大不能放到内存或者一张硬盘中应该怎么处理等等


Software Engineer面试中很少会涉及到Behavior questions,大家都上来直接做题过招。但是Data Scientist面试中这是非常常见的,估计是因为Data Scientist工作中经常需要同时与技术和非技术的同事打交道。

除了怎么进行团队合作、遇到意见不一致怎么处理、怎么进行日常交流等常见Behavior questions之外,诸如“如何向没有数据背景或者没有技术背景的同事解释模型”、“在Business objective不明确或无法实现的情况下如何进行交流沟通”这种与日常工作紧密结合的问题也会被问到。

以上就是我的一些小小经验分享,希望能够帮助有需要的同学。最后归纳一点我自己的心得体会:

拿面试看简历,拿Onsite看实力,拿Offer看沟通。作者:qingbinlee

由MintyMentors整理转载自网络
【经验+干货才是Offer的双重保证】
Data Scientist面经 部分预览
回复Data,领取长达24页 面经及答案分析!
来晚了不要紧,一键查看优质文章

《同事不会告诉你丨千万别在办公室犯40个坏习惯》

《CS专业,应该留美工作几年还是毕业就回国?》

《OPT申请攻略,看这一篇就够了》

《F1求职实用技巧, 如何找到Sponsor H1b和E-verify的公司》

《逃过两次投行裁员潮: 你为什么需要一位职场导师》

《作为国际学生,我是如何找到管理咨询工作的》

《职场如战场,Excel就是你的制胜武器》

《7个秘诀,治好你的Networking尴尬症》

《资深猎头教你如何把自己“卖入”金融界(上)》

《资深猎头教你如何把自己“卖入”金融界(下)》

差点你就错过这些福利!

回复营销领取价值$100的Marketing圣经书籍

回复整理领取4小时MintyShare微课&金融求职讲座文字版

回复PB获取私人银行详解&入行必读

回复Excel领取投行内部Financial Model Template

我们能帮你简历及文书修改丨模拟面试丨行业导师咨询

公司内推丨招聘计划


    关注 MintyMentors


微信扫一扫关注公众号

1 个评论

Data, 真的很有用的教程,让我受益匪浅。谢谢,非常感谢

要回复文章请先登录注册