📅  最后修改于: 2023-12-03 15:21:43.539000             🧑  作者: Mango
亚马逊是一家全球性的电商巨头,也是全球最大的云计算服务商之一。在互联网行业,亚马逊一直被视为技术领先、管理精细、高效的企业之一,因此成为程序员们非常向往的公司之一。本次介绍的是一位 SDE 2 程序员在亚马逊的面试经历。
面试前大概一周左右,收到了一封面试邀请邮件,随后安排了一次电话面试。电话面试主要考察基础知识和项目经验,包括以下内容:
讲解一下你最近负责的项目是怎么样的,你在其中扮演的角色是什么?
设计一个算法,找出一组数中的最大公约数?
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
什么是缓存?如何优化缓存?如果一个缓存空间可以存储 1 万条数据,但是现在需要存储 10 万条数据,该怎么办?
你对加密和解密算法有什么了解?比如 AES 算法。
电话面试通过后,约定了第一轮技术面试,是视频面试。面试官在问了一些基础的问题之后,开始深入考察代码实现能力。
什么是桶排序?什么情况下使用桶排序?
设计一个算法,找出一组数中的中位数?
def findMedian(nums):
nums.sort()
n = len(nums)
if n % 2 == 0:
return (nums[n//2-1] + nums[n//2]) / 2
else:
return nums[n//2]
请用 Python 实现一个 Trie 树?
class Trie:
def __init__(self):
self.root = {}
self.end_of_word = "#"
def insert(self, word: str) -> None:
node = self.root
for char in word:
node = node.setdefault(char, {})
node[self.end_of_word] = self.end_of_word
def search(self, word: str) -> bool:
node = self.root
for char in word:
if char not in node:
return False
node = node[char]
return self.end_of_word in node
通过一面技术面试后,安排了第二轮面试,是负责人面试。整个面试过程都非常顺畅,氛围轻松愉快。主要考察了解系统设计和项目管理经验。
讲解一下你设计的系统,它的架构是怎么样的,为什么会选择这个架构?
你在项目中扮演的角色是什么,你的工作职责和成果是怎样的?你和团队的合作方式和效果如何?
如果你要负责一个新的项目,你会怎么做?
除了编码和技术,你对亚马逊文化和价值观有什么了解?
在二面负责人面试通过后,安排了最后一轮 HR 面试。主要考察沟通能力、合作能力、职业规划等问题。
你为什么想来亚马逊工作,你希望在亚马逊获得什么?
你如何平衡工作和生活?在工作中遇到过哪些挑战?你是如何解决的?
你在团队中有过哪些领导作用,你是如何协助团队完成工作的?
在你的职业规划中,你希望在哪些方面有所突破和提升?
亚马逊的面试流程非常规范,而且每一轮面试都会有不同的考察内容,尤其是在项目经验方面更注重应聘者的实际工作经验和能力。在面试过程中要注意回答问题的精准度和标准化。通过多轮面试后,最终被录取的应聘者可以得到很好的薪资待遇、丰富的项目经验和培训机会,以及来自亚马逊的优秀文化和价值观教育。