首页 > 程序人生 > Jay Huang:我的亚马逊面试经验
2014
11-11

Jay Huang:我的亚马逊面试经验

这一切都从我还在SAP工作的时候开始。几个同行注意到亚马逊耶鲁镇开了一家新办公室。我记得应该是在2013年1月左右吧。最初我并不是很感兴趣,但是当我听别人说了好几次之后,我仔细考虑了一下,觉得应该没什么坏处。我将在四月底离开SAP,而如果亚马逊比较合适的话,我可能会去那。

网站上的职位列表很少,所以我申请了在温哥华的“Web开发工程师”职位,因为我觉得这个职位最为符合我的技能和经验。当时我并不那么积极的寻找工作,所以我并不是十分在意,并且很快就忘了。意想不到的是,亚马逊的一个招聘者在2013年五月24日联系我,在29日进行面试。我认真考虑拒绝它,因为我一个新的工作岗位才一个月,并且我也绝对(还)没有想离开。

如同很多人知道的是,我绝对讨厌在电话中交谈。首先,我更多是一个倾听者,并且当我在电话中和陌生人首次说话的时候给人的印象是冷淡或不感兴趣。第二,它强行打断了我的思路。这和是否是预定过要打这个电话无关;电话强制打断了我的工作,并将我的注意力强制转换到其他地方。作为一个自由职业者,我可以选择屏蔽掉所有的环境干扰,而将小的时间片分配给获取最新的消息或者和人/客户交流。第三点,也是最重要的一点,这是一种同步的交流。当我接起电话和某人通话的时候,我不只是在进行代价高昂的思路切换,我必须谨慎的考虑语言、措辞、以及其他一些可能造成误解的东西。除此之外,我不能对于任何问题给出有深度和谨慎的想法,这将摧毁一切想讨论这些问题的企图。但是在那几个月,我一直在寻找机会让自己暴露在更多的社会/人际交往中,所以我决定来试一试。光脚不怕穿鞋的,我在做我喜欢的工作,而这通电话除了让我有点紧张以外并没有影响我。

电话面试

我请了一个上午的假(后来又补上了)来进行电话面试。我接起电话,面试官介绍自己是西雅图的WEB开发工程师。我立马注意到了印度口音并且开始紧张,因为我意识到我要理解他的话有点难度。他一连串的感谢我接受了面试(差不多5~6个thank yous),这相当意外,但有助于减轻我的焦虑。无论如何,我们开始了面试。我们去collabedit然后他测试了我对于Javascript一些关键功能的理解,web组件的设计和应用,一点关于HTTP和服务器的知识,CSS的理解和运用,以及算法应用问题。

“招聘团队和您聊得很高兴,我们想安排一个时间让您来亚马逊进行个人面试。”

尽管我回答上了他所有的问题,我仍然觉得我没有过。因为我感觉我肯定因外国口音和电话信号不好误解了什么东西。我感觉这事已经完了并且作为一个很好的经验结束了这事。然后在6月11日,我接到了另外一个招聘人员的email,说他们想让我去现场面试。“奇怪了”我想。基本上我所知的参加亚马逊面试所有人都是在两次或者更多电话面试之后才去现场面试的。我当然不会去抱怨少了需要跨过的障碍。仔细的阅读了email之后,我发现他们想让我飞到西雅图参加面试。我很困惑,我以为是在温哥华?他们说过在那。但是他们还是想让我飞过去。

包机票路费食宿?好吧我想我有了一天的度假。别忘了护照!噢,护照…让我看一眼。我的护照还有3天就过期了。我立马通知了招聘人员,并且开始了护照更新过程。在3个星期之后,我终于拿到了我的新护照。我把现场面试定在了七月8号,周一,大概在周日中午到。

周日到了,我也到了西雅图,因为我的全职工作、兼职和夜校,我没有时间准备面试。我决定到周围走走,搞清楚怎么过去面试的地方(这一片亚马逊有7个建筑),并且稍微转转。回到旅店后,我很早就去睡觉了,这样让我可以好好休息。不幸的是,我整晚没睡着。酒店的好床,或者没有像往常一样做兼职做到很晚让我没有休息好。

面试1:

我的第一个面试是在上午10:15,而从酒店出发步行需要20分钟(注意亚马逊报销面试花费,包括机票钱和到面试地点所需的的士钱)。我在9:35出发,并且提前20分钟报道,签了保密协议(就是说我不能公开这个职位的面试题目,只是一个大致介绍),然后坐着平静我的紧张情绪。对于是否能得到这个职位我并不是很紧张,至少不如和陌生人一起坐在一个小房间里,在一个巨大的白板上写代码来的紧张。第一个面试官突然换了,所以他花了点时间来接待我。随即坐下,我被问的问题是亚马逊销售网站的组件。这是一个团队已经解决了的算法问题,并且在前端。我用Javascript写出了算法。

面试2:

下一个面试官带我吃了午饭。他介绍自己是团队中的开发者,但因为前一个管理人员刚走,暂时顶替了管理职位。对于吃饭我倒是没有什么特别的偏好,于是他带我到当地的一个三明治店。我点了鸡肉巧巴达(译注:ciabatta 巧巴达 一种意大利面包),他用公司的信用卡付了帐。他问我是否是在为西雅图的职位进行面试,然后对于我的职位在温哥华却飞来西雅图面试似乎很困惑。我被问了很多关于我之前遇到过的技术经验、技术挑战,让我阐述一些我应用的其他有趣的解决方案,以及讨论和其他方案相比的得失。我们讨论的很不错,但是回答他的问题让我没时间吃饭,于是他给我10分钟让我吃完同时他回答了我的几个问题。

面试3:

这次面试不涉及写代码。面试官是亚马逊主团队的管理者。他给了我一个算法问题(同样跟亚马逊自己有关),然后我相当快地给出了答案,但是他注意到我仍然在深入思考。我解释了这是我能想到的最好解决方法,但是我感觉有更好的方法来做。我们过了一遍所有的细节,讨论了和另外一种算法之间的得失,结论是我的方法没法更有效率了。我还被问了一个亚马逊行为性的具体问题。

面试4:

这个面试我有两个面试官;其中的一个一直如影随形,好像他是才到这个公司的。他测试了我对于不同浏览器处理HTML/CSS各种东西的理解,然后他给我了一个即将推出的新版本的截图,让我用HTML/CSS写出整个页面。

面试5:

在这我碰到了电话面试的面试官。他让我解释Javascript两种实现的不同,以及它们的用例。我同样用HTML/CSS/JS写了一个网页组件,注意到了模块化的代码。他然后测试了我对于浏览器如何处理DOM的低层次的理解,并且使用scratch实现。在那时我已经很累了,并且对于他的口音有一些理解问题,但是我觉得我做的还可以。

面试6:

当我在星期三给你发offer的时候…

最后一个面试是和温哥华的首要招聘者(显然的,他从温哥华飞到西雅图来面试我,而我这个候选人在温哥华,必须飞到西雅图参加面试…)。他问我在这么长的一天后有没有累,然后数出了7次面试。我只记得6个,但是他有一个官方列表所以我觉得就是7个。或许他是说的是面试官。他提到了我得到了很好的评价,他们很期待能够我能够更进一步。然后他花了剩下的35~40分钟在白板上解释了这个职位的待遇细节,包括签约奖金、股票、绩效奖金,我如何选择用股票和现金来兑现这些奖励,以及分别的好处,基本工资等。他说了好几次“当我周三给你发offer的时候你会看见___”。然后他和我一起走出房间,并跟我说温哥华的团队有各式各样的人,牛人也很多,有多么像新兴公司,我会喜欢上的云云。然后他说:“你接受了这个offer之后,我们会让你在3个星期后飞回这来进行一些培训,因为温哥华的办公室还很小,而本周我们没招到几个人。”

在没有听到他的唠叨之后,我给他发email以跟进。我没有收到回复所有我又发了两次,但还是没有回复。数月过后,他还是没有回复我,也没有offer或者回绝信。我想这事毕竟还没办完。

在没有得到首要招聘者的回复,以及让我到西雅图面试温哥华职位的奇怪逻辑,让所有面试官茫然的同时,面试本身也是很有意思的。现场的每个面试都测试了一个在这个职位上成功所需的特定的技能/主题,以确保这些方面的知识中没有显著的差距。我需要说的是,这是我经历过的前端职位上最好的面试之一,能够知道候选人知识和经验的全貌。

编程技巧