·要重视实习
在研究生实习阶段,也是Lawrence老师第一次真正接触到工业界代码,当时给他的感觉真的是闻所未闻,跟学校学的完全是两个世界。
他当时唯一的感受就是学校学的东西很多没有在工作中用到,自己就像是一个萌新,没有接触到太多CS的东西,这也是对他观念上的冲击。
因为美国研究生读研究生的那个时候比较自由,最后的毕设也可以自由选择。自己在最后做了个关于Twitter数据处理的毕业项目。
现实一点来说的话,这个毕设确实往他的简历上加了浓墨重彩的一笔,因为毕竟是和大厂挂钩。
果不其然,在毕业后他就顺利的在Meta找到一个全职工作。
·了解目标公司的岗位
首先来说说Intern,在Meta,Intern一般分为两种类型,第一种是SWE Intern和Ml Research Intern,通俗来讲,这种Intern更像是为公司贡献代码的。
两种Intern都需要经历小三个月的时间。
第二种,叫做Fbu Intern,这种算是一种比较特殊的Intern,一共会用到你10周的时间让你做一个Project,换句话来说就像是做一个10 周的Training,你所创造出的代码一般不会留在公司的代码库,其实更偏向于公司给你一个训练的机会。
·Meta的面试
Intern的面试流程一般都是有两轮Coding,除了Research role之外,Coding一般难度不会太高,Meta hiring的效率是非常高的,1-2天基本就能出结果,大部分人都可以在面试之后一天内收获到Feedback。
对于Fulltime来说,一般分为Generalist和Specialist两种。
Generalist相当于万精油那种面试,一般会经历一个6-8周的Bootcamp选组,可以自由选择不同的组,但专业性高/热门的组可能不太容易进,选组要慎重,也不要太跟风。
Specialist的话那就更简单,很有可能你面到的面试官,就是你未来的同事,一般过了的话就过了。
Generalist的面试面试的话一般分4轮,标准四轮的Onsite,2两轮Coding加1轮System Design加一轮Behavioral的组合包。
Specialist的面试就比较丰富,会根据岗位要求有不同的面试。
·面试小tips
对于coding部分,有些同学上来就写代码,如果你写的很好且写的很对,但你没有给面试官任何的好印象,面试官的想法会是“这家伙有可能之前做过这道题”。
如果写错的话,面试官会直接觉得你是个鲁莽的人,因为你没有解出来题就开始写了。
正确做法是Think Out Loud,尽全力去给到面试官你在思考的信号。有些面试官甚至会根据你思考的过程给到你一些提示,一定要吧你的思考过程说出来,问你的面试官怎么样,然后再写。
如果你有一些常用模版,如果写多几遍就会有一些记忆,只要改一些需要的改的地方就好,
写完代码时候要自己做一个复杂度分析,如果把变量一个个完全说出来,这是一个很加分的过程,Meta的面试特别注重你交流的能力,其实交流这个部分很关键,这时候你要依靠面试官去弄清他真正想考核的东西。
用Situation-Task-Action-Result的模版去套,尽量把自己的实例和公司沾边。