Amazon 面经

按国际惯例,发篇面经为以后攒人品。

周四晚(09/25)抵达西雅图,租车,入住Amazon订好的酒店,离公司大约10分钟路程。酒店应该算是来美国后住的最好的了,不禁感叹一下大公司的气魄。

周五一早起床,冒着细雨,开车前往Amazon Campus,8点左右抵达,离面试开始还有30分钟,和小米傻傻坐在门口,看着员工们牵着狗,刷卡,进进出出。

8点半,先下来一位Software Department的Manager,简单的相互自我介绍,上楼,进了一个小房间,而后面试正式开始。

第一轮面:面试官就是那位Manager,先让我介绍了一下过去做的项目,问了下遇到过的问题以及如何解决。然后开始Coding面,给出一个List,记录学生的id和成绩,每个学生有多于5个成绩,要求返回学生的id和平均成绩(平均成绩为学生最好的5次成绩的平均值)。写完之后,被指出一处错误,问了一下如何改正,之后继续问能否降低算法复杂度等等,整个过程那位Manager一直在电脑上敲字记录。最后给Code拍了照,让我提了几个感兴趣的问题,结束。

第二轮面:面试官是一个一眼看上去就是程序员的白人小伙,也是同样问了下过去遇到的技术难题以及如何解决,然后是Coding面。给出一个String,类似于(“Era String Data ”),要求将其中每一个单词反转(“arE gnirtS ataD”)。写完后问了下有哪些地方需要注意以及可能用到的test case,确认之后,拍照。但是此时时间还早,所以他索性又加了一题:一个数组里,每个数字出线两次,仅有一个除外,要求找出那一个数字。这题刚好在Crack the Coding Interview里面有,所以没有什么难度,写完,拍照,让我用最后几分钟提了一些问题。

第三轮面:终于出现印度哥了,还是developement manager。上来就是一道设计题,给出一个网站(类似于netflix),问需要构建哪些类,例如User类,Movie类,这个部分感觉答的不太好,没有达到他的预期。而后是算法题,将一个单词转化为另一个单词(HEAD -> TAIL),要求每次只能改变一个字母,返回其间所有有效的单词。一开始的时候,有点蒙,觉得就是简单的转化就行,后来经过一番讨论,发现还是要用BFS或DFS,code也只写了一部分。

第四轮面:这一轮是两个白人,其中一个是面试官,另一个算是来学习如何面试的。也是给了一道设计题,从零开始搭建一个网页,写一些类来概括会用到的filed,类似于text filed, keyboard field。然后问了如何利用已有的类来绘制网页,这个部分答得也不好,因为确实没有亲身设计过。面完之后,他们似乎也不太确定是应该直接送我出去,还是等recruiter,打了个电话,没人接,于是就直接送我下楼了。

整个面试4个小时,每轮一小时。整体感觉:Coding的部分不难,只需掌握基本的语法和数据结构;也并没有问操作系统、Linux或是编程语言的基础知识;设计题主要考验是否有实践经历,平时只靠看书是没法熟练掌握的,所以比较薄弱。

你可能感兴趣的:(Interview)