本文出自公众号 再生谈(ID: reborn_chat)
数据应用学院 授权转载
不知不觉,从去年九月开始面试到现在,一年时间正好面了一百个人,这其中一半集中在最近三个月。
针对 Facebook Data Scientist, Product Analytics 这个职位,最开始是 onsite 技术面(technical analysis),然后面产品(case analysis),最近基本都是第一轮电面了(大致是缩短一点的 technical analysis 加 case analysis)。
从两年前自己准备面试,到现在有一些想法,赶上现在是校招季,分享一下,希望有帮助。
【一】数据科学家这个名字有点不清不楚
Data Scientist,听起来好高大上的感觉,以至于我刚入职的时候觉得,终于实现了小时候的梦想,成为一名科学家(笑)。
不久后感觉,叫 Scientist 有点怪,德不配位,所以在公司内部通常自称 Analyst (分析师)。
但是有时候跟外部沟通起来,又还需要解释一番,有点烦。
时间久了之后也就习惯了,其实数据科学家并不是说技术需要多么高深,而形容面对问题的难度。
说起科学家你会想到什么?很多人会想到做研究,想到博士。
那个说想到「二十一世纪是生命科学的世纪」的同学你给我出去。
而很多时候做研究、读博士最大的共同点是需要面对前人从来没解决过的问题,比如说鸽子为什么这么大?
而我们要解决的问题从某种意义上来说也是从来没有人解决过的,比如说如何把用户发展到 30 亿,40 亿,50 亿。
这么来看,偶尔自称一下数据科学家,也就没那么可怕了。
体现到面试里的一点,就是很注重面试者的自主性。
给你一个问题,是否能搭好框架,看哪些数据,如何衡量,如何测试,对产品有什么意义,对整个 eco system 有什么意义,对整体的长期的发展有什么意义。
换言之,工作之后对应的就是丢给你一个大的问题,你怎么独立解决?
这就好比,读博士的时候,你应该是世界上对这个领域了解得最清楚的人,包括你的导师,在你这块领域也不如你精通。
就是这种感觉。
【二】面试是一个双向选择的过程
两年前这个时候本来没打算跳槽,当时打算年底升职,在芝加哥长待了。
没想到先是 A 家的 recruiter 在 LinkedIn 上联系我,问我有没有兴趣面一个。
这么高大上的公司,当然要面一个了,想当初我刚毕业的时候还投过,结果挂在电面第二轮了,说我统计理论知识不行,这我是很承认的。
反正也是要准备简历,所以干脆又让在 F 家的朋友给我内推了一个,结果第二天又在 LinkedIn 上收到 F 家 recruiter 的联系,也不知道是巧合还是什么。
几天后,G 家的 recruiter 又联系我,那就干脆一起面了吧。
后来 A 家挂在 onsite,G 家挂在电面,F 家给了 offer,接了。
现在回过头来看,另外两家挂得是很有道理的,因为就算我拿到 offer 接了,估计也是三个月走人的节奏。
A 家是一个 Business Analytics Manager 的职位,底下有两个组员,onsite 的时候五轮还是六轮,全是 bahavior question,没问一个技术问题,没问一个产品问题,全是遇到某某情况你怎么处理。
G 家的则是一个 Technical Program Manager (TPM) 的职位,我到现在都不太清楚知道是做什么的。
所以,能拿到 offer 当然好,没拿到也不要太伤心,适合自己的才是最好的。
【三】技术决定下限
如果看工作要求上面的描述的话,会感觉对技术要求还挺高的,比如 R/Python, Perl 什么之类的。
实际上面试的时候,只要会 SQL 是足够的。
而且我们面试的时候对使用哪种语言没有要求,只要能把题答出来,哪怕用 Java 来处理数据也可以。
不过通常来说还是 SQL/R/Python 三种里的一种为主,其中 SQL 对大多数情况下是最适合的,因为很多情景 R/Python 都可以做,但最初是设计给 SQL 的。
而对 SQL 的要求也可以说是惊人的低了,语法都是一些很基本的,学得快的,大概二十个小时就能从入门到放弃了,根本不需要像 Leetcode 那样刷几个月半年一年的。
难点在于很多面试者对数据结构和逻辑不是很清楚,比如互联网公司跟银行相比,怎么来记录数据是很不一样的。
不过很贴心的是,recruiter 会给面试者准备一些材料,告诉他们可能会涉及到哪些类型的数据结构,以及在哪里练 SQL,惊不惊喜,意不意外?
感觉就是生怕面试者过不了关。
不过即便如此,有时候还是会碰到技术真的是不行的,比如说完全不知道怎么 join table 的,碰上这种情况,我也是一脸萌哔。
【四】对数学、概率、统计的要求也不高
面试是这样,实际工作中也是这样。
这方面理论要求低得吓人,基本上大学任意一门统计入门课的程度就够了。
我甚至觉得,以天朝的高中生数学水平,突击几天也够用了。
稍微难点可能在于如何跟实际结合起来,理论知识不行,可以用感觉、经验来补一补。
【五】对产品的理解很重要
case analysis 在面试的数量占了五分之二,权重也是最高的。
这一部分其实有点邪门,我见过完全不是这个领域的,可以在很短的时间内突飞猛进,也见过身处这个行业的,但做了几年还搞不清楚状况的。
只能说有些人适合,有些人不适合。
当然通常来说,本身就在互联网行业,甚至是做社交产品的面试者,表现会好很多。
其次则是有一些咨询背景的,他们的优势在于框架搭得好,对大方向把握得很清楚,考虑的方方面面也相对周全。
面试的时候当然是会考察一定的深度,但相比之下广度更重要一点。
毕竟产品这方面还是真正做过才有体会,不夸张的说,对于技术面,我有时候还会不确定面试者说的可不可行;而在面产品的时候,基本上碰不到对产品的理解能比在职的更深的。
【六】好的沟通能力是个大的加分
数据分析,是一个很需要跟人交(si)流(bi)的方向。
如果理解 PM 的需求,如何推掉一些需求,如何讲清楚自己做的分析,如果证明自己的结论是重要的,大家听我的没错。
工程师不爽了,可以自己想做什么做什么,东西还是可以上线,还是可以出效果;
数据分析的结果不能落地的话,就什么用都没有了,所以需要说服 PM,需要说服工程师,有时候还需要说服产品设计等等。
这点通常来说中国人会吃亏一点,尤其在初期,语言倒还在其次,思维方式更重要的。
不过要想做得好升得快升得高,会讲故事是必需技能。
把分析做好了,如果讲一个完整的故事让人信服,比分析难,比分析重要。
这点在面试的时候一样能体现出来,自己写的 code 是不是能讲清楚,分析思路是对的,能不能说明白为什么要这么做,思考过程是什么等等。
【七】很多细节做过才知道
有些东西单从技术上来说并不是什么高深的,比提质粒简单多了。
然而没有真的做过一遍的话,前前后后的细节里会有很多坑。
比如说最常用的 A/B test,怎么选 sample,怎么看是否统计显著,都可以很容易查到,但是 A/B test 的上下游,如果掌控整个过程,对 end to end 都有个了解,才是难点所在,也是关键点所以。
所以如果没做过实习的,机会基本很小,新毕业的竞争会非常激烈。
更多的还是在工业界已经摸爬滚打了一段时间,跳过一些大大小小的坑,才更容易通过面试一点。
【八】面试是一个很有意思的过程
如果是求职的话,准备面试的期间可以学到很多东西,有些是跟自己做过的相关的,有些是跟自己做过没什么太大关系,一个全新的领域。
对于面别人来说,跟不同背景、不同经历的人聊,看他们对同一问题的不同看法,对同一意见的不同反馈,也是很有意思的一件事情。
招人太难了,第一轮电面通过率 20% 出头,onsite 估计能有 接近 30%,所以每年都招很多人,每年都招不满。
对于求职的人来说,这个过程可能会很辛苦,但是挺过去就好了。
对于面别人来说,面试其实也是个辛苦活,不过能多招点人,多接触这个领域的人,长期来看也是件好事。
【九】面试会有一定的运气成分
用统计术语来讲,做一个决定肯定是会有 false positive, false negative 的。
同样用统计术语来讲,长期来看终究是要 regression to mean 的。
套用马老板的一句话,当别人不看好我们的时候,其实我们没那么不好;同样,当别人看好我们的时候,我们也没那么好。
【十】招人
如果有兴趣的话,现在是校招季,各大 target school 可以留意一下有没有我们公司的招聘信息,比如在哥大应该是 9 月 21 到 9 月 25。
这应该是除了 return intern 以外,对在校生最友好的招聘方式了。
自己投简历的话,对 new grad 来说的确是很难很难。
experience hire 的话,一直在招,有认识的人就找内推,没有的话就上官网申请。
如果觉得有用的话,请帮忙转发扩散。
本文由再生谈