Amazon面经总结(上篇)



  • 不说废话,小菜鸟直接上面经:

    面经1:

    • 全程behavior

      1. Why amazon?
      2. Do you get feedbacks from your friends or teammate? What is it? Positive or negative? What is the negative feedback you encountered? What did you learn from it? How did you feel when heard negative feedback?
      3. 举个例子你用客户的feedback来改进你project的例子。
      4. How would you decide which methods to use for a project when you doing a project?
      1. Describe a project that you think is most interesting or you feel very proud of? What did you learn from it?
    • 全程behavior(some is more technical questions)

      1. Is there a time that you need to communicate with customers for a projects?
      2. Is there a project you need to consider the different level, for example ?
      3. Is there a project you need to consider the storage for your database? How would you determine how much storage should be used in your project?
      4. Then what about the server side? What if the one server is not works well?How would you deal with that? 这些貌似问的是scalability和availability的东西。。我只能说没有experience。。
        5) Describe a situation that you have done a lot on the project, but you find your method for the problem is not good, how would you deal with that ?
    • lunch with manager: Just talking

    • 烙印
      Behavoir:
      1) How can you deal with the situation when your solution for a project is not what the customer wanted?
      2) What if the products or services you developed for your custom having problems, how can you deal with that?
      3) You said you have the exprience of team leader, how did you make your team work efficiently and fruitfully?
      Technical question:
      You have two files that contains the information of Server name, the processing time of the server and the status which is either success or fail.

    1. calculate the average processing time for the each server? (Just for server with success status)
    2. calculate the success/fail ratio for all the server?
      Input:
      0_1482292058315_Case.PNG
    • 美国小哥 with a shadow
      Behavoir:
      1) describe a time that you have a tight deadline, and how can you tackle the situation?
      2) describe a time that you cannot finish the requirements you are doing before the deadline, how can you tackle this situation?
      Technical question:
      You have a file that contain the IP address, you need to find the top 10 most frequet IP address in the file?
      I assuming the every line in the file is a IP address.
      How would you test your code? (Discussed several corner cases and the output and what if the file is too big, that cannot hold in the memory.(自己挖的坑,然后问了下如何解决。) )
    • 中国小哥manager
      Behavoir:
      1) Is there a time that you work with a team, and you make an impact on the result of the project.
      2) Do you have done any extra thing for your team, or Do you have the experience that you help with other team members on the work?
      3) Is there any time in your experience that your project is not works well and you help to fix with that?

    Technical question:
    Binary tree clockwise traversal

    面经2:

    • 自我介绍,简历里有哪些项目和机器学习相关,哪里相关了。

    • 算法题。不好意思时间太长了我记不得了,不过不难就是了。

    • OOD。设计一个SQL parser(不是compiler,这里强调如何解析SQL语句中的变量,比如table name,和关键字, 比如select 语句),关键在于怎么用好interface。-google 1point3acres
      然后第二周就收到通知,说是电面过了,但由于我的机器学习背景不大好,HR被建议换了一个组。同时,我之前自己投的简历也收到了回音,一个payment组的老板亲自联系安排面试。不过似乎他的组优先级不高,必须是AWS的面完了且我挂了才能轮到他。

    • Onsite是安排到了上周四。在西雅图住一晚,第二天面试。有意思的是面试当天晚上下了雪,据说在西雅图很少见哦。不过HR犯了大错,居然把我面试所在的楼搞错了(复制粘贴时也不好好检查下。。。)。结果第一轮迟到了二十多分钟。。。。还好互相谅解也总算勉强完成那一轮面试。现在是面试(总共五轮)具体细节:

      Round 1
      在英国的白人面试,第一次体验了onsite phone interview。半途有个老印跑来还以为我是电面的面试官,囧。问了两题。第一题是找出数组中唯一出现奇数次的数字,保证只有一个,hashset解决。第二题是reverse linkedlist,leetcode原题。
      https://leetcode.com/articles/reverse-linked-list/ (小菜鸟给大家贴上链接)

      Round 2
      两个面试官。一个拉美人,一个白哥哥。拉美人是别的组manager,问了一些behavioral question,具体是啥不太记得,但和做过的项目有关。白哥哥问算法,说是kindle界面是黑白的,黑色区域是一个shape,然后输入一个界面且可修改,返回shape的个数。这里我用了二维数组作为输入,0是空白,1是用pixel。然后dfs即可。

      Round 3
      老印。问了我项目最有难度的部分。我的那个是还没解决的,至今靠手动。那是一个job dependency问题,job里面有的SQL语句要读或写其他job创建的table,因此其他job要是retire了,就有可能影响到这个job。最后我是当成一个人system design来做。设计了table,使用了memcache,然后解释了软件部分的算法(其实就是保证了dependency pair找到且无误以后,建个图然后dfs出给定job retire后受影响的job的list)。

      Round 4:
      老板来面,是个有口音的白人,看名字像东欧人(甚至可能是俄罗斯人,因为有kov。。。)。全是问behavioral question。工作上遇到不好相处的人怎么办?做的项目出现了什么大问题,怎么处理的?如何与同事间建立trust?记得好好复习leadership principle,回答时要融入这些。

      Round 5 :
      老印。设计一个big integer类。实现其中的add和multiply。先是讨论了要使用的数据结构(数组和链表)并对比优缺点,然后用数组实现(非高效压缩那种的,一个数组元素是大数里的一位数)。multiply只要写伪代码,出了错,不过他不介意。

    面经3:
    抽到个MST。三大水题: 窗口和, 长方形交和高五平均分。。都被我碰到了。
    知道我有多郁闷了吧。估计offer, video通通无望了。。。只能祈求大家的bless让我拿到offer或video。我跟大家分享一下心得吧~

    之前,说一下coding注意事项。

    • 长方形交: 需要检查两个点的正确性。就是不一定给的是真正的左上和右下,有可能给4个点中的任意4个。

    • 高五:可用优先队列。单科成绩是整形。返回是double型

    再说WS。这部分真的很纠结。。光看面经的话很难正确准备里面的题目,因为面经给的都是只言片语,并不能反映出题目中的上下文。

    1. 估计项目时间:(上下文是这个任务要5天内搞定)
      选项:
      a: 找manager;
      b: 找有类似项目经验的coworker;
      c: 上网查,看文档,自己估;
      d : 瞎猜;
      e: 先做几天看
      我的答案:a, b 5分(b 4分也可以),
      c; 2分,d,e: 1分

    2. metric xxx report xx 移植到java。(上下文是:最开始的会议时,manager特地说了,你是java expert).
      选项:忘记的差不多了。貌似有个选项可以让有项目经验的人帮助你一起做。
      分析:这道题你让manager换人肯定是不行的啊,视频最开始就说了整个组里就你对Java最熟悉。你推给其他人谁能做?所以最有效的应该是找有产品经验的跟你一起做。

      3.安排3个老大会议讨论一个项目。(上下文: ravi说面对面的最有效,项目进度是2周内ddl)
      A大佬在欧洲,无法访问一些网站,2周后才回来。B大佬很忙,在挨着西雅图的一个office,很难抽空过来。
      选项:
      a. 让A找backup替他
      b. 让A和B都找backup,
      c. video, d. email. e. 开车去B的office
      分析:显然video是最好的,a选项没有提B的事,1分,b选项我给的2,因为项目紧,backup不能做决定需要花费很多时间在沟通上。d.2分。沟通效率低。e.没提A的事,1分。

    • 视频题:电子书API
      胖子和瘦子argue是自己做新的还是用现有的。
      第一题选:tell more
      胖子说做新的,但提到了一个内部用的API。瘦子说用现有数字版的就OK,省时间。
      第二题:让胖子介绍更多这个API的情况。(我没有选支持胖子,因为他说的那个内部实体API和数据组的关系啥的没说清楚。)
      最后胖子详细说了一下这个API,貌似是数据组开放的只供内部使用。不支持大数据,需要work alot on that。瘦子坚持用已经有的只支持digital 的。
      第三问:支持胖子。

      让你搞一个数据库的项目,2周ddl。你一个人干不完,找别人帮忙。花姑娘很懂这块,但是要下周才能帮你做; 胖子说没有花姑娘懂,但是可以帮你,而且相信你们两个一起能按时完成.
      选项: a. 一个人做,等花姑娘帮忙,b.和胖子先搞,等花姑娘加入, c. 推迟ddl,d. 找manager?? 不记得了。
      分析: 找胖子合伙在等花姑娘 5分,一个人做等花姑娘,3分,其他1分。这种事,你找manager干嘛????

    • 视频题:开组会,国人发现两个问题,一个是德文,一个是invalid recomendation。他说自己做了测试,看了log,没发现问题,怀疑是用户问题。
      第一问:manager问你应该怎么做。
      a. 把test log 给你。
      b.找个人在帮忙分析一下.
      c. 不记得了。。
      回答:选B,特别提示。不要直接看log。 因为选完之后,国人会说她确实找了烙印帮忙看。接着烙印开始说同样认为是user error。manager让你帮忙,你跟烙印单独谈

      第二问:选你接下来怎么做 (上下文:烙印说跑测试需要很久的时间,而且要在非高峰期的时段才可以跑。)
      选项:
      a. 烙印废物
      b. 让烙印把旧log 给你,同时要求他去跑新的
      c. 让烙印把旧的给你,等需要他重跑的时候在要求他跑。
      d. 相信他。.
      分析:b和c里面选,我选b。因为上下文告诉你跑一次测试需要很久,所以等旧日志看不出结果再去跑非常耗时。

      第三问,看log, 代理服务器的问题和用户名被shorten了的问题。

      第四问,老板表示对你的感谢。然后让你建议如何减少bug的出现。
      打分:
      a. 检入代码前增加manual test
      b. 增加测试数据。
      c. 增加开发工程中的unit test.
      d. 增加QA团队规模。
      e. 在产品beta 阶段增加client test。
      f. 在整个开发周期中增加测试周期。
      a, b, c 5分(这些都是当下能做的事情,不受制于其他因素,而且立竿见影,); d, f 2 分(决定权不在自己手里);e. 2或1分

    • 新feature优先级取舍问题:
      分析:原则是尽量多cover high priority task, 尽量多cover higher priority tasks。
      ABD, ADF 5分(都是1H2M, 8周内可完成。), ACF, 4分(1H1M1L) FG, 3分(1H1M), ACDG, ACDGH 1分。(没有High的都滚粗)
    • 瘦子代码题:
      下班前有人找你说发现了点问题,其他人不在让你帮忙。给你几个问题,问你哪些重要。
      a. 如何影响客户的
      b. 影响多少客户
      c. 有多少客户抱怨了
      d. 多少项目依赖于这个问题的修复。
      e. 我帮你之后你帮我做。
      分析: 按照客户至上原则, a, b,c 都是5分。d。3分,其他一分

    最后总结: 不是有manager出现的选项一定选manager!我记得有一个问题就是manager给你发邮件让你回答,里面也有选manager。这个时候你选manager作死么??

    大家可以加入我建立的CS找工作群哦,之后会在群里分享工作信息、面经信息以及交流刷题心得,大家相互鼓励,也欢迎找到工作的朋友一起分享信息哦!
    之后会继续搬运面经给大家哒~

    0_1482294329969_QR.jpg


登录后回复
 

与 BitTiger Community 的连接断开,我们正在尝试重连,请耐心等待