一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1025|回复: 2
收起左侧

Amazon 09/25/2014 Phone/Onsite 面经

[复制链接] |试试Instant~ |关注本帖
yuanyin 发表于 2014-10-7 05:17:44 | 显示全部楼层 |阅读模式

2014(7-9月) 码农类 硕士 全职@Amazon - 猎头 - 技术电面 Onsite |Other

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
小弟在国内某数字厂有一年多两年工作经验,从国内来纽约半旅游半找工作,在LinkedIn上被recruiter联系之后开始的面试流程。到最后都不知道自己具体面得什么职位(汗!)。本来已经pass了,和recruiter聊了工资,和Hring Manager聊了规划,后来又因为本人没有工作签证,要等我实在太久就又把offer扯了。这么悲催我也只能苦笑下下,把自己的面经贡献出来攒攒人品,兴许明天就Power Ball什么什么的呢。
第一轮:电面,面试官是个中国哥们,非常nice地各种帮我介绍情况,告诉我他们急需人马上开工,当然这也是后来offer被撤回的伏笔。
Problem 1:LeetCode上的Search in Rotated Sorted Array. from: 1point3acres.com/bbs
LeetCode上的原题我就不解释了,大家都刷过了。-google 1point3acres
Problem 2:给定一个词典和矩阵,矩阵中每个元素都是一个字母,从矩阵中的任何一个元素出发,通过上下左右移动,移动的路径都可以构成一个单词,要求找出矩阵当中存在的且在词典当中的单词中最长的一个。
我没有多想就直接用了一个矩阵遍历+DFS的基本方法,code了之后也没有要求优化啥的。
Problem 3:设计一个电梯系统. 1point3acres.com/bbs
我用从OOD的角度进行了设计电梯箱,按键面板等对象和它们之间的关系,没有深入调度算法细节。

和哥们聊了一会儿之后,就出门吃午饭,吃完了午饭回家的路上recruiter就打电话过来说电面结果很好所以约我Onsite,问我啥时候有空之后,我掐指算了算就说了个随便,于是Onsite就被定在了两天之后。。。好吧,原来你们这么积极啊。。。

第二轮:Onsite,一共四轮,第一轮Boss面,后面三轮技术面。. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
Boss面:Boss当然不会问技术,于是就是各种behavior questions。我看过大家之前的Amazon面经,问题几乎都差不多。我没有看过amazon的leadership principles,但是这些问题都挺基本的,大家稍微准备点儿句子等着就好了。我是就这我自国内工作的时候的具体项目经验回答的,期间结合问题扯了很多我在实际工作中遇到的问题和应对方案。因为国内一厂一江湖,狗血的事情谁都能遇到那么几个,所以能扯的题材挺多的,结果个人感觉Boss应该很满意。
Problem 1:介绍自己的项目
Problem 2:离职的原因
Problem 3:工作中遇到的最大困难. from: 1point3acres.com/bbs
Problem 4:如果deadline已经很近了才发现活干不完准备怎么办
Problem 5:有没有什么时候或者什么feature是自己没有和同事沟通就独立完成的
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
技术面2.1:一位在Amazon工作了10年的华人,感觉有点儿不苟言笑,没看出来是ABC、台湾人还是国内过去的。一听到十年就已经吓尿(。。。)了。

Problem 1:设计一个停车场计费系统
一开始从OOD的角度来设计。后来面试官说我应该think bigger,才意识到应该是从一个通用系统架构的角度来回答这个问题。于是就开始扯后台系统架构,想到经典的三层系统机构从来不会答偏题于是就开始往上搬了。第一层接入层,第二层逻辑层,第三层存储层。接入层收到用户请求根据协议和请求类型转发给合适的逻辑层。逻辑层包括多个不同服务,各干各的事,完成库存啊计费啊汇率转换啊等等操作。存储层当然就是数据库,mysql和nosql大家都懂的,上来把基本表建好,就直接用吧,有需要就扯缓存。比如我就扯了用redis当缓存,缓存当然有各种不同粒度,各自命中率肯定不一样等等。问我如何扩展方面,我的回答就是各层内部放入是随便加服务的,只要服务起来了之后到Zookeeper去注册让其他层的服务调用的时候能找到就好了,存储层扩展有很多Proxy可以用,比如我厂就有一个叫Atlas的开源项目,是一个很出色的Mysql Proxy,大家可以去Git看看。然后大家可以根据需要扯一些优化点,找不到也无所谓。
开放性的设计题如果是我这种没太多工作经验的人或者是应届生有时候还是觉得挺难的,见过了一些之后就死了心决定干脆不去费脑子了。只要不是特别奇怪的系统,那干脆施展一番演技之后就把经典的三层结构网上套,这个结构大家都比较熟悉,而且也简单清晰,面试有限的时间里也能够解释的比较清楚,里面的Nginx、Zookeeper、mysql、几张nosql因为挺基本我估计也不会细问。
邓侃老师在09年发了一系列博文讲了Twitter早期架构,http://blog.sina.com.cn/s/blog_46d0a3930100f0vr.html,当时Twitter使用就是一种基于Push典型的三层结构,大家有需要可以去看看。虽然文章历史久了点儿,里面的内容我觉得应付一般的面试还是够了。实在不行,就把文章里面的twitter换成面试题里面的系统往上背吧。。。
. 鍥磋鎴戜滑@1point 3 acres
技术面2.2:又是电面的时候的那位哥们。
Problem 1:设计一个上传下载服务。要求任务能并行,能查询任务状态,每个用户能够同时进行的任务有数量限制。
在厂里的时候做过一个很小的图片上传下载服务,于是想稍微改造一下网上搬。这道题答得不好,我就不丢人现眼贴答案了。各位看官如果有方案,还望回复赐教,多谢了。

哥们真的人挺好,答完问题剩了些时间,因为之前电面已经聊了不少,所以干脆就领着在办公区逛了一圈儿。. From 1point 3acres bbs

技术面2.3:一位三哥,来美帝这一趟遇到的第一位三哥面试官。但是人也是非常nice的,不像买买提上很多人口中形容的三哥。
Problem 1:设计电梯系统
本来心想自己运气好,遇到原题了。结果三哥这把不只想看OOD设计了,还让我把电梯调度算法code出来,于是抓瞎了。最后我想了一个办法是用两个array,一个工作array一个后备array,如果电梯向上而新请求来自上方楼层,或者电梯向下而新请求来自下方楼层,那就把新请求加入工作array,否则加入后备array。在适当时机,swap两个array,比如需要变化方向的时候。
感觉挺粗糙的,但是能达到需求。

然后HR来一起在餐厅吃了顿饭,然后就撤了。

总结:
不知道是不是因为有工作经验的缘故,算法题问的少而设计题问得多。但是感觉自己经验也是不够,在厂子里面的时候都混日子没有好好设计自己的东西,于是基本答设计题都在靠东拉西扯。一亩三分地里面大部分都是应届的同学在找资料,虽然问到设计题的时候少些,但是问到了也难免觉得比较难(当然大神们除外)。推荐大家可以去调研几个网站的基本架构,一来扩展知识面二来基本架构应付Entry Level的设计题肯定够了。.1point3acres缃

PS:在写面经的这个时间就接到了Google的电话通知我电面过了准备去Mountain View Onsite。不由得你不信,一亩三分地发面经,攒人品效果杠杠的!

评分

2

查看全部评分

TonyJang 发表于 2014-10-7 22:38:50 | 显示全部楼层
LZ是你自己decline还是亚麻扯的啊
回复 支持 反对

使用道具 举报

hellosniper 发表于 2014-10-7 23:37:09 | 显示全部楼层
祝楼主好运
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-4 23:38

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表