编码机

亚马逊面试指南2次实习1次全职的面试经

发布时间:2023/1/15 0:53:36   

全文共字,预计学习时长10分钟

图源:Google

我在亚马逊面试了3次软件工程师,2次是实习,1次是全职,实习和全职的offer我都拿到了。

对于向往在亚马逊工作的求职者们,有一些技巧值得注意。如果是面试数据科学职位,这些技巧应该能帮你解决面试中数据结构/算法的部分,同样你也得准备好应答SQL和数据科学的问题。

第1步:获得面试

个人认为这是最难的一步。亚马逊每年都会收到上千份求职申请,而最终得到面试机会的求职者屈指可数。但基于个人观察,相比五大科技巨头中的其他公司来说,亚马逊似乎会给更多人面试的机会,即使在疫情期间也是如此。

·线上申请。尝试在领英或者他们的求职页面中申请。虽然这是获得面试最低效的方法,但也确实有用(我就是这样获得面试的)。

·招聘会上申请。尝试参加网络招聘会,在他们人才招聘会或者校园招聘会上申请的话更有可能获得面试机会。

·还有个更好的方法便是引荐。在申请之前就得拿到引荐函,因为一旦你申请了,引荐函就没有用了。这种事就曾发生在我身上,我有个朋友就在亚马逊工作,本来我可以很容易拿到引荐信的。下图就是他引荐我时看到的。

·最后,给猎头发邮件/消息,尝试在领英上联系他们并推销自己。

第2步:在线评估(OA)

无论是实习岗位还是应届毕业生的全职岗位,都有3轮在线评估。其实都差不多,尤其是前两轮。

不管在某一轮的OA表现如何,都会得到3次所有的评估。比如,要是第一轮搞砸了,也会进入第二轮。3轮评估后,会根据你3轮的总体表现来确定是否进入真人面试。

首先你将收到一封亚马逊的确认电邮,上面会写“我们已经收到了您关于XYZ职位的申请,希望继续进行下一步面试流程”。

然后你就会收到第一轮OA。每一轮OA都有5天期限,下一轮OA将会在现有OA完成后的24小时内发送给你。因此整个在线评估至多需要花费15-18天的时间。每轮评估都可以申请延长期限,但我不建议这样做。

亚马逊的招聘是滚动式的,无论你表现得有多好,可能仅仅是因为他们的offer发完了,你就会被拒绝录用,而且变成待定。原因就在于他们是差额录用。我在申请全职岗位的时候就遇到了这种情况,在被待定2个月后才收到了offer。所以我的建议是,尽快把OA完成并安排好终轮评估。

第一轮OA——调试

我觉得这是最简单的OA。

·时长:20分钟

·题目:7个

·语言——Java,C++,C

每一道题,都会有一个问题和一个小的解决方案。解决方案里有小的bug(能编译,但无法达到预期效果)。这些bug都很小(比如说,在for循环中错误设置了一些变量),也很容易发现。不过,本轮的关键在于计时。

每道题限时2.5分钟,然后有几分钟的缓冲时间,这些时间完全足够解决所有问题了。而且这一轮也无需准备,既然入选了亚马逊的OA,就证明你有足够的能力来找到这些bug。

本轮技巧:

·别慌。要是本轮没表现好,那就是因为你慌了。

·如果在一个问题上耗时太长,就先跳过它,把它留在最后。

·与其直接在解决方案中找bug,不如先运行下代码,看看输出的结果。它会极大地提示你代码中哪里出错了。

第二轮OA——编码和工作风格评估

图源:unsplas

我认为这是最难的OA。它分为两部分。

第一部分是编码。

·时长:70分钟

·题目:2个

·允许使用的语言——Java,Python,C++,C,C#

两个题目中,一个比较简单,另一个难度中等或者困难。

技巧:

·亚马逊倾向在第二轮OA中出一些重复的问题,如果你事先做过公司调研,就会发现给你的问题大多都可以在网上找到。所以即便你苦心孤诣,磨练编码,不相信事前公司调研,我也强烈推荐力扣(Leetcode)题库中的亚马逊习题,在第二轮评估大约前一周刷一下这些题目,你很有可能会遇到原题。

·按照常规方法在力扣、Hackerrank或其他为面试准备的网站上刷题能够帮你攻克掉这一轮的难关。为了在编码面试中表现得更好,我个人之前是按照这个计划走的。

·给你的代码加上注释,尤其是在你没有通过所有测试用例的时候。亚马逊会有真人来阅读和检验你的代码,如果你有几个边界用例(edgecase)失败了,或者虽然得出了最接近最优解的方案,但却因为时间不够而没有通过少量的测试用例,不妨加上注释来告诉别人其实你是知道如何解题的,这样也许还能通过本轮评估。

·除了以上几点,让代码整洁可读也很重要,给变量取个好名也是能够加分的。

第二部分是工作风格评估。

不限时,超级简单,就像填调查问卷一样。做真实的自己就好,他们会试着更好地了解你,来看看你是否适合。确保自己事先阅读了亚马逊领导力准则,这样你才能知道他们在乎什么。

无论是实习还是全职,前两轮的难度等级和问题类型都是一样的。

第三轮OA——软件开发工程师工作模拟

他们在邮件中提到时长为90分钟。但是我开始的时候,他们给了我4个小时。这也许是个bug,但是本轮也不会耗费你超过一小时的时间。

本轮是工作场所模拟。你将收到你虚拟团队成员的电邮、视频和即时讯息的提示来解决各种问题。对于每一个场景,都会有一些如何回复的选项,会问你回复是否有效或者让你选择最好的行动方案。还会提供内部的维基、代码模板和路线图。

在这一轮OA中,实习和全职有一点小区别。如果是实习,在最后虚拟经理会给你发一段代码和一些日志,并要求你调试这些代码。全职评估中就没有这一步。只能用Java语言,所以如果Java不是你的主要语言的话,可能就有点不方便。虽说简单但是也有些陷阱,一不小心就会犯低级错误。

第三步:真人面试

图源:Google

三轮OA过后,无论你进入真人面试与否,都需要等待回信。我当时申请全职职位时在一周内收到了回信,申请实习的时候是在19天后收到的。回信时间无法确定,只能耐心等待。

实习

·一位亚马逊工程师会通过zoom视频会议进行45分钟的终轮面试

·会问你简历/过往经验的问题

·一些行为问题

·一个力扣风格的中等/困难难度的问题

全职(应届毕业生)

面试的数量取决于你在线上评估中的表现。

如果你的OA表现完美,第一轮OA得到满分,第二轮OA通过了所有测试用例,也顺利通过工作风格评估和第三轮OA,那就只剩下最后一轮面试了。他们会问你是如何处理解决第二轮OA中的问题的。这简直是在五大科技巨头中获得全职职位最简单的方式了。

不幸的是,我不属于这一类。所以我就没法具体阐释他们是否会问行为问题了(他们很可能会)。但我可以具体说明第二类情况,毕竟亲身经历了。

如果你在第一轮OA或第二轮OA中犯了一些小错(没有通过1-2个边界用例)或者工作风格评估不顺利,就会有3轮终面,每轮45分钟。

·每一轮都有行为相关和简历/过往经验的问题。

·至少有一轮是系统设计,一轮是数据结构、算法的问题。

·如果你很快解决了系统设计/算法的问题,时间允许的话会再给一个问题。理想状态下,应该都会如此,除非第一个问题特别难/细节。

·有一轮有“抬杠者”(barraiser),会比其他两轮更难。该轮比重更大,你这一轮的表现至关重要。抬杠面试官有一票否决权,不管其他面试官是否喜欢该面试者。

·除了在编码/系统设计上表现得要好以外,契合企业文化也很重要。事先过一遍亚马逊领导力准则,每一条准则都事先准备一个情景/场景。

·用STAR法则来规范你的行为答案。

S-情景:描述一个情景。

T-任务:描述在该情景下你的职责/任务清单。

A-行动:阐释每一个解决步骤。

R-结果:分享最终结果。

图源:Google

举个例子:说说压力很大的时候都发生了什么,你是如何度过的?

·情景:去年夏天我在Facebook实习的时候,提前3周完成了派给我的实习生项目(注意谦虚地自夸)。我当时是在隐私小组工作,既然还剩下很多时间,我就想着去做Instagram的任务,因为我对这个产品很着迷,是它的重度使用者。

·任务:当时有一个****的关于****的用户调查(因为隐私原因在此不能提),这个是Instagram和Facebook的内部调查,我决定接下这个任务。

·行动:我阐明了所做的技术细节,包括采取的步骤和联系人。我还会描述遇到的许多问题,因为毕竟这是我第一次涉及Instagram的代码。我也会进一步说明当时我的实习期快结束了,但是该项目还不一定能完成,这给我增加了许多压力。

·结果:我会描述如何成功在实习期结束前的几小时完成了这项任务。我还会谈到除了原本的指派项目,关于这项附加任务,小组还给了正面的反馈。并谈及我现在已经知道所有的错误后,还可以复盘清楚怎样做能够提早完成任务。

在完成终轮面试后,你会在7日内收到回复。如果表现不错,要么你会收到录用信,要么就会被待定,这取决于他们已经发出去了多少offer。一旦被待定,那就不一定能被录用了,这取决于是否有人收到但拒绝了这个offer。

祝你好运!

留言点赞

转载请注明:http://www.aideyishus.com/lkyy/2920.html

------分隔线----------------------------