📜  SDE-1 2021 的亚马逊面试体验

📅  最后修改于: 2021-11-23 07:44:22             🧑  作者: Mango

我是一级大学(2020 年批次)的 B.Tech CSE 毕业生,拥有 1 个 YOE。我最近在亚马逊接受了 SDE-1 职位的面试。招聘流程一共进行了5轮,具体如下:

第 1 轮(在线评估):我必须在 90 分钟内解决两个问题,同时写下我的方法和解决方案的时间复杂度。问题是:

  1. 这是https://www.geeksforgeeks.org/given-sorted-array-number-x-find-pair-array-whose-sum-closest-x/的变体我能够在几分钟内解决它,并花适当的时间来解释我的方法。 (所有测试用例都通过了)。
  2. 这是https://www.geeksforgeeks.org/given-two-sorted-arrays-number-x-find-pair-whose-sum-closest-x的变体尽管基本概念很简单,但需要做一些工作才能将输入转换为所需的格式(例如,使用自定义排序)。我也能在 30 分钟内解决这个问题。但是只有 70% 的测试用例通过了,而且我无法修复代码中的错误。我花了一些时间来正确解释我的方法,尽管我知道这是正确的。

在线评估还包括一个单独的行为客观问题。

Round 2(Technical Round 1):虽然我在2天后就收到了关于我通过在线评估的通知,但我的面试并没有安排在大约40-45天。之所以发生这种情况,是因为招聘人员以某种方式错过了我的名字。所以,如果你没有接到面试邀请,请联系招聘人员,让他知道同样的情况。

这一轮的持续时间为 60 分钟。前 5 分钟是介绍,然后我们直接跳到问题上。在这一轮中,我被问到了两个 DSA 问题:-

  1. https://www.geeksforgeeks.org/find-the-element-that-appears-once-in-a-sorted-array/ 我一开始给出了一个 O(n) 的解决方案,并很好地解释了自己。然后面试官让我进一步优化,我说因为我没有考虑到数组是有序的,如果我们能找出必要的条件来丢弃一半的搜索空间,我们可以使用二分搜索来优化它。面试官给了我一个提示,我想通了。我被要求为此编写适当的代码。
  2. https://www.geeksforgeeks.org/remove-duplicates-from-a-sorted-linked-list/。这也是一个直截了当的问题。直接要求我写代码。我们进行了一次试运行并纠正了一个错误。之后,我们尝试了不同的边缘情况,都通过了。

最后面试官还问了我->什么是多线程?,给我举个例子,用在什么地方,多线程b/w共享的资源是什么。

面试官人很好,整个面试感觉更像是在讨论。

第三轮(技术第二轮):这一轮与第一轮几乎完全相同。五分钟的介绍之后是两个 DSA 问题:-

  1. https://www.geeksforgeeks.org/trapping-rain-water/。面试官提出了这个问题的变体。虽然我以前做过这个问题(谁没有做过?),但我花了很长时间才明白他在问这个问题,因为他对这个问题非常含糊。他实际上甚至没有给我一个问题,他只是给了我输入和输出,输入又是模糊的,所以我不得不问很多问题才能弄清楚问题。最后,他和我分享了一幅图画,我在 5 分钟内给了他答案(也为此编码)。我给了他一个 O(n) 空间复杂度的答案,因为我们在这上面花了太多时间,我只是告诉他优化的方法但没有编码。
  2. https://www.geeksforgeeks.org/bottom-view-binary-tree/。我只有 10 分钟的时间来解释这个问题 + 编写干净的代码 + 澄清面试官的疑惑。我向他解释了方法,我将使用的数据结构(使用了一个 Hashmap,键作为水平距离,值作为一对垂直距离 + 节点值)。面试官说为什么要跟踪垂直距离,前序遍历中的节点不会是按照深度递增的顺序来的。我跟他解释说,在密密麻麻的树上,或者左右孩子伸出太远的树上,情况就不是这样了。我为此编写了代码,当时他正在与他的经理通话。他没有再问任何问题(但他看起来很困惑,我不太确定他是否清楚地理解了我的方法)。

最后,我问了他一两个关于他在亚马逊的经历的问题,他告诉了我很多事情,面试结束后我们聊了半个小时。他是一个很酷的人。

注意 –直到这个阶段的面试官都没有超过两年的经验(在行业中)。

第 4 轮(招聘经理第 1 轮):面试官是一名软件工程经理,拥有近 20 年的经验。这一轮是关于我过去的经验和项目。这一轮的持续时间也是60分钟。我们从自我介绍开始,然后跳到我在当前角色中的角色和职责。在我们讨论我的项目时,他在中间问了我很多行为/LP 问题,以下是我记得的几个问题:-

  • 告诉我一个存在高风险生产问题并且您加紧解决的实例。
  • 告诉我一个例子,当你处理一个代码密集型任务时,你提供了宝贵的意见来改进它。
  • 还有几个问题是相同的,但我不记得了。
  • 最后,他问了我一个设计问题,就是想出我用来创建这样的游戏的数据结构——https://www.transum.org/software/River_Crossing/
  • 我提出了我将为我们的字符创建的类,以及我将如何为每个角色(不能在一起的字符)存储拒绝名单。他对我的方法不太满意,但无论如何我们都没有深入研究这个问题,因为我们已经加班了。

最后,在离开之前,他问我为什么要换工作。

第 5 轮(招聘经理第 2 轮):面试官是一名软件工程经理,拥有近 13 年的经验(都在亚马逊)。面试官问我是否有技术轮次,我说是,然后他说他不会专注于所涵盖的任何内容。这一轮是关于他试图对我进行LP分析。他问了我 5-7 个情境/行为/LP 问题。其中一些是:-

  1. 告诉我你超额交付的时间。
  2. 告诉我你在没有团队的情况下不同意并产生影响的时间。
  3. 告诉我你在完成一项任务时遇到的困难以及你从这次经历中学到了什么。
  4. 告诉我一个例子,你必须在最佳实践上妥协才能在时间紧迫的情况下交付一些东西。
  5. 告诉我你为客户做过好事的经历。
  6. 告诉我一次您向客户征求反馈意见的经历,以及您是如何将其纳入其中的。
  7. 告诉我客户不同意的情况,您必须了解他们的观点并努力寻找解决方案。

我很难解释有客户互动的场景,因为我的工作并不直接涉及我与客户交谈/影响客户。

最后,我问了他亚马逊的文化,以及他对新添加的领导原则之一(没有反向 xD)的看法。

想法:

  • 最近,亚马逊的面试与他们告诉你的情况不一致。
  • 有经验的人,在他们所处的位置,在所有轮次中被问到至少 2 个 DSA 问题,在每轮中被问到几分钟的行为/LP 问题。然后是我只有两轮技术回合(根据他们告诉您的情况,这是正确的,因为根据格式,只有前两轮是技术回合)。
  • 此外,即使对于 SDE-1,没有人希望您回答系统设计问题,但在一轮或另一轮中,您可以期待一/两个低级设计问题,其中他们更关心您的数据结构决定使用。
  • 亚马逊对识别一个人的行为以及他们是否适合亚马逊的文化的重视是巨大的,并且与日俱增。虽然你可能是一个非常擅长解决问题的人,但在他们眼中可能不适合文化,反之亦然。你需要在两个部门都做得很好。

结果:-

等待结果。