📜  亚马逊面试经历 |第 153 组(用于 SDE1)(1)

📅  最后修改于: 2023-12-03 14:49:05.563000             🧑  作者: Mango

亚马逊面试经历 | 第 153 组(用于 SDE1)

本篇介绍亚马逊面试经历第153组,主要是针对职位SDE1。以下将会涉及到整个面试过程,包括笔试、电话面试、视频面试、协作编程等环节。

笔试

首先,收到一封邮件让我参加笔试。这是一份在线编程测试,共有20道选择题和2道编程题。选择题主要是数据结构和算法,难度适中。其中编程题分别为:

  1. 给定一个大小为N的数组A,找出一个数P,使得在A中小于等于P的数的个数等于大于P的数的个数。
  2. 给定一个文本串t和一个模式串p,请你计算p在t中出现的次数。

笔试的测试时长为1.5小时。笔试须得到亚马逊公司的初步认可,才有资格参加电话面试。

电话面试

约好日期后,接下来是电话面试。这轮面试从晚上8点开始,由一位面试官负责。我先简单介绍了我自己和我的项目。然后面试官介绍他们正在做的项目和一些讨论点,然后开始问技术面试问题。

这是一些问题:

  1. 一个字符串s,其中字符全部为小写字母,问如何找到其中的最长回文子串?
  2. 模拟一个电子邮件系统,需要实现哪些模块,应该如何设计这些模块?

我在电话面试时,完整地描述了我的解决方案,并且写下了我想要在代码中实现的内容。

最后,面试官提供了一个机会让我提出问题,我问了他他自己在公司工作的经历和亚马逊公司的发展方向。电话面试结束后,我被告知将会被通知下一步的面试结果。

视频面试

接下来是视频面试,整个过程持续了5小时。视频面试共分成了5轮,每轮都由一名不同的面试官进行。与电话面试不同的是,视频面试的每轮都强调了互动和协作,因此实际上有4部分: 面试、协作编程、设计、各种问题。

我在这5轮中掌握了一些新的、有趣的问题,包括“如何在一个排序数组中查找一个数字的出现次数”、“如何设计一个用于跟踪预算和报告预算结果的系统”等等。

协作编程

在一轮面试中,我必须与面试官一起完成一项编程任务。我们共同开发了一个在Amazon ECS上运行的web应用程序。我们使用了Go语言和Docker。

这个任务需要我们通过AWS CLI创建和管理ECS和任务定义,并且我们在代码编写深处使用了多线程。最终我们成功了完成了。

总结

整个面试过程非常紧张,但同时也非常有趣和挑战性。我学习到了很多新的技术和面对面试官的方法。

对于准备进入亚马逊公司的面试者,我建议你要关注LeetCode,了解数据结构、算法和系统架构。此外,在面试之前,要仔细阅读亚马逊的文化价值观。在每轮面试中要表现出来并且强调自己的实践方式,这将使你更加印象深刻。

最后,祝愿每一位即将进入亚马逊公司的程序员都能顺利通过面试,顺利加入公司。