深夜大哭三次,面挂>7家公司,让我坐下来好好跟你聊聊Data Science面试中的那些坑 (附面试经典流程)

深夜大哭三次,面挂>7家公司,让我坐下来好好跟你聊聊Data Science面试中的那些坑 (附面试经典流程)

羽小嘴
羽小嘴
2.22万 浏览

这篇文章是接着上一篇文章继续聊一聊。上篇主要写了我是怎么花两年多时间,零基础慢慢转成Data Scientist的。这一篇补齐上一篇的坑,聊聊面试中那些需要注意的事情和心态的调整。
没有看过上一篇的小伙伴裂墙推荐先看上一篇再来看这一篇。


正如上一篇文章说到,我实实在在零基础,从第一个Phone Screen到得到第一个In-Person Interview,再到最后拿到Dream Offer,这条路真心非常漫长(大概半年左右)。其间因为各种不顺,中间大哭过两三次,怀疑自己能不能转成功,怀疑自己的能力和为转行做的所有准备。所以想要单独把这一段拿出来聊一聊,分享一下心路历程。希望帮助正在慢慢面试路上的小伙伴。相信我,你所经历的很多都是别人也曾经经历的,或者正在经历的。别怀疑!相信自己,坚持下去总能看到希望

Hope-web.gif

 

这篇文章就按照面试常见的几个问题类型/面试方法来一个个讲解每一个问题都有哪些注意事项


Phone Screen


Phone Screen比较暴力。一般就是一上来直接考2-3道SQL/Python题,主要就是考你的Techical Skills。一般公司不论大小都有这一步,能够帮助公司快速筛选候选人。过了这个Hard Bar才有后面的In-Person Interview。


有一点需要注意的就是Phone Screen快结束的时候一般都会给你机会问问题。这就是套话/准备之后In-Person Interview的最好时机。一定要想办法问清楚,去的这个组做什么,日常跟什么人接触,日常工作中的困难/挑战是什么。这些会对之后准备In-Person Interview有非常非常大的帮助!!!


In-Person Interview


下面是一般In-Person Interview的大概流程/常见的面试问题类型


Past Project Presentation/Data Challenge Presentation


大部分公司Past Project Presentation和Data Challenge Presentation一般是二选一。有了Past Project一般不会再给Data Challenge,同样有了Data Challenge一般不会再让你给一个Past Project Presentation。所以我把这两个放在一起说。Presentation的时间一般都是要求~30 分钟左右。

Screen Shot 2021-03-02 at 10.04.54 AM.png


如果是Past Project Presentation,审视自己过去做的Projects,有没有能够跟去的这个组或者这个公司有一些联系的(可以是课题背景,可以是所用的算法,可以是最后的Achievements,省时间省钱之类的)。如果有,讲清楚跟这个公司有什么样子相同/类似的地方,可以怎么拿来借鉴运用,这样会非常加分!


还有,对于Past Project Presentation,搞清楚没有人指望你在~ 30分钟左右的时间里讲完以前的所有Projects,所以这个不要贪多!选择2-3个Projects足够了。把每一个Projects的Object,实现的方法,结果讲清楚比一口气讲很多Projects重要的多。


Data Challenge一般是面试之前就做好的。一般是做得好才能拿到In-Person Interview。Data Challenge一般都有时间限定,常见的一般是3-6小时或者一天,当然,我也见过夸张的直接给一周的。做Data Challenge,代码写得清晰干净是基本要求,不需要多说。没有人喜欢看乱七八糟,各种不清楚的注释的代码。提交Data Challenge前,我一般花上~30 分钟重新整理一下代码。也因为有时间限定,往往事后回头看会发现里面有小瑕疵,面试前再一次把做好的Data Challenge拿出来看一看,如果给你更多的时间,你可以在哪些地方做得更加完善一些(这个很容易在面试时候被问到)。

这里有一点想单独拉出来说,Past Project Presentation和Data Challenge Presentation说到底都是考Storytelling的功力。准备Slides的时候想清楚怎么样能够把Projects说清楚,能够让没有太多这方面背景的人也能理解,以及做完这个Project意义/Deliverable是什么很关键。

不论是Past Project 还是Data Challenge里面的问题,大部分情况下都不会只有一种解决方法(不会只有一种算法可以解决),所以想清楚你自己为什么用这种方法而不是其他方法也是必须的,这个问题非常容易被问到。没有绝对的对错,说清楚为什么最重要!

 

Technical Questions

这个部分我个人的经验是大公司喜欢问这些,尤其把Product Sense看的特别重,小公司一般没时间跟你扯太多。

Screen Shot 2021-03-02 at 9.57.59 AM.png


👇都是非常常见的Technical Questions,Google上面搜一搜很多总结的。考点主要是两个:第一个不用说,考你懂不懂这些术语,还有一个对于走Analytic方向非常重要的,就是考你的语言能力。说到底,走Analytic方向的DS很多时候要跟各种背景的人聊,能不能根据别人的背景,讲出他们可以理解的东西很关键。这类型问题还有一种常见的问法就是,can you explain ... to your mom/grandma/our HR team/business partner。在网上找几个总结的List(不用多,30-50题足够),多跟人练习几次。

What are the differences between supervised and unsupervised learning?

How is logistic regression done?

Explain the steps in making a decision tree.

How do you build a random forest model?

How can you avoid the overfitting your model?


Product Sense


这个说到底有点悬,没有什么DS类别工作经验的人真不容易明白这到底是什么。

什么算是Product Sense?就是理解这个公司,或者你要去的这个组(上篇文章有说过这个问题,尤其是大公司,每个组做的东西千差万别)靠什么赚钱?靠什么给出一个Success Story?能不能帮客户/公司省钱/省时间/降低Churn Rate...

Screen Shot 2021-03-02 at 10.04.38 AM.png


这个问题一般是Hiring Manager跟你聊,聊的目的就是看你知不知道这个公司/这个组做的方向到底是什么?你对这个方向有没有基本的背景知识/想法?你知道公司的对手是谁吗?公司产品卖点和竞争对手有什么不同?现有产品有没有什么地方可以改进?面对大方向上的问题你的想法和这个组做的有没有合理的Alignment?如果现有产品出现问题,你能不能尽快发现问题,并且找出解决方法?


你可以从上面列出的问题发现,这些都是Open Ended,大部分问题没有绝对的对错或者只有一种解决方案,大方向到了就好。


很多新人在这种问题上容易犯的错就是

1. 没啥Product Sense,不清楚公司做什么,靠什么盈利。或者觉得去的这个组和去的公司做同一件事情,忽略了这个组的特色。还是上一篇文章里说到的观点,尤其大公司,组和组做的东西差别很多!一定要根据自己去哪一个组,Customize你的答案。

2. 提出解决方案的时候忽略了效率/实际情况。比如公司现在可能没有这方面的数据,或者提出的方法太费时间/钱/人力,现有情况下做不到这个。

3. 公司的终极目标不外乎省钱/赚钱/省时间/提高效率,想想你的答案到底能不能围绕这个主题帮到公司💰


Open Ended Questions

这个跟上面说的Product Sense息息相关。


上一篇里面🈶️说,这个是我个人的弱项。我华丽丽地在这个点上Fail了两个Interview以后下功夫好好练了一段时间。

Screen Shot 2021-03-02 at 10.08.07 AM.png


对于走Analytic方向的DS,Product Sense,Communication Skills都可以在这种题目里面考。


👇说几点我对于这个题型的心得:


1. 没有人能不练习就能把Open Ended Question答好的!如果这是你第一份DS类别工作,面试前至少拿10题出来练习!不要盯着电脑想自己该怎么回答,要找真人练习!!!有问有答有聊天的那种练习!练习完认真写写笔记,看看自己哪里没有答好,怎样扩宽思路

2. 面试的时候听清楚问题!面试官问完这道题以后,先热热身问问问题。不要拿道题就着急发表自己的意见。问清楚题目的背景,梳理一下他/她问这道题的原因,这个问题可能的考点,你会发现稍微聊几句热热身能够帮你打开思路。

3. Treat it like a conversation, not a question! 说完自己的想法/观点,停下来,问问面试你的人,他有没有什么看法?有没有你没有考虑到的地方?保持一个Open的态度。尽量保持一个聊天的环境聊完这一题,而不是你一个人天花乱坠地一直说。尤其是现在,Interview一般都是Vitural的,你一个人一直说,别人很容易没了耐心开始刷其他网站或者干别的,一定要有办法吸引到别人的Attention。


Casual Chat

0.-office-lunch-main.jpg


把Casual Chat放到最后因为它最容易被人忽略。眼睁睁看很多人Techical的东西回答的很顺,最后却死在这道坎上。


走走Analytic方向的DS们记清楚了啊,Casual chat不能少啊!因为你面对的工作对象可能各种各样,公司高层/决策层,程序猿/Data Engineer,公司客户/金主爸爸,这些人很有可能都是你日常接触的,没有好的聊天技能,别人很难信任你/把Data放心的给你或者相信你的分析能力。聊天气/食物/体育/户外都可以,这是一种工作技能,也是一种礼貌。

聊聊心态

sadness-inside-out-today-main-tease-191018_010305cfdd8f7dab2c6547daadfcfce6.fit-2000w.jpg


上一篇文章里面说的,如果不是超级大牛,做好心理准备,前面3-5个面试都会Fail。
别灰心,面试是最好的帮你找你的薄弱环节的,尤其是我这种没有读DS类别学位的人。回来可以哭,😭完了别忘记冷静下来回想一下自己到底Fail在那一步,要在那些知识点/Soft Skills上面加强。


写在最后


一个不小心,竟然码出了这么多字👏 因为确实面挂了很多家,也因为自己之前一点点相关经验都没有,算是从头开始一边面试一边累积面试经验。谢谢大家有耐心看完🙏希望有帮助大家准备面试,顺利拿到心仪的大Offer😊

君君提示:你也可以发布优质内容,点此查看详情 >>

本文著作权归作者本人和北美省钱快报共同所有,未经许可不得转载。长文章仅代表作者看法,如有更多内容分享或是对文中观点有不同见解,省钱快报欢迎您的投稿。

22203 131 57

扫码下载APP