<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KVGHS6G" height="0" width="0" style="display:none;visibility:hidden"></iframe>
深夜大哭三次,面挂>7家公司,让我坐下来好好跟你聊聊Data Science的面试经验
深夜大哭三次,面挂>7家公司,让我坐下来好好跟你聊聊Data Science的面试经验
篱笆资讯
深夜大哭三次,面挂>7家公司,让我坐下来好好跟你聊聊Data Science的面试经验
之前写了我是怎么花两年多时间,从零基础慢慢转成Data Scientist的,这一篇分享一些我认为面试中那些需要注意的事情和心态的调整。

我实实在在零基础,从第一个Phone Screen到得到第一个In-Person Interview,再到最后拿到Dream Offer,这条路真心非常漫长(大概半年左右)。

其间因为各种不顺,中间大哭过两三次,怀疑自己能不能转成功,怀疑自己的能力和为转行做的所有准备。所以想要单独把这一段拿出来聊一聊,分享一下心路历程。希望帮助正在慢慢面试路上的小伙伴。

相信我,你所经历的很多都是别人也曾经经历的,或者正在经历的。别怀疑!相信自己,坚持下去总能看到希望。

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


01 Phone Screen

如果想转Data Scientis但是又对这个行业不清楚的,推荐先搞清楚DS的几个大的方向。

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

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


02 In-Person Interview

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

Past Project Presentation or Data Challenge Presentation

Technical Questions

Product Sense

Open Ended Questions



Past Project Presentation/Data Challenge Presentation

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

如果是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看的特别重,小公司一般没时间跟你扯太多。

下面列举一些非常常见的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...

这个问题一般是Hiring Manager跟你聊,聊的目的就是:

看你知不知道这个公司/这个组做的方向到底是什么?

你对这个方向有没有基本的背景知识/想法?

你知道公司的对手是谁吗?

公司产品卖点和竞争对手有什么不同?

现有产品有没有什么地方可以改进?

面对大方向上的问题你的想法和这个组做的有没有合理的Alignment?

如果现有产品出现问题,你能不能尽快发现问题,并且找出解决方法?

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

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

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

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

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



Open Ended Questions

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

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

对于走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

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

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


03 聊聊心态

做好心理准备,前面3-5个面试基本都会Fail。

别灰心,面试是最好的帮你找你的薄弱环节的,尤其是我这种没有读DS类别学位的人。回来可以哭,哭完了别忘记冷静下来回想一下自己到底Fail在那一步,要在那些知识点/Soft Skills上面加强。


一个不小心,竟然码出了这么多字!因为确实面挂了很多家,也因为自己之前一点点相关经验都没有,算是从头开始一边面试一边累积面试经验。谢谢大家有耐心看完!

希望有帮助大家准备面试,顺利拿到心仪的大Offer~
coffee 直连行业大牛导师,1v1模拟面试与求职指导
mentors
airplay 实战与求职精品课程
数据科学
软件工程
人工智能
金融商科
产品经理
产品设计
bookmark 2000+名企面试真题
amazon google tiktok microsoft meta