(中)

很快,第一面来了。已经考虑到英国人的口音比较难懂,特意准备好了耳机,英语和技术都准备得不充分,所以 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好几次。这次通话感觉是稀里糊涂完成的,但对方居然还要求进行下一步的面试,我算是知道我所在这个岗位是多么缺人了。

上一页1 2 3 下一页