2019 new grad统计专业DS找工上岸回顾

楼主是今年5月毕业的new grad,从今年1月底开始找工作,在上周终于收到了offer,总算结束了自‌己坎坷的找工路。在上个月初还发了一个心态崩溃的帖子,可能有的同学已经看过了。真的很感激当时地里给我鼓励的同学们,现在也记录一下自己的经验,给大家一个参考,也是帮自己回顾一下这段时间吧。

我的背景是国内211大学统计本科,17fall入学的美中村里统计硕士。从研一后的summer开始到研二的fall学期有一段半年的实习,做的是analytics和predictive modeling相关。没学过data structure和相关的算法,所以找工期间投的基本都是analytics和modeling方向的data scientist职位,data analyst也投过一些,其他像sde的职位我就没投过了。

我在找工的这7个多月里,一共投出了600+简历,有30家给过我面试,onsite面了8个。我投的和面的基本都是在中部的中小型公司,大公司像flag和湾区的那些我都没有勇气投。而中小型公司的问题是他们经常一个职位只招一个人,所以我挂了这么多面试有我自己的原因也有运气原因。但总归是坚持下来了,所以如果决定了要在美国找工作,就不要放弃。

接下来说说投简历和找内推吧。我投出的600+简历里面,被内推了的有55个左右,内推人基本都是我在linkedin上联系到的。我会每天早晚没事就刷LinkedIn上的job board,看到合适的职位会先点进公司的employee看看有没有相同职位的中国人,然后和他们connect,可以一次多邀请几个,总会有人通过邀请connect成功。有人接受邀请后,我会发一段自我介绍和感兴趣的职位信息,询问能否给内推。有的人会倾向先和我加微信或者打电话聊一下,有的人会直接要我发简历和第三人称自我介绍到他们的邮箱,还有的人不会回复… 不过要注意时间,如果对于一个职位,这家公司里始终都没有人接受我的connect邀请或者没有人回复我的信息,一两周后我就不会再等了,会去自己提交网申,因为再晚可能职位就要关闭了。如果拿到了面试,我会跟内推人update一下表达感谢,顺便问一下面经(如果他们肯告知),被拒后也会告诉他们结果。在这期间遇到了很多热心的前辈,非常感谢他们的帮助,所以我立志上岸后也会尽力帮助有需要的人~

然后谈谈准备面试吧,我在每一次面试后都会总结一下自己的表现,把自己认为答的不好的问题记下来再练习,这样经历了几次面试后,我所做的总结已经基本能涵盖之后面试遇到的所有问题了。我把面试遇到过的问题分为了几类:

自己的经历:
指的是自己简历上的所有经历,无论是实习还是课程project,都需要能够熟练讲述. 面试中(尤其是tech电面和onsite)都会让你介绍自己的某个project,然后刨根问底,包括做这个project的目的、背景,是与谁合作的,data是什么样子的,data processing的过程,feature engineering的过程,performance evaluation的过程,为什么用这个方法或者model,这样做有什么好处、有什么局限性,还可以有什么提升,怎么interpret结果,有什么发现,(如果是实习project)带来了什么impact,对business有什么影响。总之就是,project中你所执行的每一步,都要讲出具体原因。

Behavioral questions:
我认为behavioral question有两种,一种是对于公司的了解,另一种是咱们所熟知的举例子谈经历,这些一般会在第一轮hr screen和最后的onsite中被问到。

  1. 对公司的了解:
    基于我所经历的面试,我整理出了以下几个常被问到的问题:
    How did you hear about this opportunity?
    What do you know about ABC company? Why are interested in this opportunity at ABC company? (我认为这两个问题可以用同一个答案)
    Why do you want to work in DEF industry?(这个是问为什么对这个行业感兴趣,我在面试financial technology和insurance相关的公司的时候常会被问到)
    What can you offer to the role?
    What is your future career plan?
    这些问题都最好要联系公司的特点回答,会表现出自己做了很多功课并且很有兴趣加入公司,就会给面试官留下很积极的印象。
  2. 举例子谈经历
    这些问题就比较随机了,我被问到过谈自己的优缺点、如何handle tight deadline、如何work on multiple projects、有什么accomplishment、更喜欢work by myself or in a team、遇到过什么challenge. 用STAR法则把事情的起因经过结果讲清楚就行了,把可能遇到的问题总结下来,想好怎么用自己的经历回答,然后多练习。之前有朋友推荐过一个网站可以mock behavioral question,但我还没用过,这里推荐给大家可以去练习一下: https://www.pramp.com/#/

Statistical Inference/Probability/Mathematical Statistics:
对于这一部分,我在⾯试中被问到过如何解释variance,如何解释covariance,如何解释p-value,correlation和interaction的区别,Bayesian inference求条件概率。
我认为对于ds来说,熟悉基本的统计概念和分布,练习一些掷骰子扔硬币求概率的题,还有熟练⽤Bayesian求条件概率,应该就能应对⼤部分⾯试了。我对于这一部分的练习不太多,⼀开始准备的时候Google了一些常被问到的经典概率和统计题做了⼀遍,然后记下了做错和不会的题,之后每次面试前会再拿出来看一下。

Machine learning/predictive modeling:
这一部分很重要,也是我在⾯试中被问到最多和准备了最久的。强推一组视频:https://www.r-bloggers.com/
这组视频是Elements of Statistical Learning这本书的作者们制作的,⼏乎涵盖了所有ds会被问到的方法和model,讲解⾮常明白易懂。我当初看了了⾄少三遍,其中Chapter 3, 4, 6, 8看了了⾄少五遍,面试前会有针对性的再看⼀下。对于每个⽅法,我都深入理解了其中的methodology并能⽤⾃己的话讲出来,并且总结出了方法之间的区别。我在面试中常被问到的有logistic regression, random forest, boosting的优缺点和区别,还有bagging和boosting的区别,还有如何tune这些model的parameter. 除
了model,我常被问到的问题还有bias-variance tradeoff的解释, overfitting, underfitting的表现,还有如何防⽌overfitting. 这些问题都在视频里讲出来了。
另外对于这一部分,还需要练习如何给non-expert解释machine learning的⽅法。我被问到过如何给non-expert解释ROC curve, AUC value, logistic regression, p-value. 这些问题不提前准备一下的话,在⾯试中被问到很容易说不好。

Coding:

  1. 算法
    就像一开始所说的,我不懂data ‌structure,所以Leetcode的算法题我刷不动… 但我还是练习并且理解了two sum和parentheses这两道经典easy题,这也是我唯一做过的两道算法题。我在面试中也只被问到过two sum,可能是因为那些要求更高的职位我都没投吧。
  2. SQL
    SQL我练了很多,也在面试中被问到了很多。我在学校没有专门学过sql,实习中用的也很少。我是在开始找工作前,在coursera上完了一个叫introduction to sql的网课,然后就开始在Leetcode上做题了。我把Leetcode上的database中的easy和medium都刷过不止一遍,每次在面试要求sql的职位之前我都会拿出来过一遍。感觉偏analytics的ds职位都对sql要求会比较高,所以sql的熟练很重要。
  3. R/Python
    基于我的面试经验,使用这两种语言的职位比例大概一半一半,不过注意我面的都是analytics方向的ds. 所问的问题也大都是data manipulation相关,比如如何去除missing value,如何merge两个dataset,如何在R/Python中做left/right/inner join,如何写一个函数并作用于整个dataset.
    对于R我没有专门的练习,因为学习中用的比较多,我只是Google了一下常见的R programming面试题然后背了几遍。对于Python,我着重练习了pandas 和numpy去做data manipulation,推荐几个链接:
    https://www.kaggle.com/learn/python
    https://www.kaggle.com/learn/pandas
    https://www.practicepython.org/

Case study:
这一部分,我在面试中被问到的问题大都是考察我对公司产品的理解,考虑问题的方式,和对model的运用,可以从两方面准备:

  1. 结合job description和公司业务
    需要对组里所做的project有一定了解,大体知道是在处理什么问题,这些都可以从job description上基本了解到。在面financial technology的公司时,我被问到过“在决定是否approve申请者的credit card application的时候,我会用到什么feature”,“在决定是否approve申请者的loan application的时候,我会用什么feature,用什么model”。在面insurance的公司时,我被问到过“在预测auto insurance price/number of claims时,会用到什么feature”。会有相应的followup question,比如如果classification的response是highly unbalanced怎么办,在modeling前可以采取什么措施,在modeling后又可以怎么处理imbalance的问题。这种case问题,言之成理即可。
  2. 学习面经
    我在学习case study的时候,一开始无从下手,不知道从哪里找资料。后来我逛多了地里,发现很多公司的面经都很有参考价值,从别人的经验中可以明白case study思考问题和解决问题的过程。我常看的是Wayfair, Facebook的ds的面经。

就是这些了,new grad找工作不容易,贵在要心存希望、坚持、多总结。希望大家找工季都顺利~

3 Likes

你好,https://www.r-bloggers.com/ 里为什么没有视频呢?

1 Like