FB实习:从Midpoint 失利到Return Offer超细致整理,Know the rule and Win the game

看了很多关于暑假实习的经验分享,这一篇我主要想讲讲如何从中期失败一步步走向offer,你可以需求帮助的地方,和一些在实习时要注意的事情。我会主要以fb的背景展开讨论,但大部分都是普遍使用的。这全是我亲身领悟到的经验,希望给以后的intern提供一些方向,不要重蹈覆辙啦。这是我的第一篇分享,文笔不好请各位见谅~

我的背景:
我暑假是在Seattle office 做 Data Scientist Intern,美本毕业,美国硕士在读,这之前Spring在nonprofit做过part-time Data Analysis,但两个的工作内容,工作压力,使用工具几乎都不一样,没太多参考性。

接下来讲讲我的实习吧,可能不同组经历会有些不一样,以下只是我的经历。实习总共12周,第5周有midpoint review,会告诉你是trending an offer 还是not trending an offer,11周final review 基本就确定了你能不能return,但第12周才会和你讲。给你写review的基本有四个人,你的manager(mentor), team manager, 2个peer。你要是想叫更多peer帮你写也是可以的,但要是你不确定这个人会不会给你写好的review最好不要冒险,大家基本都是4个。每次review会根据你的5个方面分别评价: 分析能力,技术/工具使用能力,自主能力,引导力,交流能力 。我的mentor是个白人,他人挺好的也很耐心,技术方便在我这个新人看起来是很厉害的,product sense很好,基本都会给出好的建议和next steps。

Week 1-2 :我基本上用来熟悉内部工具和我要经常使用的几个data,由于documentation做得不是很好,所以很多data你都不知道每个column是什么意思,怎么join table, 有什么table你可以join,每个column的logging是如何获得的,这时候你就会一直问你mentor,peer问题。这是他们expected的,所以你不用怕,尽管问,前期问题多是件好事,但后期问题最好越来越少。这就是fb所说的encourage ask question but still be independent的意思,这也是实习performance axis之一。
DS的话主要是问mentor,和swe不一样,我们一开始没有定peer,所以你一开始不知道peer是谁,要写review前一周我的mentor才根据我和谁交流比较多来帮我找。我觉得这一点弊大于利,因为你一开始不知道要和谁增进交流,所以你等于要全team广撒网,和每个人都有点交流,了解每个人都在干什么,然后根据自己proj选最相关的人作为主要问问题和交流对象,这个过程很花时间精力,我是到了midpoint都没有develop一个比较深的关系,这可能是导致我midpoint失利的一个原因。利就是你有自主选择的权利,不会怕被分到了一个和自己合不来的peer。

Week 3-5: 我开始做starter tasks, 刚开始做由于不熟悉感觉很难,研究了很久,后来发现我花了两周做的东西,熟悉之后一天就可以完成了,感觉自己学的不算特别快。实习期间每周都会和mentor 1on1一次,这种时候我一般会针对那5个方面get some feedback,mentor一直给我的评价都是positive,除了communication还无法评价,因为他指的communication不是日常交流,而是在组里发post,做presentation之类的,但他说不用担心,以后有机会,所以我也没太担心。

Midpoint :我在review之前和mentor确认过我的表现,他说他觉得我有达到return offer的标准,叫我don’t worry。我就觉得我应该稳了,但结果却是没过,决定的过程是这样的,一堆mentor聚在一起开会,然后每个mentor轮流阐述自己的intern做了什么,最后intern director给出最后结果,所以你会和其他的intern放在一起compare。我难过了几个小时就开始和mentor探讨之后应该怎么提高。 下面是我做出的改变,也是本篇的精华。

1. 要知己知彼 。Mentor叫我play the game。 按我的理解,就是我做的东西太technical,因为我是偏ML model的分析,所以可能只有组内的人才能看得懂我在干什么,其他人看不懂,那我的信息就无法传递给其他人,其实等于你这个analysis就是废的。因为作为DS,我们要做的就是要swe觉得我们的analysis有道理,然后由此更改code。所以我之后写analysis就按照组外人的角度来写,尽量简洁的阐述background/motivation,然后叫组外的人来看你写的东西,如果他们看得懂就ok。我还写了一些比较higher level的analysis,就是比较好理解的。我当时认识了几个同期的intern,我就麻烦他们帮我看。FT一般都很忙,可能没这个时间帮你搞grammar mistakes。
2. 提高communication(English writing) 能力 。这里主要是指我的英文写作能力不够好,其实我也有意识到这个问题,写analysis post和在学校里写paper很不一样,我觉得写analysis难很多,特别是对于母语不是英语的人来说,我在美国读了5年书,可能因为都在上理科的课,平时写paper也没有人在因为这个扣你得分,所以自己认为只要意思表达好了,文笔差一点也没什么问题。其实不然,我们很多时间都在写analysis,一篇易懂的analysis会大大地增加阅读量和影响力,而且用词准确的话可以只用一句话表达清楚你几句话的意思。这个能力和你的分析是一样重要的,即使你做出来一个很厉害的分析,没有好的包装也没有人会看的。我的mentor有帮我改过几次writing,他也隐晦地和我提过这个问题。我以后就更加看重writing这个部分,甚至在这上面花了比我做分析还要多的时间,就一句话一句话抠。还有就是多看别人写的post,学习他们的用词,文法。
3. 增加post数量。 Midpoint前我只发了一个post就是讲了我starter task的分析结果,当时我问mentor我需不需要再准备一些什么材料,我mentor说不需要,但其实是要的。因为他也是第一次带实习,也不太清楚这个game怎么玩,所以算是给了我一个错误的方向。因为intern director会看每个intern的posts,你要是发的少他们就不知道你在干什么,也不知道你有没有make an impact,只是mentor一个人帮你说话是不够的。我以后就基本成了post狂魔,把自己做的东西全都发了出来,即使是小东西,然后认真回复每个人的评论,follow-up通常要花很多时间,你需要再根据每个人提出的问题做分析。
4. Your analysis should try to make an impact. 这里衡量一个DS合不合格的一个很重要的标准就是if you make an impact。最明显make impact的方法就是让swe根据你的分析改了code/algorithm,或者组里的某个步骤因你而改变,并且这是positive的改变。我以后的analysis就尽量在往这边靠。
5. 找出组内最需要了解的东西,针对他们做analysis,convince组员做这个改变是有意义的。 这主要要找PM聊,因为PM是对全局最了解的一个人,他可能会给你提供多个方向,也会说谁在干这个事情。我当时就问了我们team下个半年主要要提高什么,然后找到再做这个事情的人,问他需不需要做什么analysis,他就和我说了你如果做做这个会很helpful。这个analysis最后成了我算是impact最高的,这个和我合作的swe也成为了我final review的peer,给我写了一个strong review。这件事也为我的引导力加了分,因为我可以自己找到需要analysis的地方并且make impact。这个可能就是一开始没定peer的好处吧,因为后期可以根据需求自己选。
6. 增加和组员的交流,特别是team manager and peers,主动要feedback。 我midpoint以前基本上就只听mentor一个人的建议,因为我以为mentor说了算。实际上,那4个给你写review的人也很重要,you need to get everyone say yes!! 我前期和team manager基本就在聊家常,主要她也没问我什么工作上的事,这导致她可能do not have enough info to say yes。我mentor之后也和我暗示了这一点,要我多去问其他人的意见,不用只听他的。后期我和team manager meeting的时候就给她展示我做的东西,基本就在自卖自夸,然后需求建议,这时候你觉得有道理的要多附和,每个人都希望听到赞赏。最后final的时候还和她确认do you have enough information. 要知道,她也是会去review现场的,如果她能给你说两句绝对是大大地加分。后期我还增加了和其他组员meeting,向他们要feedback,每个人看问题的角度都不一样,你会发现你的analysis还有很多可以提高的地方。
7. 遇到困难及时改变proj方向。 当时mentor给我定的那个proj我做了3周左右感觉好像做不出什么,我们proj就一个主题,没有step by step process,mentor要我自己想要怎么做。我问了一下其他的intern,他们大部分都有清晰地steps。Mentor的想法是好的,因为FT都是要自己找东西做,manager不会告诉你要做什么,这是个培养product sense的过程。Mentor后来也说我可以做其他的analysis,如果get stuck on this proj。所以我给我的proj做了个AB test,收了个尾后,最后4‍‌‌‌‌‌‌‍‌‍‌‌‍‌‍‌‌‌‍‍-5周就开始自己找东西干了,包括上面那个很有impact的analysis。我自己找的东西占了我所有analysis的60%。
8. 找一个组里的swe intern组成搭档。 我前面讲的那个AB test就是和组里一个swe intern一起做的。你们可以一起学习,讨论,闲聊哈哈。实习生之间交流没有负担,可以大胆地问很笨的问题,可以吃饭时一起讨论,多一个脑子多一个方案。这最好大家做的东西是类似的,比如我们当时的目标是一样的,我就做analysis找到可能的原因,那个swe intern就帮我implement,做出来的结果大家都可以当成自己post的一部分。
9. 后期尽量少找和你写review的人问你觉得比较简单的问题, be independent。 这关乎到自主性的问题,你要有能力在没有mentor看管下独自完成一些analysis,这不是说你谁也不可以问,而且看人问问题。你觉得很有趣的问题还是可以问mentor,但一些比较简单的就可以找其他人(对自己没影响的人)问。我认识一个也是DS intern,每天都会和mentor聊个15-30分钟,汇报进度,通常他mentor不提出意见他就觉得一切都在可控范围内,我也提醒过他每天meet感觉会影响到自主性,他说这是他mentor一开始提出的,一直到最后都没变,结果他最后final review被自主性扣了分。我讲这个例子就是想说有时候mentor讲的不一定是对的,你自己要对事情有个清楚的认识,后期了天天meet就有点。。。但你要及时和mentor反应这个问题,还是交流交流!
10. 以上可以看出我后期既要保证post质量又要保证数量,还要及时follow-up,增加和组员的meeting时间,所以我基本上就996了,有时在单位加班还被组员说go home,搞得我就拿回家继续搞哈哈。我不是说鼓励大家996,只是我能力有限,做事效率也不算高,又想做多一点东西,只能加班加点完成,最后我确实做了很多东西,也是付出有回报。但这个过程我是很开心的,没有人逼我做,一切都是自愿。

我觉得midpoint是很有用的,他可以让mentor了解review的过程,让你知道哪个方面还要提高,还可以换peer。我和mentor一开始确实不知道整个review的过程,所以midpoint没准备好,但只要知道改进的方向就不用担心,多增加和大家的交流,多听取不同人的意见,大家都很nice的,我甚至还找了不同组的ds来聊天。还有一点,老美可能说话比较隐晦,有时候他们就会说it is interesting,或者夸你,你听听就好了,主要是要到哪个地方还需要improvement, 这个他们不会轻易说出来,所以你要看情况想想办法了。今年感觉找工作也没有很多opening, 我拿到return时候想面面其他公司,但基本上都和我说new grad不招了,所以我最后接了offer。

感谢大家读到最后,如有帮助希望大家多多打赏~ 我以后还打算写的题材:fb整体体验(公司文化,内部交流,食堂,影响力),美国社区大学转UC Berkeley经验,UC Berkeley转专业经验,申请UC Berkeley Stats Master经验及就读体验,如何在读书期间面试找工作等等。如果有想要看的题材可以在下面评论,我会优先写大家想看的!