联系作者:dodohack@gmail.com
伍童鞋耗时一个月写作的,堪称有生以来史上最长最详细的长篇流水帐—面试经验,跟大家分享。
(上)
拿到 offer 之后,就答应朋友把那些跨国得面试经验给写下来,和大家分享分享。时间已经过去几个月,再不写就该忘记了。
2012 年 10 月 18 日,拿到 3 年期的英国 T2 工作签证,将于 20 日飞往英国。
回想起这几个月的奋斗历程,不得不说相对于留学来说,技术移民会困难得多。如果家里有资金充足,好好准备一下英语,雅思平均分考到 6.5,就可以申请到不错得学校了。当然你大学的平均成绩要过得去,美国英国每年都对工作签证设有名额上限,2013 年美国普通 H1B 签证上限为 6 万 5 千,英国为 2 万,不过这些数字当中不包括续签和学生签。
2011 年 8 月底,从杭州辗转到上海进入 S3 工作,原本是想在 S3 好好学习 2 年,慢慢寻找出国的渠道,毕竟上海是全球个大 IT 公司的集中地,AMD, ARM, Broadcom, Intel, Nvidia, Qualcomm 等等。 可是大概进入 S3 半年之后,就听说公司要被国内一家投资公司收购。我想,那以后 S3 不就是国企了,而且听说收购后会做其他产品。我原来可是冲着 GPU 这一块才来 S3 的。
终于,收购的谣言传出后 1 个月,部门老大宣布了消息属实。编译器组的老大也被被调到新成立的语音识别组,而我选择了毅然坚守编译器组。后来,我选择了这次 S3 被收购作为我下一跳的理由,于是为期 6 个月的准备工作默默的开始了。
上海四五月就开始出现夏天的影子。我的住处离公司大概有 2.5 千米,骑着我自己改装的自行车上下班已经有半年时间。大概就是夏天的苗头刚出来的这个时候,每天骑车便都会戴上耳机,有时候嫌骑车太快,干脆跑步或者走路上班了。MP3 里面放着各种从网上下载的资料,BBC,专业演讲录音,纪录片录音。中午吃饭也故意选择了更远一点的食堂,这样可以在前往吃饭的路上训练一下听力。大概也是从这个时候开始,我开始成为了 monster.com, myvisajobs.com 以及各大公司招聘页面的常客。后来又发现了 glassdoor.com, 一个非常不错的面经分享网站。当然我也不放过我订阅的邮件列表,其中 pathscale 的工作就是通过邮件列表找到的.。给我带来的大量面试机会的网站是 LinkedIn,已经记不清是什么时候发现它的了。
五月,上海早上 7 点的太阳就非常热了。我的起床时间也从原来的 8 点调到了 7 点,每天 1 个小时的晨读从此开始,一直坚持到了九月份面试结束,对于一个爱睡懒觉的人来说早起是非常痛苦的。刚开始我主要训练基本的英语表达能力,因为中国人一直学的都是哑巴英语;中期主要读一些整理的招聘网站上面的文章, 除了继续训练口语以外还可以了解国外的招聘现状;后期主要是朗读自己写的曾经的工作经历和内容,足足有 10 多页。
每天晚上回家吃完饭,溜完狗狗,便开始忙活了。除了收集各种资料,准备晨读的资料,准备自己的简历以外,还开始研究各种排序算法,编译器的优化算法,和 GPU, OpenGL 相关的各种概念,开始练习一些 C/C++ 面试题,并且还把曾经做过的工作拿出来仔细的过了几遍。
一份好的简历实在是太重要了,很多人觉得写简历就是把自己做过的一一的列出来就行了。我工作这几年,大概面试过 10 来个人,被面试过不下 20 轮,发现了以下几个现象:一,能用一张 A4 纸写完简历的人很少,即使是应届生也不例外;二,使用从 51job 下载的简历的人不在少数;三,简历没有针对性,没有突出以前的工作和当前所应聘的职位的相关性;四,面试官几乎不会看除了工作经历以外的部分,甚至他们面试你的时候都不看简历。所以, 我花了大量时间来整理优化简历,并且幸运的找到了一个很好的模板(地址:http://www.careercup.com/resume), 按照这个模板打好草稿,仔细推敲了用词,反复检查了是否有语法错误,改了一遍又一遍,去掉了和编译器无关的工作经验。然后又分别制作了针对编译器前端和后端的两份简历。其实,简历不一定就是一五一十的反映你曾经所做的,适当的美化简历是必不可少的,这样会你会得到更多的面试机会。有些工作你不一定亲自参加过,或者只参加过其中很少一部分,却又缺少足够的工作经验来填补简历的空白的时候,你可以把这些当成自己的经历写到简历上去,但要注意的是你一定要对你简历上写的非常熟悉,包括其中遇到的问题是如何得到解决的。
简历准备好后,我并没有急着上传到 linkedin 和 monster,因为我不想在没有准备好的情况下收到面试机会。五月中旬,邦利建议我应该投一些不知名的公司,用来练习纯英语的面试,但看看所收集 7, 8 个工作岗位,都是我向往的大公司,哪有小公司会招编译器工程师? 当你决定不想在一个公司继续做下去的时候,我就会变的急着想离开。所以,在没有完全准备好的情况下,我更新了 linkedin 上面的状态为找工作中,并且开始投简历了。心想如果这次失败了,6 个月后可以再投,我完全不知道英国那边的公司也在全球招人,所以这次一共投了 Apple, AMD, Intel, Nvidia, Qualcomm 这 5 家美国公司... 1 个星期过去了,没有回音,2 个星期过去了,仍然没有。五月末的时候,linkedin 上面的简历开始发挥作用,意外的收到了英国猎头发来的工作机会,往来邮件之后,猎头给了我 3 个候选公司: ARM, Broadcom, Imagination.
不知道当我得知有面试机会的时候有多么兴奋,完全不亚于最终拿到 offer 的兴奋,原因很简单,这是第一个让我实现技术移民的机会,也是对我的简历的肯定。很快,第一面的时间就确定下来了:
5 月 31 日,Imagination 电话面试
6 月 13 日,Broadcom 电话面试
6 月 20 日,ARM 电话面试
我之所以把 ARM 排到最后,是因为当时我最想去的公司是 ARM,而且每次面试之间我都为下一面留出了很长的准备时间。参加欧美公司面试有个好处,他们会提前告诉你谁将会面试你,这样你便可以通过社交网络事先了解下面试官的专业背景。
(中)
很快,第一面来了。已经考虑到英国人的口音比较难懂,特意准备好了耳机,英语和技术都准备得不充分,所以 31 号那天晚上吃完饭就一直在看面试的资料。而且时差也算错了,原本以为晚上 10 点的面试,9 点电话突然就响了,一看是 44 打头的,心跳突然加速,措手不及。赶忙准备好耳机,接通电话,面试就这样稀里糊涂的开始了。我一手紧紧按着耳塞,一手拿着手机,大脑飞速的运转,努力的去辨别对方说的每一个单词,可惜,大概听懂了 50%,估计对方能听懂 30% 我说的。后来对方没办法,叫了一个中国人来做翻译。面试持续了大概半个小时,问了一些我在 S3 做了些什么以及 S3 是做什么的,我当时在想你做这一行的,连 S3 都不知道? 面试最后大概说了一下是否可以去英国那边面对面的面试。挂断电话那瞬间,紧绷的我一下子瘫倒在椅子上。后来才知道,面试时我太过紧张,以至回答问题的时候还夹杂着一点点中文,哦,天了,我面试时完全没有察觉。
6 月 2 日早上 7 点,突然接到 Apple 打来的面试电话...
刚要起床,手机铃声便响起。一看号码,很陌生,既不是英国那边打过来的,也不是国内的号码。接通后,从对方的英语口音就一下子能辨别出是美国打过来的,待电话那头自我介绍完之后,方知对方是苹果总部 HR,那英语,通过电话都能听得清清楚楚,我就纳闷为什么英国人说话那么难听懂呢?苹果的 HR 主动提出第二天早上就进行技术面试,我尝试着推后面试时间,好让我有针对性的准备准备,但没有成功。挂断电话后,那股兴奋劲简直无法用语言表达,要知道,能让苹果看上你就已经说明你具有全球顶尖人才的潜质了。
那天注定就不能安心的工作,苹果,我梦寐以求的公司。本来打算请假在家准备面试,但最终还是去公司了。从 S3 的办公室布局来看,就会觉得 S3 对个人隐私保护的很好,每个人有 4 平米的空间,其中 3.5 面都是 1.6 米高的隔板,所以,在自己的格子里面开小差别人也不会发现。那天白天,我偷偷在公司把所有做过的东西几乎复习了一遍,晚上又了解了一些苹果公司的信息以及深入复习一些可能会被问到的问题。然后带着兴奋与不安的心睡去。
6 月 3 号早上 6:45 点,提前了 15 分钟起床。7 点接到面试电话,感觉这次口语和听力都进步不少,对方说的基本上都听懂了,我说的对方也没有疑问。面试大概持续了 30 分钟,其中有两个问题导致了我这次的失败。一,关于循环展开的实现问题没有很清晰的回答出来,这也是因为以前做这个优化的时候只在一些前提条件和参数上面进行了优化,而自己没有实现过这个算法。二,关于 OpenGL 顶点着色器的默认输入参数的含义,当时我脑海里全是高版本的 OpenGL,而低版本的 OpenGL 才会用到默认的输入参数,当时我想表达一些对此问题疑问,但又没有很好的表达出来。苹果的人做事真的很果断,当我在这两个问题上面暴露出问题后,对方就没有给我太多机会,连安排好的第二个面试官的电话面试也被取消了。
苹果的面试就这样在不幸中结束,看来这次与苹果无缘了,与美国无缘了。
心里像打倒了五味瓶,但生活还得继续。
有过这次失败的教训之后,接下来的几天便着重深入研究了各种算法,并且在网上做了大量的 C/C++ 在线测试题,以应对 6 月 6 号的 Imagination 的在线测试。参加 Imagination 在线测试之前,我已经从 glassdoor 了解到了一些关于这次测试的基本信息,比如说平均每道题只有 3 分钟时间,做过的题不能返回复查,没有时间写程序测试编程题的输出等等。6 号晚上下班回家吃完饭,调整好状态,便开始做题,邦利为了不打扰我,选择了去同济跳舞,我想那只是去跳舞的借口罢了。总共 30 道题,从 8 点一直持续到 9 点半。我想设计题目的人一定是拿着一本C语言标准,专门找那些不常用的知识出题,比如说,printf (“%lc%ld%li%lo%ln%ls%hx%hhx”, .....) 的输出是什么,lvalue 和 rvalue 的概念等等; 和我之前在网上找的 C/C++ 编程题类型有不小的差距。由于我没有想到这些题会有一定的难度,所以从我一刚开始看到这些题的时候就有点心跳加速。刚开始不会的题还会 google 一下,但一般都很难找到答案,后来就干脆完全靠自己的记忆和对知识的综合运用了。这次测试还有一个显著的特点就是所有题目都是以图片的形式呈现出来的,并且字体非常奇怪,我一看便知道这样做的目的是避免测试者用 OCR 取词。其实我便用了 OCR 取词过几个编程题,但是效果非常差,粘贴取词的内容到文本编辑器之后还得手动修改取词错误,然后还要编译,调试,测试输出,评估输出是否合理;要知道 3 分钟的时间做这么多事情是一件非常困难的事情,所以这样做了几个题之后就干脆丢开了 OCR,完全靠自己的大脑。不过后来回想起其实有一些通过写程序测试过的题却做错的,原因是这些题的结果本来就是不确定的,但是我却选择了程序在我电脑上运行出的结果,出题的人真是费了不少心思呀。题目做完提交后,估计了一下自己的正确率,80% 左右,接着又写邮件告诉猎头我这边的进展情况,Imagination 的第二面就这样结束了。
在线测试做的不够好,自然开始担心会不会被刷掉。所以频繁的和猎头互发 email,两三天后,Imagination 便给出了第三面的安排。
6 月 12 日,Imagination 第三面,电话那头是 HR,持续了大概 45 分钟,全部聊的非技术问题。HR 的口音非常容易听懂,并且由于准备得充分,终于在这次面试中表现不错,并且理所当然的拿到了第四面的机会。和 HR 面试的内容无非就是自我介绍,以前做过什么,为什么离开当前公司,为什么想来英国,为什么想来 Imagination,对我们公司有什么了解,和以前同事关系如何等等。当然这一面也有测试英语能力的目的。
第二天晚上,接着便是 Broadcom 的电话面试,第一面的面试官当然是部门老大了。有了前几次的面试经验过后,我对英语的信心也逐渐建立起来,和老大聊了以前我做过的东西以及里面用到的一些算法,便大致确定还会进行更进一步的面试。
ARM 的电话面试安排在 15 号晚上,这次对方是两个面试官,从电话那头互相谈话的声音推测,便知道对方是在会议室打的电话,而且还开的免提。这两个面试官轮流问我一些和我简历相关的问题,这次面试也很顺利,快结束的时候对方便表示很想让我去剑桥和他们面对面的面试,而此时的我,已经信心满满。
这些公司在邀请你面对面面试之前,都会想法测试一下你的实际编程能力,这是和国内公司面试区别最大的地方。
原本在第一面的时候,ARM 和 Broadcom 就已经邀请我进行下一步的面对面的面试,但是后来两家公司都提出让我做一个编程挑战题,当时我想的是难道他们老外在怀疑我们的实干能力。Broadcom 给的题目是在几个小时以内利用开源的编译器架构搭建一个简单的编译器, 并且用 git 版本管理器记录所有开发过程。ARM 给的题大概是写程序解决多重生产者消费者之间的并发问题,两个小时完成。我花了 8 个多小时才基本上做完 Broadcom 给的题目,美好的周六就这样去了。而 ARM 的编程题则耗掉了我第二周周末上午半天的时间,因为提交了两个版本,每个版本两个小时。
自从 6 月 22 日做完 Broadcom 给的编程题,到 7 月 16 日,就一直没有得到 Broadcom 的反馈,期间我还给猎头发邮件询问面试的进展,但没有得到回复,所以我当时想到的结果便是自己已经被 Broadcom 从候选者中除名了。
7 月份的日程试安排得满满的。
7 月 1 日做完 ARM 剑桥给的编程题,7 月 2 日又开始面 ARM 瑞典的一个岗位。第一次听瑞典人讲英语,我想你讲的那是英语还是瑞典语,几乎每句话我都要 pardon 好几次。这次通话感觉是稀里糊涂完成的,但对方居然还要求进行下一步的面试,我算是知道我所在这个岗位是多么缺人了。
(下)
7 月 7 日,收到 ARM 剑桥的 visa 邀请函,结果发现 Mr.Wu 被写成了 Mrs.Wu, 9 日收到更正的版本,10 日前往英国签证中心,随身除了那封邀请函就没有带其他资料,结果被签证中心守门的笑话了一番。11 日准备好各种资料后,花了 800 多大洋,搞定。值得庆幸的是提前 2 个多月去杭州把护照办好了。上海签证中心效率就是高,两天后拿到了签证,180 天的商务访问签,可多次进出英国。又是人生当中的第一个,在回公司的地铁上翻来覆去的看这个签证,想到马上就可以去剑桥,兴奋得不行。
Imagination 的最后一面终于来了。原来 HR 说好安排去英国面试,不过可能考虑到成本问题,最终选择了去深圳的一个子公司(Pure)面试。经过几番通话后,深圳公司的 HR 帮忙定好了 7 月 3 号的机票和酒店。
3 日早上 6 点,坐上提前预定好的出租车,从张江出发,1 个小时便到达了浦东国际机场。时间很早,机场人不多,很快就办理好了登机手续。八点半的航班,离登机还有几十分钟的时间,拿出 9.7 寸的山寨电纸书,打算再看一遍准备的各种面试资料,但是心却已经不在面试上面了,而是想着去深圳后如何安排和朋友见面吃饭以及面试完后去哪里逛逛的事情。
不到上午 11 点,到达深圳宝安机场,打个车就直奔南山区南海大道,各种过路费加燃油费加出租车费,花了我 70 左右,心想要不要找公司报销。约好的面试时间是上午 12 点。我赶在 12 点前到达 Pure 的办公室。办公室不大,大概一共就十几个人,连前台都没有,不过一进门就被各种 Pure 的产品吸引了,各种收音机,音箱成列在进门就能看到的位置。据面试官说最便宜的也要人民币 500 大洋,而且大陆没有卖。我还以为要一起吃完午饭之后再开始面试,结果被 HR 带到会议室休息了一会儿,就进来一个法国人,简单的做了一下自我介绍之后,面试便开始了。他首先是让我在白板上做题,一共出了五个编程题,有两三道常见的,有两道第一次碰到。每次编程完之后,面试官都会问 “Do you have a better solution?”, “Can you improve the performance?” 等等之类的问题,导致我每道题都给出了至少两种解决方案。这样还不算完,面试还要针对我写的每一行代码,让我一行一行的解释是什么意思;有时候问到关键部位,会问为什么要这样实现,这样实现有什么好处等等。我们的英语交流非常顺利,我唯一碰到的问题是不知道质数用英语怎么说,然后我就直接问他啦, ”It’s a number that can only be divided by one and itself.”。估计这 5 编程题的面试持续了 1 个小时。然后喝了口水,休息了几分钟,面试官又拿着足足有 10 多张 A4 纸回到会议室,开始理论面试。理论面试分为两部分,第一部分是编译器专业领域的知识,第二类是计算机科学涵盖的基本算法和基础知识。每张纸上都有一些问题,每个问题下面都有一大片空白,他一边问,一边在空白处记录着我回答的。问题也是从最基本的排序算法,CPU 缓存,流水线,到高阶的编译器领域的寄存器分配算法,循环优化算法都有。如果没有准备,直接用中文回答这些问题,可能都会有点困难,更不要说用英语回答了。不过幸好的是我已经准备得非常充分,问到的大部分问题我都有用英语写下来并且晨读过。
不知不觉,面试持续了 3 个小时后结束了,原来面试的时间也可以过得这么快。之后和面试官下楼去泰国餐厅吃了个不算午饭的午饭,结果我却点了一个非常难吃的粉丝,里面有一些生的蔬菜,粉丝一点味道都没有,但我还是强迫自己把它吃完了,不想给对方留下任何不好的印象。当被问到好不好吃的时候,我一个劲的说 good。 7 月的下午,深圳的太阳毒辣辣的,从泰国饭馆出来互相寒暄了一下我就直奔坐落在南山大道的 somerset 花园酒店,环境真不错,有生以来第一次住这么好的酒店。在房间拍了几张照片之后,便冒着火热的太阳去找多年未见的李勇,小叶和娟娟吃饭。
这次深圳面试当中出了一个插曲,这个插曲成了我的心结。面试之前,我特地把手机电源关掉了,但是面试进行到一半的时候,手机却响了,当时我心里一沉,连忙一边说 sorry,一边打开书包,关掉手机闹铃,并且着急向面试官解释,但我想他最终还是没能听懂我说的什么。这次面试只有一个题回答得不是很好,虽然给出了解决方案,但不是面试官心目中想的那个,所以我当时想,如果我被拒了,原因很可能就是这两个。
Imagination 的最后一面结束了,但不知道什么时候能得到反馈。参加国外的公司面试有一个好处就是,即使他们不要你,你也会接到他们的通知。第二天回到上海之后就开始忙签证和在英国的吃住行的事情。10 号提交签证申请,12 号签证就下来了,速度真是快。拿到商务访问签后,各种兴奋,由于假期不多,所以打算把婚假请了。ARM 剑桥的面试被安排在 7 月 31 日,所以提前把假期请在 7 月 29 到 8 月 5 日。
7 月 17 日,开始了 Broadcom 的最后一面,上海张江 Broadcom 办公室下午 4 点,英国时间上午 11 点,通过 1080p 的摄像头和 2 个至少 60 寸的 LED 显示器视频面试。我当时心想,搞网络的公司就是好,视频会议室设备就是更先进,S3 简直没法比。这次面试一共有 3 个技术面官和 HR,部门老大首先介绍了自家图形方面的产品以及当下的状态,然后问了很多和我简历相关的问题,之后就让做题,有编程题,也有智力题。还是第一次碰到智力题,想了好久才做出来,回答完关于沙漏的智力题,对方居然没有听懂,让我重讲一遍,搞得本来紧张的我已经开始冒虚汗了。第二个面试官主要关注在图形算法上面考我;第三个面试官是德国人,口音很重,我想这个面试官也很无赖,每次他问一个问题我都要 sorry 好几次,所以他问了几个问题之后干脆就直接让 HR 进来了。HR 和部门老大都进了办公室,把语音关掉了,相互讨论了几分钟,我努力尝试着从他们的口型去猜他们说的什么。Mission impossible! 还好 HR 给的反馈非常好,表示一个星期之内就给我答复,我也直接向他们说明了听不懂第三个面试官的英语。面试结束后,对方打电话给这边的办公室让人带我出去,结果这边中国办公室已经没有人了,看看时间,原来已经快 7 点了,还是我自己走出去吧,不会丢东西的。
之后的一段时间便是各种等待,同时猎头又推荐了 Samsung 和 Cambridge Silicon Radio 两家公司的职位,看来我做这一行缺的人不少。完成第一面之后,猎头已经把我这次剑桥之行的日常安排得满满的,除了 ARM 剑桥,还要在 ARM 剑桥通过视频面 ARM 瑞典,之后要面 CSR,然后还要造访 Broadcom,最后给我留了两三天时间可以让我去伦敦玩玩。
大概还有 2,3 天就要出发去英国了,已经面试完的两家公司也没有一点消息,心总是悬着,在 ARM 马上就要确认给我定机票的时候,突然收到猎头发来的邮件, 内容如下:
“ARM have had a review and have subsequently decided that they now no longer wish to interview you. I’m tryingto find out what has changed but sounds like one of the senior managers has decided against it. Also Broadcom now have a hiring freeze, this is a yearly occurrence and will usually only last a couple of weeks. However in the meantime they feel it unfair to bring you over and waste your valuable time.
I’ll follow up with Samsung and CSR now and see what we can do to move things along with them.
Also that good news I spoke of at Imagination looks likely to come either today or tomorrow, so all this may become academic!
ARM and Broadcom apologies for getting to this stage but decisions made higher up in the organization have been out of the hands of the managers we have been speaking with.”
天啦!怎么能这样!大脑一下子空白了。
伤心,失望,各种不爽,这几个月的努力就这样白费了?我是怎么想也想不通!这时,那个心结更是让我不安,最后的一点点希望不要因为我面试的时候手机响了而破灭呀。
下班回到家,把消息告诉了蒲(伍夫人),她尝试着安慰我,但是越想越觉得不公平,浪费我这么多时间不说,还浪费我办签证的钱!那天晚上躺下了怎么也睡不着,心里各种不甘。突然电话响了,接通之后,猎头很兴奋的告诉我,Imagination 给我 offer 了,工资多少,股票多少等等。挂断电话,已经一点过了。天啦,这不是玩我吗?这个时候更是睡不着了,我们俩感慨,真是风雨过后见彩虹!黎明前的黑暗总是让人沮丧,想到放弃。
我把这些跨国面试看得太重太重,心里承受了各种压抑和喜悦。站在上海青桐路 618 号 8 幢 701 的阳台上,望着远方,脑海里浮现出对未来的各种憧憬。
有话要说...