去年八月份写的一篇文章一不小心让我稍微火了一把,短短时间内在微博达到了上千的转发量,甚至连像搜狗首席执行官王小川这样的业界大佬都转发了那条微博。微博上面的声音有两派,一派是支持者,认为「这个年轻人很有想法」,另一个声音则对我的想法、行为提出了质疑,认为我贬低学术、太过浮躁。我原来在微软亚洲研究院系统组的老板对我的想法尤其不满,甚至对我进行了半公开的点名批评,并告诫其他在微软亚洲研究院的实习生不得浪费机会。
后来我了解到,我写这篇文章的时候是八月份,正好是个大互联网公司校园招聘开始的前夕。由于这篇文章里面公开赞扬了Hulu,而且鼓励和我一样的年轻人投身业界,同时表达了对大公司的不满,被许多人认为是符合他们的利益的。由于转发量过大,甚至已经引起了微软公关部门的注意,以至于向我之前在微软老板施压,要求他立刻「解决问题」。我恍然大悟,只好大呼被人利用了!
(补充:此文发布后微软又联系到我,认为以上说法不正确,以下为解释)
这个不符合事实哟,我不想再有不必要的误解。实际发生的是负责我们的实习生项目的高校关系部一直致力于保证实习生计划的质量,觉得我们工作没有做好,才找到我们。我们也发现了问题并马上采取措施,加强了对实习生的关注。我不希望大家了解的和事实不符。
转眼间又过去了一年,已经快到我大三的暑假了,再开学就是大四,眼瞅是要毕业的人了。我快要与在清华的日子告别了,同时我十六年的求学生涯也将接近尾声。有人说现在感叹还太早,大四还没开始,距离毕业还有一年呢!但也有人告诉我,其实大学只有三年,大四和前三年的「过法」不一样。在我看来,大学每年都不一样,这一年来我接触了许多新东西,我和去年的我想法已经有了很大的区别,正所谓是「年年岁岁花相似,岁岁年年人不同」。想想看明年这时候就要毕业了,实习的机会也不多了,所以就写篇文章记录一下当时坎坷的经历吧。
面试准备
有了去年面试美国公司失败的经历,我早早就开始了准备。从去年十月份,我就开始浏览硅谷各个公司招聘暑期实习生的信息了。由于没有先验的知识,根本不知道哪些公司在招实习生,只好像爬虫一样查找。在查找的过程中学会了使用LinkedIn和Glassdoor,这两个网站是非常好的工具,尤其是Glassdoor,还可以看到许多公司的薪酬信息、面试题等。这些信息都是员工匿名披露的,不违反保密规则,甚至还被许多公司的HR鼓励。
英语
去年面试失败很大的一个原因可能就是英语。当时我见到外国人根本不知道如何张口,更别说在电话里面了。我当时的每个面试都是战战兢兢,如履薄冰地准备好一切可能问到的的问题的回答,然后念出来,一旦遇到了没准备的内容可想而知。
认识到问题以后,该怎么做就很清楚了,就是练习英语,尤其是口语。但是具体怎么练呢?这要感谢Gmail广告。Google在详细扫描我的邮件和即时通信记录以后,分析出了我有学习英语的打算,于是就在邮箱界面上不断给我推送学习英语的广告。我发现有一种叫做「电话英语」的广告看起来似乎很有趣,于是就抱着试一试的心态找了几家电话英语看。在购买电话英语服务之前,这些公司都有免费试听的服务,或者说叫分级测试,于是我就找了好几家测试了一下自己的分级。电话英语的模式就是一对一和一个英语国家的外教在电话中交谈,以此提高英语水平。由于欧美国家劳动力成本较高,加上有时差因素,这些电话英语公司雇佣的外教许多是菲律宾的。菲律宾长期以来是殖民地,平均英语水平在亚太地区是最高的,而且不像印度英语有严重口音。许多美国的公司都把电话服务热线外包给菲律宾。比较各种学习方式后,我不得不承认电话英语是一种价格不贵,而且可以保证学习质量的途径。经过几个月的练习,我的口语水平提高了很大一个层次,于是我都敢一个人去美国了。
简历
我买了一本《The Google Resume | 金领简历:敲开苹果微软谷歌的大门》,仔细研读了里面关于写简历和面试的部分。《The Google Resume》可谓是帮了我的大忙,还有这本书作者创办的网站CareerCup上面以一个工程师出身的HR的视角全面介绍了技术职位面试的细节。依据这本书的建议,我精心写了一页简历,但是前前后后修改了几十个版本。 准备好简历以后,我分别在Google、Facebook、Apple、Twitter、Amazon网站上面投了简历,其中Google、Facebook、Twitter有学长帮我内推。在经过难熬的等待之后,最终除了Amazon以外,均得到了电话面试的机会。
Google是我接到面试通知的第一家公司,在11月份就开始面试。我收到邮件通知以后,HR问我哪天有时间,然后给我安排电话面试。Google的HR并没有给我打电话,而是直接安排面试的。由于有时差,所以面试都是在午夜到凌晨之间,所以必须熬夜或者早起了。如果作息不正常,会对自己能力发挥造成很大影响,需要慎重对待。Google给我安排了两轮连续的面试,每轮一个小时,从北京时间凌晨两点面试到四点。
由于签署了保密协议,我不能透露面试的具体题目。题目的类型都是算法题,还有个算概率的数学题。答题的方式是打开一个Google docs页面,你和面试官共同编辑,同时用电话保持交谈。面试官会直接说题目的内容,或者把题目写在Google docs上,看完以后回答问题。一般来说是先描述算法,然后面试官会继续追问或者要求证明,最后写程序。程序直接写在Google docs上,由于没有语法高亮和缩进,还是挺不舒服的。不管问题会不会,一定要主动和面试官交流,澄清问题,也许是少了什么条件或者理解错误,最忌讳的就是一句话不说自己一直在想,或者上来就写代码。
面试完了以后,大概过了两个星期,HR发邮件给我说面试结果不错,给我约了个时间打电话。电话中HR告诉我说我通过了面试,下一步就是进入Google的Host Match流程了。在Google,美国实习生都要有一个Host,大概是经理(Manager)或者导师(Mentor)的职责。每个面试通过的实习生需要等待有Host看中你的简历,然后和你联系,交流以后决定是否接受你。我一直等到一月份,HR才告诉我说有了Host愿意和我联系。和Host电话聊过以后,我对他们做的项目还挺有兴趣的,但是我七月份才放假,和他们的计划有些冲突,所以就没有然后了。过了一段时间又有一个Host联系我,不过我对他们做的东西实在不感兴趣,所以就拒绝了。后来由于HR好像知道我已经在Google北京入职实习了,就没再用心给我找其他Host,所以最终Host Match失败。
Apple
得到消息的第二个公司是Apple,我的简历经过HR的筛选,被安排了电话面试。同样是硅谷的公司,面试要在半夜进行,对精力是很大的考验。Apple公司是出了名的重视设计,就连HR给我发的邮件都和别的公司HR不一样,一般公司的邮件都挺朴素的,Apple的邮件是有信纸的,默认还被Gmail关闭着,点开以后才能看到。
面试也是通过电话进行的,写代码是通过一个叫collabedit的在线编辑工具,许多公司都喜欢用这个东西面试,包括Twitter和Facebook。面试官先问了我一个算法题,挺简单的,我回答出来以后继续追问新的问题,然后让我证明自己的想法,并写代码。写完以后面试官问我做过的最有意思的一个项目是什么,我告诉他是Continuation.js,然后向他介绍了一下。最后他问我用过Apple的哪些产品,为什么喜欢Apple,我就说我用Mac,为什么喜欢我实在没说出来,因为我也不是特别喜欢Apple。看来Apple果真是一个要求员工都必须是忠诚的教徒式的公司。
Apple是我自己在网上投递的一家公司,没有任何内推,这种情况下面试通过概率挺小的,毕竟你还是一个外国人。面试完一轮以后,就没有了音信,反复给HR发邮件问,说正在进行中,可是进行了很久还是没有结果,所以我知道我是被默拒了。
Twitter是我面试过的惟一一家私有公司(未上市),因此决策权全部都在CEO手中。而且未上市的公司资金有限,面试门槛要比面试过的其他大公司高不少。据说Twitter发的每个Offer都是要经过CEO亲手签字的,包括实习生在内。作为一个实习生,Twitter竟然给我安排了六轮面试,比我之前面试Hulu的轮数还多,可见还是比较严格的。
Twitter的每轮面试都是通过Skype进行的,写代码也是collabedit。相比与其他几个公司,Twitter面试的算法挺有难度的,同时也很考察细致程度。Twitter面试的一个特点是需要写的代码量很大,其中一场面试上我一个算法写了一百行的程序,不仅复杂,还要保证正确性。面试的算法涉及到了回溯搜索、二叉树操作、动态规划、缓存替换以及贪心策略和证明。
第一轮面试是我在去美国之前面试,印象中是我期末考试的前一天晚上,当时让我真的是焦头烂额不知道该先准备哪个。第二轮面试时间更是巧合,正好是在美国的旅途中,那天我只好躲在Berkeley的旅馆中电话面试。我倒是挺想直接去Twitter面试的,但是HR就是没给我安排,我只好后来自己过去找学长参观。第三轮是在我回国后,正好是大年初三,这次更悲剧,我的电脑由于被人泼水损坏了,过年又没人修,我只好一个人跑到五道口的一个网吧里面,待了一夜。第四五六轮按说应该Onsite面试,但是考虑到我面试的是实习生而且在国外,就改成电话了,这三轮连着面时,时间总共长达四个小时,从凌晨三点到早上七点,十分消耗体力,而且需要保持高度的清醒。
最终我拿到了Twitter的offer。
Facebook上市不久,许多老员工拿了一笔钱都纷纷走人了,空出大量的职位,在加上上市融资到不少钱,Facebook一直在急速扩张中,就连实习生职位也很多。和面试Twitter类似,我面试Facebook的时候正好在纽约,于是我只好把宝贵的观光时间拿出来躲在旅馆里面面试。 Facebook一共面试了两轮,两轮之间相隔一个多星期,面试的难度和之前面试Google(美国)差不多。面试涉及的问题主要是动态规划和二叉树,感觉这两个东西是面试最喜欢考到的了。其中有一轮面试中面试官还是一个中国人,听他说完以后我顿时对我的英语有了信心,最后我和他说了两句中文,他立刻说「I am not supposed to speak Chinese with you.」,真是无语。Facebook的Offer我也顺利拿到了。
值得一提的是Facebook的HR是一个非常靠谱的人,她自始至终一直在帮助我,帮我争取到了关键机会,如果不是她,我很可能此次实习申请就失败了。我后来在她的LinkedIn简历上面看到了传奇的经历:她2000年进入华盛顿大学,主修英文文学。在2003年的时候为了响应国家的召唤,她毅然离开了校园,加入了国家卫士,远征伊拉克。她在伊拉克和科威特等地担任战地记者和编辑,一直到2006年,才荣归故里,然后完成学业,开启了她的事业。
棘手的签证
最终我拿到的有效的Offer有两个:Twitter和Facebook。其中Twitter是先拿到的,拿到同时HR给我打电话告诉我薪水、团队和签证的信息,并给了我一个期限要求在此前决定。Facebook的Offer是在Twitter后两个星期内拿到的,HR告诉了我差不多同样的信息。
听起来一切都很好,但签证出现了问题。按照美国法律规定,实习生应该申请J-1签证,又称交流访问学者签证。这个签证有一个叫做两年规定(2-year-rule)的东西,意思是我作为「交流学者」访问以后,有回到祖国服务两年的义务。在这两年内,我不得申请任何美国的允许移民倾向的签证,如H-1B或L-1。很显然这是各国政府为了防止人才流失和美国博弈的结果。对于那些拿过J-1签证去美国,然后留学美国,最后留在美国工作的那些人他们是怎么搞的呢?其实虽然有两年规定,但是可以找中国大使馆申请豁免,然后拿着「不持异议信」就可以免受两年规则的限制。一般来说申请豁免只要不是国家公派的就差不多都会给,但问题在于是时间很长,而且只给拿超过六个月以上签证的中国公民办,像我这种实习完了就回来的是不行的。
这个问题非常棘手,而且只对中国人产生约束,所以许多大公司的HR和法律咨询部门都不知道。甚至有些公司十分傲慢,你给他们解释都没用,因为他们觉得他们自己是正确的,在他们眼中J-1没什么问题,反正可以豁免嘛,殊不知中国大使馆有中国特色的规定。只有极少数曾经被这个问题困扰过,有着一手经验的HR才会明白其中玄机。好在我相当幸运,我Facebook的HR之前面试过一个中国人,他因为有J-1在身,而且人在国内,最后穷尽一切办法还是没有办成,双方损失惨重。于是到我这里就成了经验,她小心翼翼地帮我弄清了一切问题。
除了J-1以外,还有一个可以考虑的途径是H-3签证,又称「培训签证」。事实上培训签证是一个更好的选择,它没有任何的后遗症,只是对公司来说稍微贵一些,需要准备的材料陌生一些。我分别向Facebook和Twitter的HR问看能不能帮我办H-3签证,得到的答案均是没办法,理由是H-3签证要求培训者接受的培训必须是在国内无法接受的,并且目的是为了回国以后培训他人。对于Microsoft、Google这样的跨国公司的来说,办理H-3签证是合理的,但Facebook和Twitter在中国根本没有办公室,你说你回国培训谁呢?
于是我陷入了一个窘境:要么接受J-1签证和附带的两年规则,要么放弃这次实习机会。其实两年规则对我来说主要是心理成本,因为拿了它以后就像一个枷锁套在我的身上。这个枷锁只有人在中国大陆待够两年以后才能解除,尽管我毕业就去美国工作并不是我的第一选择,但少了这个选择却是令人沮丧的。人性就是这样,失去一个东西的痛苦要远远大于获得同一样恭喜的喜悦。
正当我在犹豫时,Facebook的HR突然帮我申请到了一个新的机会:可以去英国伦敦的办公室。英国不存在美国这样的签证问题,我可以申请Tier-5临时工作签证,只需要Facebook担保即可。这样一来一切问题就解决了,因此我接受了这个Offer,并礼貌地拒绝了Twitter。
Google北京
去年十二月我还申请了Google北京的暑期实习生,由于距离较近,直接去Google办公室进行了面试。我一共面试了三轮,其中前两轮是连续进行的。第一轮面试我遇到了很难的组合数学题目,由于思路不对,浪费了不少时间,最终没有答出来。第二轮面试难度也比较大,涉及了C语言字符串处理、动态规划和贪心算法证明,但是我答得还不错。过了几天,HR告诉我说两位面试官反馈差别较大,于是对我增加了第三轮面试。第三轮面试是一位很资深的工程师,令我惊奇的是他在面试我之前仔细看了我的简历以及我网站上列出的我做过的所有项目,并针对我的简历进行了提问,包括函数式编程的一些内容,以及JavaScript的CPS变换。
过了几天,HR告诉我通过了面试,但是开始时间是暑假。我联系到Google北京输入法组的杨帆学长,希望可以提前开始实习。Google考虑到我的特殊情况,答应了我的要求,于是我就从今年2月开始在Google北京实习了。
总结
我将在7月1日奔赴英国伦敦,然后开始为期两个多月的暑假实习。这次机会对我来说是十分来之不易的,而且最终能够如愿以偿是因为我很幸运。如果没有Facebook的HR为我努力争取到伦敦的机会,我很可能在犹豫中放弃。如果她没有遇到上一个相同情况的中国人,她也不会为我争取这个方法。如果没有众多学长指点我、给我帮助,我很可能还在蒙昧中。我相信机会是随机的,但是面对机会的选择是可以由个人意志决定的。