转载: 10+公司SWE/DS offer经验

转载自一亩三分地: http://www.1point3acres.com/bbs/thread-436967-1-1.html

分享一下我的求职面试经验。

本人是美帝统计系MS毕业, 有一年数据科学工作经验和半年实习经验。因为在学校里上了不少CS课,自己平时也比较感兴趣会写点程序,编程基础较好。这次进行了美帝DS/SWE的海投,主要集中在加州。

首先总结一下战果:
SWE offer: FLAG中某家, Tesla autopilot, Rubrik, Microsoft, drive.ai, BAT中某家国内分部, BAT中某家国内实习
偏Data的SWE offer: FLAG中某家, Pinterest, bloomberg NY office, 某国内电商的硅谷分部
DS/quant researcher offer: 芝加哥某top trading firm, Walmart lab, FLAG某家
另外还有一些名气比较小的公司的offer还有几个withdraw的就不列举了。
拒信拿得比较少,除去一些没有面试直接拒简历或者面试过了但是出现别的变故的公司,挂了Robinhood电面(问的比较system design)和NY某top trading firm的电面(问的比较probability theory),都算是本身就不太match吧。
个人认为自己的经验还是比较适合想找DS或偏DS工作且编程基础不错的同学借鉴的。

面试准备:
我面试的时候主要分了两块,一部分是统计和机器学习的复习,另一部分是编程。
第一部分我同学推荐了一个很全面的网站,但貌似不火: http://www.dscademy.com/。不知道作者是什么人,但是总结地非常清楚,其中包含了机器学习算法的总结、实例、一些常见面试题。我在面试偏DS/ML的职位中有不少问题和上面的基本一致,帮助很大。里面的概率论和编程练习题也不错。
第二部分我主要就是刷LC, 本人刷LC的时间较长,建议大家focus on前150题的Median难度题。如果是想试试SWE的话要求会高一些。

投简历:
大多数公司我都是想办法找认识的人或二度熟人内推,个人觉得找内推过简历的概率会高一些,而且之后也会有人帮你一直跟进进度,比较推荐。另外熟人内推比二度熟人要好很多,因为不是很好意思去催二度熟人帮忙跟进。如果是somehow认识一个组的manager,那么进的可能性会非常高, 这种情况下的面试更多是sanity check和给manager一个台阶下, 当然在面试前要留给对方较好的印象。
简历上一定要突出重点,尽量不要写与工作要求技能无关的内容。我是SWE和DS有两份不同的LaTeX模版,然后对于每个公司分别进行一些微小的改动。
如果硬性条件不够突出,可以考虑加一些项目经历能增加简历通过概率。
电话面试和Online Assessment:
个人是电话面试中反而不如onsite面试表现好的那种,因为面对面沟通的时候很多问题更容易讲清楚,而且也能通过面试官表情获得一些反馈。不过电话面试的好处是相对压力较小。我遇到的大多数电话面试都是问一道中等骗难的算法题或者问一下概率统计的问题。较快的反应速度能获得面试官的青睐。
有一些公司除了电话面试还有一轮online assessment, 往往是在2-3个小时内做出一些编程题。大多数都是LC上的原题或变体。

onsite面试:
常见的面试问题类型有:
概率论问题: 给定不均匀的硬币,如何模拟均匀硬币?
统计问题: 解释A/B test。N次impression获得了n次点击,问点击率的置信区间。
机器学习问题: 如何防治过拟合?Logistic回归的损失函数是什么,梯度是什么?
编程问题:反转一个单链表。用Spark进行一个group by average的操作。用SQL进行某个aggregation。
Behavior question: 你理想中的工作是什么样子的?如果和同事意见不同,你会怎么处理?你为什么选择我们?

概率论问题我是看了http://www.dscademy.com/上的概率论练习题,还刷了一下Introduction to Quantitative Finance Interviews
统计问题看了一些面经,看了网站上的假设检验和相关练习题。
机器学习的准备,复习了一下斯坦福的CS229和网站上的机器学习版块。
编程问题前面提到了是刷的LC(主要用的Python)。然后Spark和SQL是网站是看了一点,sqlzoo和LC上再刷了一点SQL。
与电话面试非常不同的是,onsite面试还具有了让你来面试这个公司的作用,并且非常考验当面沟通的能力。除了technical skill以外,个人认为自信的言谈举止非常重要,可以在气场上让面试官信服。面试官每周都要面试不少人,而公司未必有很高的录取率,因此要在某些点上stand out, 例如非常快速地做出一道题或者性格上比较健谈,都是会有帮助的,这些就是所谓的unconscious bias,即面试官潜意识会给性格上自己喜欢的人更高的rating。我认识的同学通过dream company面试就是聊得比较合得来; 甚至我经历的在一场manager面试中,对方直接说这道题你反应那么快那我们可以直接要你了。另外,本人的一个优势点就是编程基础不错,因此在DS的面试中很容易通过coding skill impress面试官。

你可能感兴趣的:(数据科学)