这个答案适用于所有硅谷大公司,主要适用于应届生。
第一步:交简历交简历的方式有很多
- 如果 Facebook 在你的大学招聘的话,在 Career Fair 上递简历。这主要适用于北美的学生。在中国,FB 没有正式招聘活动,但在一流大学(清北、上交等)通常会有通过校友、学生组织来代为传递简历
- 内推。找你熟悉的员工,把你的简历放到招聘系统中。因为如果推荐成功有奖金,一般大家会很愿意帮忙(当然你需要满足起码的条件)。内推一般不会增加录用的概率,但基本可以保证拿到 phone screen
- 官网投简历。https://www.facebook.com/careers/
- 把简历直接交给你认识的公司 recruiter
第一点五步:Phone Screen通常为了防止耽误工程师的时间,如果你和 recruiter 未曾谋面,通常他们会安排一轮 phone screen,由recruiter进行,问一些基础问题,答案很明确(所以可以由非工程师进行)
问题举例(所有题目均来自各个不同的公司,下同)
- HTTP 使用的是什么端口
- SSL 是什么意思,有什么用
- 在代码库中找一个函数,应该用什么命令行工具
如果能确定你不会浪费公司的时间(比如你曾经和 recruiter 聊过,你有人内推并强烈推荐,等等),有些时候这个环节会省掉。
第二步:电话面试/校园面试接下来你将被工程师面试,考察代码能力。如果是校园招聘,面试在学校就业中心或学校附近宾馆进行。否则通过电话进行。
电话面试通常是打开一个在线文本编辑器如 Google Doc。面试官提出问题,由你现场写代码。写完后通常会和面试官讨论,如 testing strategy,时间空间复杂度,改进空间,等等。
问题举例:
编写一个程序 deep clone 一个图(graph)
检查一个只含有括号的字符串括号是否正确嵌套,即[()]是合法的,())(是不合法的
面试的技巧是 think aloud,把你的思维过程说出来。面试考察的是解决问题的能力。你并不需要听到问题后立刻开始写(通常最好是你先要求澄清一下问题中模糊的点,并大致描述一下你的算法)。并不需要第一次就写出最优算法。先写出 ,之后改进成比想十分钟好很多。
第三步:On-site Interview如果你通过了电话面试,你会被邀请到公司的总部面试。公司会提供机票酒店并报销你的餐费、出租车等费用,换句话说你不需要自己花一分钱。
面试题和电话面试类似,但有时会涉及到 architecture 类问题,比如:
问题举例:
我现在要写一个短网址(URL shortener)服务,这个服务的架构应该如何设计?
面试技巧和上面一致。
On-site interview 还会考察所谓 cultural fit,也即你能否很好地适应到公司的文化中。只要你性格不要太古怪一般问题不会很大。同时会带你参观公司,也给你一个了解公司双向选择的机会
第四步:发 Offer,谈条件,签 Offer,办签证如果一切顺利的话你会拿到 offer。如果你有筹码(通常是对手公司offer)的话,待遇一般可以谈(放心 rescind offer 只有极端情况才会发生)。之后,签完 offer,公司雇的移民律师会帮助你申请工作签证(放心,肯定让你走成。即使美国签证实在拿不到,可以去加拿大办公室过渡半年到一年)
第五步:入职Yay
第六步:出任 CEO,赢取白富美,走向人生巅峰