问:如何在数据类技术面试中鹤立鸡群?答:离开鸡群。

问:如何在数据类技术面试中鹤立鸡群?答:离开鸡群。

通常,在找数据科学方面的工作时,你需要向你的潜在雇主展现两个方面的能力:数据工作能力对公司文化的适应能力。数据工作能力的测试,是通过面试中最重要也最可怕的环节–技术面试(The technical interview)进行的。那么如何准备数据科学的技术面试呢?

很多人和我说他们会花很多时间来练习编程,或者熟练 SQL 查询的技巧。这些练习和努力对于面试来说固然是重要的,但注意,它们仅仅展现了你和键盘一起工作的的能力。

在我自己找工作的过程中,我花了很多时间来思考,如何利用技术面试让我自己脱颖而出。大部分数据科学家,都可以通过自己的方法编出一个代码,来辨别一个数是否是素数,来跟我念,一个素四否四素素。

但经常被忽略的是,你的每一次回答,都是在提供你习惯用来解决问题的方式。你的答案是否是最好的取决于具体的问题,面试官的判断,和你申请的职位。但从我的经验来说,有三种回答方式可以帮助你在面试中给出更好的答案。

当代码问题基本都可以用你擅长的编程语言中的本地组件解决时,它们展示了你在特定时候,用特定方法解决问题的能力。不管是口述答题还是在笔试答案,我都建议你清楚地描述每一步中你为什么要选择这个方法。因为这样你可以同时论证为什么其他的方法没有你的方法好。这就展示了你对代码可扩展能力的思考。

在详细描述的时候需要注意的是,你要知道如何测试不同方法的计算量。即使你不能准确给出每个方法的计算量,你也要指出有多少种方法可以解决这个问题,并表示测试每种方法的计算量是非常重要的。所以即使你没有一个直接的答案,你仍需要展示你思考了这些方法的效率,并且,如果你坐在计算机前,你要知道如何测出不同方法的计算量。我的要求不高吧。

详细描述的另一个重要方面,就是论述你的代码是如何运用到这个公司实际的商业问题中。虽然不是每一个技术问题都可以被运用,但是你要把握住这个机会讨论一下这种可能性。举个例子,如果你面试的工作岗位是运用数据科学来预测客户流失的,比如深层神经网络是如何工作的。你需要解释技术层面的问题。你可以说哪种类型的数据会被输入到这个神经网络中,和如何使用与客户流失相关的特性来优化预测。把各种理论和专业名词说清楚。

故事叙述虽然听起来和详细描述很相似,但需要你借助过去的具体经验来突出你的技能。当你在答题时,你可以指出你之前是否解决过类似的问题。强调相关的经验非常重要,详细描述你曾经解决问题的步骤和特定的成果。可以使用以下类似的句式:

“I did action X during the feature engineering stage of project Y which resulted in Z increase in model accuracy and AUC scores. ”

故事叙述的另一个用途就就是描述你符合公司价值的经历。很多科技公司都在它们的网站上列出了它们的核心价值 (Core Values) ,或核心任务  (Mission) 。而像银行和咨询公司会偏向求职候选人展现出领导能力和解决问题的能力。举个例子,亚马逊会通过复合式的问题,同时评估候选人的领导能力和数据工作能力。一个好的故事叙述遵循以下形式:

这个策略需要你引出这个公司正在解决的特定问题,并从两个方面来展示你自己的“优秀”:一,你是一个会解决问题的人,二,你在帮助这个公司解决问题。

面试中通常有反问问题的环节,你需要做的就是,在面试官让你问问题的时候,询问他们你这个岗位具体要解决的问题,或者这个团队正在试图解决的问题。在面试结束之后,你要花时间来思考一下这个问题和并列出一个解决问题的计划。这个计划不需要非常技术和详细,但要展示出你对这个问题的个人理解和独立解决这个问题的能力。

在后续联系面试官时,首先回顾一下面试中双方都比较满意的部分,然后轻描淡写地通过以下句式讲述你对问题的看法和解决方案:

“By the way, I thought about the problem you’re currently facing and came up with three solutions that I could implement within the first month of starting at your company.”

在你的描述中,你的面试官就已经开始想象你在公司里做这个项目兢兢业业的样子了。

在准备面试的时候,我问了很多朋友他们入行时的面试经验。我和这些朋友都是从 PhD 转行成为数据分析师的。所以如果你的情况和我们有所不同,你可以试着从你的角度来理解这些回答。

这些回答都是半匿名的,它们来自于像 Facebook, Uber, Amazon 这样的公司的数据科学家们。希望这些答案能对你们面试过程中详细描述、故事叙述和后续联系有所帮助。

问题一:除了一个好的作品集和技术能力,你认为想要成为你们公司的数据工作者,还有什么是重要的?

回答一:产品意识,尤其是产品度量。这对数据科学产品分析师尤其重要, Facebook 的大部分数据科学家都做着这个工作。除了一小部分的核心数据科学家,剩下的都是既懂统计又能够创建其他数据科学家能使用的工具的软件工程师。还有一些基层数据科学家,他们对我来说有些神秘。我们还有研究科学家,他们的专业性也非常强。

回答二:商业头脑,对数据科学家来说,就是能够想出如运用数据科学解决公司面临的问题的能力,还有如何通过数据测量一个项目是否成功的能力,以及用数据科学满足需求的能力。知道如何将数据科学的见解转化成可行的建议。同样,创造力,效率,独立性,合作和利他性都非常重要。

回答三:知道如何展示你工作的影响力和重要性是至关重要的。你需要做的是,把最重要的工作先做好。在Facebook,你可能同时在进行一千件事情,知道哪些事情先做是非常重要的。

回答四:使数据有意义的能力,快速学习东西的能力,独立理解和学习概念的能力,因为你每可能要读成顿的维基百科。

问题二:你在找工作时,哪些方面时你觉得反而不值得去浪费精力准备?

回答一:基本上没有。我参加了一个数据科学的职业培训,非常有用。(你是不是闻到了一股广告的气息?对,没错,2019年1月数据科学家训练营热辣辣地报名中,咨询扫我,谢谢)

回答二:我没有博客,但是我有一个个人网站和github。我不知道公司在聘用我时是否浏览了这两个网站,但是我要聘用一位数据科学家,我肯定会看看这两个地方。论文发表已经不那么重要了,虽然我还是期待候选人能够有一些期刊发表。

回答三:这是一个好问题。我认为我的技术生涯里最重要的就是的人际关系。我不是靠写 CVS 找到工作的。所有我找到的工作都是靠认识我或者我的工作的人。

回答四:我的作品集好像真的不太重要哈哈哈哈。

问题三:如果你回到找工作的时候,你会在哪个方面花更多的时间?

回答一:机器学习吧。(数据应用学院的数据科学课程了解一下,最优质的机器学习知识汲取来源,快点儿马不停蹄地来问我吧)

回答二:Networkng! Networking! Networking! 我非常擅长沟通,每次和别人交谈完,就会有三四家公司有兴趣聘用我。我建议去做一些会议的志愿者,参加更多的会议。去 LinkedIn上联系从事这方面的人,并要求和他们见面。在见面之前,一定要多了解一下这个人和他的公司,并准备一些具体的问题。另外也可以去找一个mentoring program。也就是说任何能够建立真实人际关系的事情都值得你花时间。

回答三:本体建模(ontological modeling)和机器学习。

问题四:你觉得在学校工作和进入到数据科学行业工作最大区别是什么?

回答一:速度比完美更重要

项目独立性 – 学术项目绝大部分都是独立的,但是数据科学工作却有很懂交集。

平时的沟通对象完全不同:我基本上没有和另一个数据科学家碰过面。我每天都在和工程师/产品经理打交道。

回答二:速度,你需要迅速找到可行的答案,完美是效率的天敌。除了速度/准确性,还需要有一个能告诉你“这就够了”的直觉。

跨界工作的能力 – 很多数据科学家需要和来自不同专业背景的人一起工作(比如商业,设计,工程等)

回答三:时间安排和对现实限制的考虑。学术界你总是要尽量找到最好的答案和最完美的方法。你所花的时间会非常多。但在工作中,时间线就是一切。你需要辨别什么是最重要的,什么是在时间和资源限制下能做到的最好的,并且可能要同时维持要维持三个项目的运行。书面工作的要求不是很严格,同时很少需要你去做文献回顾(如果你有时间做文献回顾当然很好,但这不是必须要求。)我其实非常享受工作的快节奏,但很多从学术转行的人会觉得很困难。

还有写报告。你需要非常擅长可视化你的发现,并且让大范围的人都能理解你。这包括你能够写出非常容易理解的行动纲要。

从你的公司出发去提出可行的建议。有趣的发现很重要,但更重要的是这个发现会引发什么可行的行动。你的发现对公司的商业运行有什么影响力?你想要什么样的商业成果?

问题五:对找第一份数据科学工作有什么普适性的建议?

回答一:充分利用推荐,应聘者会因为推荐更注意你的表现和简历。针对每一份工作修改你的简历。不要声称你擅长某一技能,如果你不能展示它。在面试前多搜索这个公司的信息,尝试他们的产品。

回答二:更新你的 LinkedIn。保证每一段经验都有一个总结:你的工作的影响力,展示你能够高效工作的能力,针对大范围人群沟通的能力。考虑聘用你的人一定会看你的 LinkedIn ,如果你还有个人网站那简直就是 Amazing。

不要忘了展示你这个人。展示出你对什么感兴趣,你和别人不一样的地方,你做过的志愿者活动。科技公司倾向于找有自己见解的人(至少 Facebook 是这样)。保证你看过你应聘公司的核心价值,并在你的简历中表现出你了解和赞同他们的价值。

附加题:关于非技术面试有什么要准备的?

面试中大多数问题都是行为问题。面试官评估你在特定的环境中会做出什么样的行为而不是你实际的技能。他们倾向于你的答案通过 “ STAR ” 的形式表述 –  situation,task, action,和 result。如果你准备了这方面的故事,就更好了。很多问题诸如“讲述一次你和你的领导者产生分歧的经历”。这种问题一般让你回答这个经历是什么,你是如何解决的,最后的结果是什么。如果你能在回答过程中,同时展现你自己的领导能力,那就真的太棒了。