背景
思绪回到了2年多前,那时刚从网易出来,想往外企去。通过V2EX论坛看到有人内推Amazon亚马逊,于是附上简历请求内推。还特别注明,如果方便的话,帮忙内推Amazon加拿大,因为2012年在那边实习过。
在线测试
Amazon效率很高,很快回信,并让我参加在线的coding测试。
测试在myamcat.com
网站进行。这个网站还提供模拟测试,我记得当时特地提前了一天进行模拟测试,熟悉试题形式。
真实测试一共两题。其中有道题目我记得类似“两数求和”的升级版,加上了些业务背景。做下来的感受是:
- 最好联上vpn,否则网络不通畅
- 仔细看清题目要求
- 关注edge case
香港onsite
通过了在线测试后,Amazon很快来电话,英语沟通了半个多小时,主要问我relocate有无问题,并大致介绍了package情况,同等职位,国内收入大概是北美的7成(哈哈,对美七成论)。我主要问他团队情况。之后敲定了香港onsite的细节。往返香港机票和五星酒店都是Amazon付钱的,加起来估计要上万人民币了,而我只花了小几百人民币打的费和饭钱。(需要说明的是onsite地点是每年变化的,之后一年是北京,和最终工作地点无关)
之后我开始准备onsite。
出发
以前从来没有去过香港。早上10点半,我从上海坐地铁2号线,在广兰路换乘后到浦东国际机场(入机场有简单安检)。 按照电子机票提示到2号航站楼3F,入“港澳台/国际出发”,检查口看了一下港澳台通行证。
然后就是正式的海关和安检了,我是二代港台澳通行证,所以走电子通道,证放在黄色区域,手机展示二维码,通过后,还要大拇指指纹。过了安检后,看到可以租赁wifi(香港4g是45一天);还可以在浦发行兑换港币;但是不建议在机场进行这两项,因为一是贵二是排队费时间。这两项建议提前做好,除非真来不及了,再应急。
去香港飞机上遇到了2个India女孩,一路聊天还挺开心的。
一面
由于前一天差点在香港狭窄而混乱的街道迷路,我6点半就起来了,8点坐地铁就到了洲际酒店,到了后发现我是第一个到现场的。达到后我问大厅经理是否知道amazon onsite interviews这个event,他回答知道,而且知道在11层,我抖了个机灵,先上去了熟悉了下场地。这次面试的一共8人,每人一个海景房,面试官流动来面试。
一面面试官是位白人,感觉30岁出头的样子,很nice的一个人,有意放慢英语语速,让我听的清楚,能够照顾到面试者的反应,让人尽量relax
先问的leadership问题:有没有一件事让你做innovation的方法,不走寻常路? 我用了网易圈圈的企业余额异步更新的例子。
然后是编程题目:
familly tree,其实是类似一颗家族树,每个节点上层是2个节点,一个parent节点,一个mother节点,类似例子如下:
因为刚开始连不上wifi,所以我申请了白板编程,
关键点:
- ask clalification questions 我问了有多少generation,面试官说这是好问题,题目描述是从1590年开始,算300年,30年一代,那就是10代,所以sacalability可以暂时考虑10代,这样我心里就有底了
- 我计算出了,每代数量的增长是2的n次方
- node的结构如下,这个是面试官定义的,我觉得的他的编码习惯很好,因为他是用接口定义,避免了实现的细节,向他学习
- 我给出2个方法,一个是循环的实现,一个是递归的实现,我选择了循环实现,循环的关键是怎么从这一代推到下一代(到这里时,面试官说,we almost there),我用了一个先进先出的队列。实现完成后,我主动指出时间和空间复杂度。
这些年下来的经验,面试首战要必胜,一是对内推的同事有个交代,二是给自己信心。
二面
主面试官一个是黑人,30出头的样子,看着比较年轻,自我介绍是负责customer service部分的,另外是一个女的,有着亚洲长相,但是是英语native speaker,只负责纪录,没发言,所以我对她没什么印象
这轮的leadership问题比较多,问了不只一个,比如讲到没有足够数据怎么办?
我反馈:
1.用搜索引擎搜索,比如百度指数(幸亏最近订了极客时间的从0开始学增长的课程,获得了很多实战技能)
2.行业报告
3.直觉
我以圈圈的用户增长为例,说了直觉的作用,我们定位在学校的大学生,他们有大把时间,而且愿意分享信息,所以刚开始用户有增长,
于是他追问(此处省略若干问题细节)
这轮的编码是一个带业务背景的类似二分查找的题,这次我选择直接在笔记本上做。
三面
第三轮是系统设计面试,是一个白人,年纪看着有40岁了(或者老外显老),有点谢顶了:)
系统设计题目:
Amazon员工每天登录工作系统时,会弹出一个问题,比如最近的compliance问题,公司制度,或者比较generic的问题,这些问题需要得到反馈,就是要搞一个rating的系统,给予这个问题1-5分的总结反馈
我的反馈:
-
弄清楚需求:
- amazon又多少员工使用这个系统 1M
问题数又多少 - 每天被rating的数量又多少(对方回答一天一次,那么是1M)
- 但是最重要的是,有rash hour,因为北美员工数量多,时区也差不多,可能一下子就是10万级别的人登录进来
- amazon又多少员工使用这个系统 1M
-
Overall design(abstract design)概要设计
- record module
- report module
- 然后我做了读写分离,而且对rush hour特别定了MQ 队列,对方很感兴趣,问为什么 回答:smooth the peak 削峰填谷
四面
四面是个senior,看上去快50岁了。(国内说的35岁天花板好像在国外并不存在?),从技术交谈上看也是非常专业的人。
从事后收到的Amazon拒信分析看,应该是这一面我出了状况(但注意其不会透露具体细节),一是不习惯高强度的集中面试,且全英文交流,已经出现疲劳的感觉,思维没有之前活跃。二是这题中涉及数学相关的知识,说实在我数学不太好,youtube上看面经,我记得有大神也是挂在这个上面。所以面大厂,要让自己方方面面的基础更扎实些。
后记
此次面试经历给我全新的人生体验。面试很多,特别的不多,这次面试经历是我记忆海洋中深藏的一颗金贝壳,所以时隔2年多,特地整理了出来,也给各位有志者参考。不管最后结果如何,国外大厂对待人才的态度是值得人思考的。祝各位潜心打造自己,百炼成神,飞向更广阔的天地。
第一张图是面试现场我“偷偷”拍摄的照片,一个面试者一个海景房,面试官流动这模式我还是第一次经历。这个面经用现场拍摄的海景照片结尾。