📜  如何准备亚马逊软件开发工程师面试?

📅  最后修改于: 2021-10-19 08:30:24             🧑  作者: Mango

亚马逊…… “招聘和培养最优秀的人才”。四大科技公司之一,在为公司候选人敞开大门时非常关心他们的领导原则。根据 2018 年的 LinkedIn 文章,亚马逊是一家顶级公司。如果你是一个准备进入这家公司的人,你肯定知道数据结构和算法对于面试准备的重要性。

亚马逊面试准备

毫无疑问,这是申请亚马逊或任何其他大型科技公司的 SDE 或软件工程师职位的必备技能。这些公司的招聘程序有点相似,但我们将分享一些亚马逊破解面试的具体细节、技巧、准备策略和评估过程。请记住,这些回合的难度级别取决于您申请的 SDE 职位级别,您可以更喜欢任何您熟悉的编程语言。

要记住的要点:

  • 亚马逊给予更高的权重,并在整个面试过程中为领导原则制定了标准化脚本。它更加关注客户的痴迷。因此,如果您在那里申请,请仔细阅读他们的领导原则。
  • 对公司做一些背景调查。公司现在在做什么,或者他们目前正在研究的市场场景或技术是什么。这表明您对公司感兴趣,这是判断候选人对公司感兴趣程度的好方法。
  • 面试官受过训练,不会对你的答案做出反应,所以不要指望他们会给出是或否的答案,无论你是否朝着正确的方向前进。这很糟糕,但却是评估候选人的一种非常有效的方式,因此请做好准备,看看冷酷无情的面孔。
  • 亚马逊在现场面试期间进行 Bar Raiser轮,在这一轮中,他们确保您作为候选人提高某些能力的标准,这意味着您应该比目前处于该级别的50% 的人要好。
  • 与谷歌或 Facebook 相比,亚马逊的面试问题/难度级别不太一致。

现在是讨论亚马逊为招聘程序实施的策略和轮次的时候了。但在此之前,请记住一个适用于每家公司的快速提示……您的目标是编写适量的优质代码并进行良好的沟通。你的报酬不是编写代码,而是思考、找出问题并给出解决方案。要破解任何技术面试,您只需要一台笔记本电脑,一个有效的互联网连接,将定期解决问题,几个月内,您就可以学习基本知识。

亚马逊的面试程序有点类似于其他大型科技公司,所以让我们讨论一下……

发送申请:如果您没有任何推荐,从亚马逊获得面试电话并不容易。如果您与那里的员工有联系,您获得面试电话的机会就会更多。如果您没有,我们强烈建议您通过 LinkedIn 与招聘经理或招聘人员建立联系。此外,在申请工作时,请关注您的简历。简短、准确,因为没有一个招聘人员有超过 15 秒的时间来扫描简历。只写那些你觉得舒服的东西,不要伪造任何东西,因为面试官在面试中很容易发现。下面是简历指南的链接。
1. 简历制作——资源和技巧
2. 如何写一份精彩而独特的简历。

筛选面试:我们应该邀请这位候选人参加完整的循环吗?为了筛选出很多候选人,亚马逊进行了这一轮,这一轮为公司节省了大量的时间和资源。所以在现场面试之前会有1-2轮筛选。筛选轮可能是电话,或者您将被要求完成编码挑战,您需要编写干净、良好且无错误的代码,并且还应该对其进行优化。这一轮包括基本到中等级别的数据结构和算法问题,您将有一些在线文档来写下您的代码,并且您的面试官可以看到这些文档。它可以有 2-3 个编码问题。以下是在线编码挑战或电话面试时要记住的要点。

  • 电话面试的设计难度并不大,挑战是在现场面试时进行的。
  • 亚马逊 HR 在电话面试方面非常灵活,因此一般来说,您可以将电话面试推迟一周以做好准备。
  • 不要太在意电话面试的动态规划或 Leetcode 难题。
  • 更多地关注二叉树和二叉搜索树。学习如何以不同的顺序遍历二叉树,如何将 BFS 和 DFS 应用于二叉树。您应该知道如何从给定数组构造树。这些问题将帮助您为任何二叉树问题提供基本的基础。
  • 在 Leetcode 和 GeeksforGeeks 上检查数组和堆栈相关问题。另外,请看一下 Leetcode 和 GeeksforGeeks 上的链表相关问题。
  • 对于手机屏幕,大约 70% 专注于数据结构和算法,30% 专注于 LP(领导力原则)。
  • 他们的典型响应时间在 1 天到一周之间。一周之内,他们肯定会拿回结果。如果有人未能与您联系,请在一周后发送电子邮件。另外,请查看链接 Amazon Phone Interview 以获取更多想法。

现场面试:一旦你在上一轮中被选中,你将被邀请参加一个需要一整天的循环,包括大约四到五个单独的面试,每次面试大约需要一个小时。所有这些回合都将是技术回合,最后是 BR 回合(所有技术 + 一个管理)。确切的轮数取决于您在每一轮中的表现以及您申请的级别。现在,DSA 和 CS 基础知识的作用来检查您的编码和解决问题的技能。您需要为所有项目、实习、以前的经验以及编码和解决问题的能力做好准备。

我们将在以下部分对此进行分类……

  1. 技术编码回合(含项目):
    • 测试候选人是否可以使用数据结构和算法的知识解决现实世界的问题。期望能够为给定问题找到最优化的解决方案。您将算法知识与代码一起传达的能力是必须的。
    • 以下是亚马逊面试中普遍遇到的问题类型的分布。该数据基于 Glassdoor for Amazon 的面试经历。

      亚马逊数据结构图

    • 检查链接如何在基于产品的公司中找到工作?处理深入的技术编码问题,你在面试中应该遵循什么方法和技巧。
    • 检查亚马逊网站软件开发主题以浏览技术回合的所有主题。
    • 提出所有澄清问题,考虑 Brute Force 方法,优化解决方案,然后写下代码。这是我们建议您遵循的简单步骤来解决编码问题。
    • 您需要对过去或实习期间做过的项目感到满意。面试官会从那里抛出问题,因此请确保您对项目有完整的了解和详细信息,以便向面试官解释。
  2. 系统设计回合:
    • 系统设计问题是一个开放式对话,这一轮主要由经验丰富的候选人进行,他们测试您设计和扩展基于技术的系统的整体能力。
    • 检查链接系统设计面试问题,系统设计面试准备,并检查 GeeksforGeeks
    • 面试官通常对数据库、存储、日志等资源的选择感兴趣;功能的有效算法;如果系统出现任何问题,识别所有重要的数据和类;哪些功能会暴露给最终用户,哪些不会,以免搞砸整个系统?所涉及的系统和服务器的扩展;使用多线程、消息队列、缓存等。
    • 扎实掌握各种数据库技术,它们如何扩展,如何比较,框架知识和不同技术对系统设计有很大帮助。
    • 亚马逊有一种特殊的风格,即在系统设计回合中更多地使用基于网络的组件。
    • 在设计电子商务商店或 URL 缩短服务的 Glassdoor 数据集上经常出现。
  3. Bar Raiser Round:正如我们已经提到的关于 Amazon 的 Bar raiser 轮,在该轮中,根据亚马逊以客户为中心的创新原则,对候选人的技能和文化契合度进行评估。酒吧饲养员为此经过专门培训。以下是您在这一轮中需要牢记的要点……
    • “标准提高者”的动机是确保候选人不仅为特定团队而且为整个公司提高标准。查看链接 Hire Like Amazon 以获取更多帮助。
    • 亚马逊非常关心我们已经讨论过的领导力原则。你应该为每个原则都有故事。期待面试官深入探讨这些问题。
    • 这几乎是一个技术回合,但他们判断你的领导能力、你的决策能力、你的错误、你从错误中吸取的教训、你的工作以及你与团队成员的冲突、你在过去工作中的主动性、你的经理对你工作的反应。有时他们会给你一些情况,你必须在那种情况下回答你的行为。
    • 亚马逊也是一个您必须快速适应不断变化的目标的地方,您的回应必须证明您可以应对。

面试评估标准:面试结束后,所有面试官都会召开会议,与招聘经理和人力资源代表讨论、辩论和证明他们的个人评级。面试结束后,面试官给出整体总结。本次会议的结果将是候选人的最终倾斜或不倾斜决定。
软件工程师应该知道如何编码,知道何时寻求指导,能够阐明思考过程,解决问题的方法并及时交付结果,同时保持学习新流程和快速适应不断变化的路线图的意愿。通常只需要对编码的核心概念有入门级的基本了解,而更高级别的编码能力和基于经验解决复杂问题的能力非常重要。

提示:

  • 养成定期解决问题的习惯,特别是 GeeksforGeeks、LeetCode 和 HackerRank。
  • 接受提示。面试官总是乐于助人,如果你遇到困难,他们会给你准确有用的提示。尽可能快地捕捉到提示并继续解决方案是很重要的。如果您无法捕捉到提示,则这是一个很大的危险信号。
  • 永远不要说你做不到。即使有一个你以前没有解决过的问题,或者看起来你解决不了的问题,也要不断从不同的角度攻击问题,面试官会给你提示。但如果你说你不能解决问题,那就是一个很大的危险信号,你可能最终会被拒绝。
  • 面试官在面试的时候一般都会有一个心态,就是能不能在应聘者的日常工作中和应聘者一起工作。因此,请确保您在面试期间不要说一些可能会引起危险信号的内容。
  • 学会“大声思考” 。这很奇怪,但在面试环境中,最重要的部分是展示你是如何找到解决方案的,或者理解为什么你在 Y 之前做 X。
  • 您的面试官希望看到您代码中的 3 个关键内容。它应该运行得很快,不会占用过多的内存,并且稳定且易于维护。做到这一点,你就已经领先于大多数人了。
  • 对于行为问题,请阅读有关 STAR 方法的内容,以描述您解决与问题相关的问题的情况;解释为了解决问题你必须完成的任务;描述您为完成任务而采取的行动;并与您努力的结果接近。

重要链接:

  1. 亚马逊面试经历
  2. 破解任何编码面试的练习
  3. 破解技术面试
  4. Tushar Roy – 编码变得简单
  5. Glassdoor 亚马逊软件开发工程师面试题
  6. Ace 每次编程面试
  7. 编程面试大学
  8. 2019年亚马逊现场面试题