Facebook等公司非去不可?请先收下这份攻略

技艺丛谈·2018-05-25 10:17
在找工作的时候,有一个大致的方向,并为之努力准备。

编者按:本文来自微信公众号“技艺丛谈”(ID:jiyicongtan),作者 子夜青寒,36氪经授权转载。

本人是今年即将毕业的硕士生,北大计算机系本硕。在漫长的找工作季的尾巴,人品大爆发的收到了Facebook北美的offer。本人在找工作季和实习季,也曾面试过多家不同的国内外公司。受平哥邀请,主要希望能分享一下自己找国外工作的求职经历和准备过程。

目标

本人在找工作的过程中,对于国内外的公司曾经有很多纠结,感觉整个经历也比较一波三折。最初,我对出国工作很感兴趣;而最近国内互联网,针对人工智能等领域的形势也比较不错。我找工作的时候主要是关注公司和工作内容这两个方面。接下来会阐述我对这两个关注方向的权衡和个人的选择经历。

对于公司而言,我主要考虑公司的规模和公司的地点两个方面。

  • 针对公司规模,个人比较倾向于在第一份工作的时候选择比较成熟的大公司,在之后的跳槽中再选择小公司或创业公司。因为我觉得自己还需要在大公司比较成型的体系下多锻炼和掌握工作模式、代码框架等技术上和soft skill上的技能点,这可能和我本人比较偏于求稳的性格相关。当然,最近创业公司兴起,我们级也有一些大神加入了一些明星创业公司,小公司的好处在于做的事情比较核心,而且很多内容可以直接上线,这样很有成就感。因而,对公司的选择还是要看个人的想法。

  • 针对公司地点,我很希望第一份工作能够肉身翻墙。其实有这种想法并没有什么很复杂的原因,首先,出国工作有些可以直接去外企的总部,这样接触到的工作内容可能会更核心;其次,我也希望能真切的体验不同的工作环境,接触到不同的同事,从而选择自己更喜欢的工作和生活方式。

对于工作内容而言,我觉得我会考虑个人兴趣和工作前景这两点。对于个人兴趣,我觉得初期应该通过做课程大作业、实验室项目、实习等多接触和了解不同的方向,然后选择一个自己感兴趣的方向深入了解。对于工作前景,其实我作为一只小虾米看到的都很肤浅和表面,难以看的很真切,因此,我在实习和工作的选择上会倾向于选择一些应用比较广泛的工作内容,比如问答系统、搜索后端、推荐系统等等。目前人工智能方向比较火,而我所在的实验室刚好是自然语言处理、机器学习等相关,因此我在找工作的时候也倾向于这些方面。

接下来,我想分享下个人对于公司和工作内容的取舍和权衡。我主要将工作内容和工作团队放在了第一位的位置,我觉得选择一个自己喜欢的方向和靠谱的团队,能使得自己在工作上不断提升和进步。但是,对于公司和工作内容的权衡是很难做的,我也无法得知自己是否做了最优的选择,我想分享一下自己找工作的经历。

我个人在拿到Facebook的offer之前,我也曾经拿到过Microsoft Redmond的offer,但是和Manager聊过觉得对于工作内容不是非常感兴趣。当然,微软这样的大公司对于工作几年之后再换组和换方向也是比较open的态度,但我觉得可能之后再换方向就浪费了几年的时间,而且存在着可能无法换到合适方向的风险。所以当时犹豫再三放弃了这个机会,决定留在国内工作。然而后来又忽然峰回路转,在非常迟的时候拿到了Facebook的offer,虽没有具体分组,但大体方向很感兴趣,因此最终还是决定出国工作几年。

我想,可以在找工作前,多找在国内外不同公司从事不同工作的师兄师姐多了解一些经验,大体明确自己想要从事的工作内容和工作地点。在找工作的时候,有一个大致的方向,并为之努力准备。

外企招聘信息

拿到出国工作offer的第一步,就是了解到外企的招聘信息。这里将介绍一下我们级外企的招聘情况和获取招聘信息的途径。

首先,有些国外的大公司会从国内直接招人去国外实习,Facebook和Google之类的公司会在他们的官方网站中放出招聘信息和地点,可以多加关注,并尝试找在职的员工内推。值得注意的是,国外实习的报名和面试时间一般会比国内更早,一般在9月份起的上半学年,需要更早的准备和投递简历。另外,大多数外企是全球共享冷冻期,譬如如果面试Google美国的实习而并没有通过,是不能再面试同一年的Google北京/上海的实习的。因此,需要准备好之后再进行面试。

其次,到了找工作季,各大公司会去各个学校组织宣讲会,也会在公司官网放出招聘信息,要对自己感兴趣的公司多加关注。我会参加感兴趣的公司的宣讲会,因为这样除了能了解公司的招聘情况,还可以现场对recuiter进行提问,询问自己感兴趣但不够了解的信息。大多数工作的宣讲会在八九月份,不过我们级Indeed貌似在五六月就进行了首次宣讲会,八月份就开始有人去日本Indeed面试,因此需要多加关注招聘信息,也应该多找认识的在职员工了解情况。

介绍完了招聘信息的获取,我也想介绍下我们级外企的招聘情况。今年可以直接肉身翻墙的公司非常少。据我的了解,相对多一些从中国招人去美国总部的大公司只有Microsoft。Google今年基本上要求在国内的北京、上海分部工作,而Facebook今年也仅仅非常少量的从中国的应届毕业生中招人。另外,Indeed会从国内招聘人员去日本工作。之前也听说过Bloomberg会招人去伦敦。然而,但这两家我了解的比较少。

背景介绍

这里主要想要介绍我工作面试的两家公司的面试流程。其中微软总部的面试是工程方向的面试流程,Facebook的则是research方面的面试流程

微软总部

通过实习和微软探星夏令营均可以报名微软美国总部的面试。鉴于面试官均是从美国总部过来统一面试,时间有限,因此HR会首先对简历进行筛选,选择几十人进行面试。通过筛选后,HR会打电话进行一个简单的面试沟通,通知接下来的流程。

本次微软美国总部的面试时间是在去年的11月上旬,现场面试,面试官均是在微软工作多年的principle manager等资深员工,地点在北京和上海。面试轮数为4轮,主要形式主要是面试算法题或系统设计题,并且每个面试官都有留出一段时间进行交流,包括询问简历、经历等。

Facebook

我面试的部门是偏research的部门,面试一共六轮。其中第一轮是电话面试,主要面试了算法题。第一轮电话面试通过,才能够进入onsite面试环节。接下来onsite共包含四轮面试,包括两轮coding面试,一轮research design面试,一轮experience面试。其中两轮coding面试主要是面算法题,一轮research design会面机器学习和research设计的问题,一轮experience主要是面试简历和之前的研究工作,同时会聊人生聊理想。飞回国内之后,最后又有一轮电话面试,主要是系统设计、计算概论等问题。

还想提一句的是,无论是微软总部还是Facebook的面试,都是全英文面试,主要是要求能比较清晰的表达自己的意思和想法,并不要求口语多么好,所以如果英文没有那么好也要有信心呀~

工程和research面试区别

个人感觉外企在工程方向和research/算法方向均会询问算法题和项目经历,严格一些的公司会要求算法题达到bug free。而两者的主要区别在于,工程方向会有系统设计题,而相应的,research/算法方向会多问一些机器学习知识和提出一个研究问题要求进行research design,也会更多的了解之前的研究方向和研究成果。

准备工作

接下来,我想介绍自己找工作前的各种准备工作,主要是针对外企工程面试和research面试的准备工作。

刷题

外企的算法题是必考的一个环节,也是非常关键的一个环节。在实验室的师兄们的带动下,我从大四开始就陆陆续续的不断刷题。个人比较建议早些开始刷题,尽量最晚也要在面试前集中刷3个月左右(当然搞竞赛的大佬另算)。

主要包括以下的几点:


  • leetcode
     leetcode是最常用的刷题网站。从我最开始刷leetcode时,只有一百多道,到找工作时已经有六百多道题(好心塞,现在好像更多了)。现在的leetcode题量可能在短时间内很难刷完,因此,我觉得如果没时间完全刷完,应该每种题型都刷几道题,并且要看discuss或solution等掌握最优的解法。如果准备特定公司的面试题,可以刷对应公司的面试题。刷题贵在精,不在多。

  • lintcode
     我在本科的时候还刷了lintcode,这里的题目会和leetcode有一些重复,整体上会偏于更难。我后期主要就是专注于做leetcode,lintcode相对做的较少。

  • 一亩三分地
     一亩三分地上有很多同学分享了他们的面经,可以作为很好的参考。尤其当准备的时间很仓促时,可以多看其他人的面经,了解整个面试流程,面试风格等,也可以更加明确的进行准备。


系统设计

外企的工程面试一般会有一面系统设计的面试。本人的系统设计准备的比较匆忙,主要是在一亩三分地、知乎等网站找了一些系统设计相关的资料,也看了一些常考的基本概念,如hash, bloom filter等。也听说有些人准备系统设计时,上了一些在线的系统课程。

机器学习知识

外企的research面试,会有机器学习和research design面试。同样的,在国内私企中,如果面试算法工程师等人工智能相关的岗位,也会面到机器学习的知识,因此准备机器学习的知识很重要。

我对于机器学习的准备,主要是看了在线的机器学习课程和书籍,并掌握推到经典模型的公式。我主要重新阅读了周志华的《机器学习》,在B站上观看了林轩田的《机器学习基石》和《机器学习技法》(原本在coursera上,后来下架了)。

对于深度学习,我当时听了李沐的关于利用gluon实现深度学习的公开课,看了Neural Networks and Deep Learning。目前,评价比较好的深度学习书籍和课程有:Ian Goodfellow等所著的《深度学习》(有中译文),Andrew Ng的deeplearning.ai课程等(网易公开课有中文字幕)。同时,我也复习了机器学习用到的相关概率知识和代数知识。

我当时的复习主要是中文的书籍和课程,主要是因为当时准备时间不是非常充分,中文材料相对而言准备起来比较快。英文非常好的相关书籍和课程也有很多,比如在coursera上hinton的神经网络课程等。

实习和项目经历

我在找工作之前,曾经有过几段实习或项目经历,时间主要是在暑假或本科的时候。本人觉得实习经历不仅可以更好的丰富简历,也是在实践中不断提高自己的过程。

首先,我想介绍一下我曾经参加过的Google Summer of Code项目。这个项目是谷歌针对开源社区每年暑假都会开展的一个项目。整个流程大致是:每年的3月份左右,各个不同的开源社区会有很多mentor提交项目介绍,而学生可以申请这些开源社区的项目。随后,mentor会根据不同学生的申请和准备的情况选择一个学生,在暑假对他进行指导,使得学生完成这个任务。Google Summer of Code是在校学生接触开源项目的很好的机会,同时,也可以完整的做一个项目,对之后简历中的经历是个很好的亮点。

其次,如果去了公司实习,本人感觉公司自身、实习的工作内容和mentor对我而言最重要。如果想去外企,多积累一些外企的实习经历很有好处。如果明确了自己之后想做的方向,多做一些相关领域的实习,会相较于比较零散杂乱的实习经历更加有帮助。同时,一个好的mentor也是比较重要的。有一个厉害又耐心指导的mentor,可以学到很多知识(再次感谢靠谱的平哥的指导~)。

同时,即将毕业暑假的实习是比较重要的一次实习。这次的实习经历涉及到转正,且一些公司会对转正的实习生有一定的优待。所以需要考虑清楚慎重选择。

另外,如果之后想要找人工智能等领域的工作,积累一些论文是比较有竞争优势的。无论是在实验室,还是去相应的公司实习,都可以努力积累一些高质量的论文

简历

在准备简历的过程中,要详略有当,最重要的部分是实习经历和项目经历。对于偏research的职位,论文也很重要。对于实习和项目经历,要保证自己对细节也比较熟悉,可以清晰的讲述整体的思路。同时,如果有性能的提升等,最好可以用明确的数值表示,如:准确率提升了百分之几等。

简历个人是用latex排版,写完简历可以找靠谱的师兄师姐等帮忙修改。

面试

面试的经验和需要知道的面试技巧

个人感觉面试有一些注意的事项:


  • 交流很重要
     在面试的过程中,首先很可能会进行自我介绍,中间是算法/系统设计/询问简历等环节,最后一般会以向面试官提问为结尾。前面的自我介绍和最后的提问我一般会提前准备一下,不过最后的提问环节有时也会根据面试官的自我介绍和回答进行灵活提问。

    在面试中,明确理解面试官的意思,同时清晰的表达自己的含义是很重要的环节。我之前曾经在一个面试中误解了面试官的意思,导致那次面试很失败。

    以算法题为例,当面试官描述完题目后,有不确定的地方一定要向面试官提问,完全搞清楚题目的含义。同时,有时需要询问数据范围,并明确一些corner case是否需要处理。然后当明确了思路后,可以边写代码,边向面试官解释代码的含义。如果面试官有提问,可以积极讨论,认真思考。有时面试官会提示有错误或者有改进的地方,要认真查看代码并改进。

  • 遇到问题时保持沟通
     在面试的过程中,可能会遇到自己不会做的情况,这种情况要保持镇定,表达清楚自己当前的想法和遇到的困难。可以和面试官不断讨论,有时面试官会给出一定的提示。如果实在毫无想法,也可以向面试官询问简单的提示。在面试官的提示上,最终也可能解出题目。即使没什么想法,也要保持沟通,切记完全不说话。

  • experience面
     我面试的几家外企,都多多少少有类似experience面试的环节。这个面试主要是Manager或者VP等来聊一下我的经历,未来规划,同时介绍一下公司或者部门的情况等。这种面试比较灵活,我在一亩三分地上找了一些题目,同时也事先思考了下自己未来的方向以及自己的目标、想法、个性、优缺点等。同时,当面试官介绍其部门时,对于感兴趣或没有特别清楚的地方,可以主动提问,显示自己的兴趣和热情。


女性在求职上的体会

作为一枚程序媛妹纸,我想分享下自己在面试和找工作上的经验和体会~

首先,我想说下个人工作职位和公司的选择。我想大家还是主要考虑个人兴趣和想要的生活。我周围也有些妹子编程很厉害,但选择去了银行国企、转行、或者从事产品经理等,感觉以后也会有很光明的前途和幸福的生活。我个人选择继续程序媛这条道路,主要是因为自己好像从小理工科相比文科就要上手和学习的更快一些。相较于组织、协调等相关工作,更加擅长和喜欢程序员这个职业。当然,自己也应该不断加强各种方面的素质咯~ 另外,我对于工作的强度,主要觉得工作初期可以辛苦一些,多提升一下自己,但随着渐渐年长,我希望对于生活和家人有更多的投入。普遍外企会更重视work&life balance。因此,外企对于我而言是个提升自己同时兼顾生活的很好选择~

此外,我之前曾经听说过外企对于女生的招聘会有一定的侧重。但在我整个找工作的过程中,个人感觉还是比较一视同仁的,仅仅有可能女生在简历上更容易通过。在实际的面试过程中,我经历的面试题目、难度等并没有明显的区别。同时,面试的通过与否主要还是看面试的表现~

写在最后

回想整个找工作的经历,我觉得还是有很多的波折,最后的结果也让我觉得有些意料之喜,感觉自己攒的人品都爆发了~ 希望大家无论是在找工作还是找实习的时候要摆正心态,尽可能多的尝试,对自己多一些信心,耐心,不要轻易放弃,说不定就峰回路转,收获了超级好的结果~ 同时,人生路很长,一个小的成功和失败并不能说明什么,相信只要尽到了努力,即使前行的路上有些波折,也总会有好的结果在前面等着大家~ :) 希望大家都一切顺利^^ 

+1
4

好文章,需要你的鼓励

参与评论
评论千万条,友善第一条
后参与讨论
提交评论0/1000
36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

推送和解读前沿、有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚焦全球优秀创业者,项目融资率接近97%,领跑行业