本文来自作者 Mario 在 GitChat 上分享 「中国码农在硅谷:求职流程与经验分享」,「阅读原文」查看交流实录。
「文末高能」
编辑 | 哈比
每一个优秀的工程师可能都有一个硅谷梦,在全球顶级的互联网公司,和最优秀的工程师一起,做最酷的事情。这里,我希望能通过自己最近找工作的经历,帮助大家了解硅谷求职的途径与流程,拉近你和硅谷的距离。
美国工作的前提——签证
大家听得最多的应该就是美国工作签证 H1-B ,每年 4 月,所有申请人在公司的 sponsor 下,统一进行抽签 (lottery),角逐 85000 个名额。
因为其中 20000 个名额是保留给拥有硕士 / 博士学位的,所以近年来,本科生中签率大约 25%,硕士 45%,与国籍无关。
H1B 历年申请人数(2017 年 —23600 人)
https://frontsimple.com/posts/h1b-2018-lottery/
谷歌,微软,Facebook 每年都会在中国大陆招人,并 sponer H1B 签证,如果一切顺利,当年 10 年就可以来到硅谷 , 享受加州阳光。
如果不幸没有抽中 H1B,根据不同公司的政策,可能会 relocate 到加拿大,英国,瑞士等不需要签证配额的国家,也可能第二年继续帮助申请。面试之前,可以和 Recruiter 了解这些情况。
第二种方式是申请美国研究生,获得硕士学位,拥有美国留学经历的同时,还能毕业后得到 (1+2) 年 OPT 工作机会 (文科专业只有 1 年 OPT 工作时间)。
三年工作期间可以进行三次 H1B 抽签,如果运气不是超级差,都可以获取 H1B 机会。
美国硕士项目时间长短不一,1-2 年,有的甚至可以根据自己的选课进度适当调整。美国硕士申请比欧美国家可能略难,但是只要英语过关,考过托福 /GRE,一般都可以申请到学校去读。
不过,近年来 CS 专业水涨船高,随着申请者越来越多,申请难度也越来越大。
OPT 全称 Optional Practical Training(选择性实习训练),我想最初应该是给留学生毕业实习设计的,随着情况变化,变成了一种美国毕业学生找工作的福利。利用 OPT 1+2 年的缓冲,找到工作,并获得 H1B 签证。
1+2 年中的第一年,任何美国毕业生都可以申请,另外 2 年为 STEM 专业专有 (大部分理工科专业,详细列表可以查看:http://stemdegreelist.com/stem-degree-list/)。
OPT 毕业后才可以开始使用。
与 OPT 类似的是 CPT,即在校期间的实习 (工作) 机会,美国留学生在 Google, Facebook, Microsoft 等公司实习期间就是使用这种身份。
CPT 要求来美一年后才可以使用,根据学校要求,可能还有每周工作时间的限制。
CPT/OPT 还有一大要求就是要从事专业相关领域的工作,EE 可以做 CS 的动作,统计可以做 Machine Learning 的工作。但是如果专业和工作 match 度很差,可能面临拒绝申请的情况。
CPT/OPT 的存在,给努力学习,刷题找工作的同学们留下了宝贵的美国工作机会。但是也让一些学校变得可以“挂靠”,即利用学校学生身份留在美国,投入少量时间上课,利用 CPT/OPT 进行工作,并最终获得 H1B。
还有一种是 L1 签证,跨国公司的高级员工,通过这种方式,到美国同一家公司工作。微软、Amazon 都有这样的机会。但是由于 L1B 只能为这一家公司工作,很多人到美国后可能会转换成 H1B 签证。
硅谷面试流程
硅谷的面试流程一般是以下流程:
投简历。到公司官网或者 LinkedIn 上申请喜欢的职位,或者利用 Indeed.com 搜索职位。
被公司 Recruiter 发现。Recruiter 会根据 Hiring Manager 的要求进行简历筛选,然后和 candidate 进行联系,一般是先通过 email 预约电话时间,然后电话上问一些基本的问题,一般包括简单的介绍,工作经历,签证身份等,只要被 Recutier 联系,一般都可以进行到下一步。
Recruiter 联系后,会让 candidate 提供几个可以 phone interview 的时间。并安排工程师进行电话面试。
Phone Interview,这一轮是和国内面试最不一样的一轮,一般不会 focus 在你的背景,只是自我介绍时做个开场白,甚至都有可能跳过。
最重要的是,在 30-40 分钟时间内,解决一道 Leetcode easy 到 medium 难度的编程题。只有思路不可以,要完整的用代码写出来,bug free 是基本要求,同时也会询问时间 / 空间复杂度。
Onsite Interview,如果 Phone Interview 通过的话,会安排 onsite Interview。工程师 Candidate 的话,是在一天内安排 4-7 轮面试,每轮 45 分钟到一小时。
Onsite Interview 一般也是以 coding 为主,在白板上写出 bug free 的问题,有些公司甚至要求现场编译通过,test 全过……同时,根据面试的角色,可能会被安排 system design 的面试,如: 如何设计一个 key-value store database
通过 Hiring Commitee,如果面试顺利,Hiring Committee 会对候选者进行一定的评估,并由他们来 approval 或 deny。
Offer! 到这一步,会受到 recruiter 的 congratulation,然后探讨薪水与股票。如果这个时候有多个 offer,是最理想的情况,可以在有底牌的情况下谈判。
但是也要谨慎,recruiter 都是有一定经验的,一个好的 package 可能要经过一定的斗智斗勇。
在上面的步骤中,没有提到 team matching, 这是因为不同的公司有不同的 team match 方式。
有的是在面试前,在 recruiter 联系你的时候就已经确定是哪个组,大部分公司是这种模式,如微软,Amazon 社招;有的是面试后,发 offer 前,会安排不同的 team 和 candidate 进行接触,互相选择,如谷歌,Linkedin;还有的是在入职后,进行一段时间 bootcamp,再进行 team 选择,如 Facebook,Airbnb。
Sign offer 后,公司的 immigration team 或者律所就开始为 candidate 处理签证,移民等文件。这个过程一般只需要提供个人信息即可。
硅谷最受欢迎的公司和职业
硅谷的公司其实很多很多,这里列举一些中国人关注度较高的公司 (排名不分前后):
Google, Facebook, Linkedin, Microsoft, Apple, Amazon, Yahoo, Uber, Snap(洛杉矶), Airbnb, Pinterest, Dropbox, Quora, Twitter, Ebay, Yelp, Nvidia, Intel, Oracle, DellEMC, HP, IBM, VMware, Cisco, Salesforce, Arista, PureStorage, NetApp ,Stripe.
这些公司都有不错的签证政策,公司也比较稳定。目前来看,硅谷的工程师工作有以下几个大类:
Frontend: 发展迅速,百花齐放
Backend: 公司统一框架,统一开发流程,向标准化发展中
Infurstaure: 老牌公司做 Server 的软件,互联网公司开发新一代工业必需品 (如 Kafka)
SRE/DevOps: 让工作越来越自动化。
Data Scientist/Data mining: 统计、数学背景的比较有优势
Machine Learning/Deep learning: 全球最热
这些职业发展方向也是各有个的特色,每个方向又有不同的分支。选好一个方向,认真做下去,也许会有意想不到的收获。
硅谷的 Offer 多大与生活成本
硅谷的 offer 也会被叫做 package,由以下这些部分组成:
Base Salary(年薪)
RSU(限制性股票,按年或按季度授予)
Sign on bonus(签字费)
Relocation(搬家费)
Yearly Bonus(年度奖金)
根据作者了解的数据,不同职位与工作经验可以参考下表:
生活成本
如果是单身,H1b 签证,12w 年薪:
扣除保险,养老 401k,税务 (约 35%, 联邦税 + 洲税),每月到手 6000-6500 美元
房租 / 车辆保险 / 油费 / 话费 / 网费 / 水电煤 2500 美元
饮食的话,午饭可以 15 美元内解决,平时聚会,50 美元可以吃顿非常不错的。
如果没有特别消费,理想情况下可以剩下 3000 美元。(FYI, 硅谷房价约 100W 美元 +)
如果成家立业:
夫妇年收入 30 万,供着一个学区一般的平均价位房(现在湾区除了一些学区太烂或者治安超级糟糕的区,房价没有下一百万的),扣除 Fed tax、CA tax、SSN Tax、Medicare Tax、LTD tax、医疗保险,还剩 19 万;再扣除 3 万 2 的 401(k),还剩 15 万 8,平均每个月税后到手 13,167。
每月固定开销:
房贷 / 保险 / 地税: 3,500
两孩 pre-school/daycare:2,500
529 plan:2,000
Roth IRA:800
小时工: 800
吃饭: 800
车保: 240
汽油: 200
才艺班:200
电煤气:100
水 + 垃圾:100
电话上网: 70
手机费:70
人保: 80
小计:11,460
其他开销平摊到每个月:
一家四口每年回国一次:700
其他旅游:100
衣物化妆品:400
日用品:100
小计:1,300
因此一家人每月可支配收入为 13167-(11460+1300)= 407。碰到大的不可预测开销,还得向家里要钱。
(引用: 知乎 https://www.zhihu.com/question/50662770/answer/122675446)
各大公司面试风格与建议
Google: 业界标杆,不断的创造新题目,需要对数据结构和算法非常熟悉 , 甚至要对图论有一定的研究。
谷歌好的一点,他们不像某些宗教公司,迷一样要求 bug free,谷歌更重视对题目的想法,有一个好的想法,一个不漏 corner case 的伪代码,也可以赢得面试官的认可。
同时,test case 要主动添加,时间复杂度,空间复杂度的分析要准确。虽然 Google 面试题目不断更新,但是最近一段时间内的面经题目还是可能高频出现,可以针对这些题目做些准备。
微软:微软有 New Graduate 招聘,Hiring Event 招聘,普通社会招聘。以 Hiring Event 为例,微软 recruiters 会群发邮件邀请参加 Hiring Event,报名并通过简历关后,会安排 phone interview 或 Online Accessment 测试(在网站上做 3 道题),通过后会安排候选人 travel & hotel 等事宜。
在某一天,将所有候选人聚集在西雅图,有对应的 Hiring Team 工程师面试所有人,一般 5 轮,每轮 45 分钟,面试完成后面试官对候选人投票,到一定票数后,基本可以确定录取。
微软的题目不难,尤其是 Hiring Event,基本都是 medium 难度以下。 值得一提的是微软对候选人的旅游住宿交通是非常的用心,每一个参加过微软面试的人都对整个面试流程非常满意。(作者去面试的时候还免费 upgrade 了一辆顶配的野马跑车,非常拉风。)
Facebook:Facebook 是忠实的 leetcode 题目使用者,并且和 Leetcode 题目与时俱进,不断出现 leetcode 上的新题。所以面上 Facebook 的唯一途径就是刷 leetcode,刷很多很多遍。
Facebook 对写代码的准确度和熟练度都有很高的要求,甚至思路都不 care(反正是 leetcode 题目),但是要对,要快,45 分钟内可能要解决 2 道题,完整代码且 bug free。Facebook 的 signon bonus 是非常的迷人,对于非常好的候选人,甚至能给出 10W 美元的 sign on bonus。
Airbnb:Airbnb 是非常受欢迎的公司,薪水高,福利好,公司环境一级棒。Airbnb 的题目是 Hard Level,并且要求编译通过,test 全过,难度可想而知。
但是 Airbnb 有趣的一点是,他们的题库非常小,coding 题目 30 道左右,system design 5 道左右,只要把这些题目准备好,应对 airbnb 的技术面试,难度大大降低。
除此之外,Airbnb 还有两轮“价值观”面试,从他们的角度了解你是一个什么样的人。
官方介绍如下:
Cross-functional interviews: Core Values are the foundation to Airbnb’s amazing culture.
Everyone who interviews at Airbnb has two or three 30 minute conversations that will be based on the values of our company and why you would want to work at Airbnb, role and team aside.
We’re passionate about our product and really driven by our mission to create a world where all 7 billion people can belong anywhere.
These conversations will touch on these subjects and are focused on getting to know you better as a potential future colleague.
Airbnb 薪水高,股票高,考虑到以后上市,股票翻倍,package 应该是目前几大公司最棒的。
如何刷题
通过上面的介绍,可能大家已经认识到了,硅谷公司面试对算法题要求很高,虽然他们自己也认为这些题目不一定能在以后工作中用到。
但是作为一个客观的考察方式,无论什么样的 level,都免不了算法环节,尤其是 5 年工作经验以下, 算法是整个面试的重头戏。
针对这些特点,诞生了 leetcode.com 这个网站。这个网站对题目按照知识点 (Topic) 进行了分类,大家可以按照不同的知识点按类练习。
leetcode 作为一个 oj,提供了足够多的 test cases,同时 discussion 部分有很多精彩的回答可供参考。
算法与数据结构的准备几乎要花上三个月的时间,面对 FLAG 这类公司,要做到 Medium 一下题目秒杀,Hard 题目一小时内解决。
Leetcode 题目可能要刷上 3-5 遍,不一定全刷,但是一定要保证各个类别都有涉及,1000 题应该是个 magic number。
刷题是枯燥的,Youtube 上有一位印度人 对 leetcode 的题目的讲解,推荐大家观看。
同时也有一些培训机构,如九章算法 ( https://www.jiuzhang.com/),来 offer(https://www.laioffer.com)。如果有经济实力的话,推荐大家报名参加,会比自己单枪匹马效率高很多。
最后,祝大家好运,欢迎在 Chat 中和我交流。
近期热文
「阅读原文」看交流实录,你想知道的都在这里