亚马逊面经(完结)



亚马逊面经(完结)
国内大厂的面试经验,网上有不少,今天分享一个斩获外企 offer 的经历。
希望对于想去外企的小伙伴,有所帮助~
—-以下是原文
本文记录了我从投亚马逊北京岗位到拿到 offer 的过程,将自己如何准备面试,以及关于
面试流程所了解到的问题,做一个总结,希望能帮助想去亚马逊的同学,因为面试过程中
也有很多人给了我帮助。
虽然最后我没有选择亚马逊,但亚马逊不论是面试体验还是 offer 吸引力,都是很棒的。
以后有机会,还是希望能去亚马逊工作的。之后会再写一篇介绍我拿到新加坡 Tik Tok
offer 的经验。
这次面试亚马逊,最终拿到 SDE2,也就是 L5 的 offer,薪资也很满意,不比国内大厂同
级别低。
拿到亚马逊 offer 的经历
我找了个亚马逊的员工帮我内推,他在美团干了九个月跑的,今年 4 月去的亚马逊。所以
想去外企早点动身,不用担心当前工作不够一年。
5.20 投的简历,5.24 收到 OA 笔试邮件。SDE2 OA 包含 1)coding, 90 分钟,两道题;
2)工作模拟, 15 分钟;3)工作风格调查。邮件还包含个人信息完善部分。
OA 在 7 天内完成都行。我是在 5.29 做的笔试题。后来了解这个笔试题是 HR 随机选的,
一般都是中等难度。但我遇到了一个 hard,LeetCode 2281 题,第一题过了,这个 hard
只过了一部分测试用例。担心 OA 都过不了,那几天还是有点失落的。同时,在网站上看
到
这样的信息,以为 OA 挂了。不过 6.14,过了半个月,通知我面试。惊喜。后来认识的亚
马逊 HR 帮我查了,说我 OA 结果还不错。后来又了解到很多人都没有全部 case 都过,也
拿到了面试邀请。不过从 OA 结束到面试邀请时间不一定,有的两三天,有的半个月。做
OA coding 时, 还是要注意代码风格,变量命名,不要写过多无用冗余的注释,代码要简
洁。
我六月初面试就基本结束了,所以把面试推到六月底开始,好有时间准备下,总共 4 轮,
我选的是连续 4 天每天一轮。这期间又把算法,系统设计好好准备了下。
亚马逊面试不问八股文。就项目,coding,系统设计。总的来说,亚马逊的面试可以说是
很专业,有水准,让人尊敬。
一面前半个小时问项目,后半个小时做题,加 follow up。二面是系统设计。前半个小时
问项目,很有水平,问道了核心难点,别的公司面试的时候问道都比较浅。后半个小时系
统设计,亚马逊的系统设计用的画图网站很难用,可以用自己的本地或者在线画图网站,
屏幕共享即可。三面是 BQ 考察。前半个小时 BQ 问题。后半个小时做一个题。两次
coding 都是中等难度。四面也是先聊半个小时项目。后半个小时做了一个简单的系统设
计。建议换个不同的项目聊,可以更全方面的展示自己能力。
面试官都会做记录,四轮面试结束后,他们要一起讨论是否给候选人过。
亚马逊面试流程前面会很慢,尤其是投简历后到 OA,OA 后到面试邀请。面试后就很快
了,一般两三天 HR 会联系你,告诉你面试结果。然后收集薪资,问你期望薪资。亚马逊
Offer 薪资是不可以 compete 的,申请下来是多少就定了。
哈哈,面试完拿到 offer 后,我还去卧佛寺了一趟,去还愿,不过周一去的,没有开门。
前面记录了面试流程,下面准备从以下 5 个方面做个总结:
• 算法刷题
• 简历
• 系统设计
• 面试技巧
• offer 沟通
算法刷题
我是今年四月底开始准备换工作,准备到五月中旬开始投简历。作为程序员,面试必须是
要做题的,我从今年年初断断续续开始刷题,之前总共 LeetCode 刷了有 300 道,今年面
试前又进行总结复习,总共刷了 470 道,算是刷的数量少的。不过够用了。刷够 300 多
道,多总结,保持熟练度,大厂面试基本都没问题了。况且,我从去年换工作,大小厂面
试也有二三十家了,基本没遇到过 hard,细心,保持镇定,基本都能做出来。
做题量来说,300 可以出去面试了,500 多比较稳,不慌。我认识很多去面外企的都刷了
六七百道了。平时刷题,超过 10 分钟还没有思路直接看 LeetCode 上面的优质答案,刷的
题少不会做题很正常,关键是自己一定弄明白,然后自己写写出来。自己写出来是重点。
而且经典问题要用自己的话总结一遍。比如二分查找,一般二分查找怎么写, 改变一
下,如果问题是在有重复的数组中找到最后一个 target,或者找到第一个 target,那判断
条件怎么写?一定要参考优质答案,然后自己总结并实践。
还有一点是,要细心,一定要处理好边界条件。初级阶段是,很多题指导思路,但对于细
节把握不牢,因为没有仔细去思考细节这样写的原因。虽然大部分面试不用上级运行出
来,但我遇到的大部分面试管还是能注意到关键细节问题的。比如,快速排序,原理很简
单,但不好好准备,没几个人能写出来无 bug 的代码。刷的题多了,思路基本都有了,就
需要在做题的时候,把细节问题想清楚了再写。负责很难让面试官满意。
常见算法题有:数组、字符串、链表。LRU 被问过 4 次,后来可以 bugfree 直接写出来
了。图,最小生成树,prim,Kruskal,Dijkstra,朋友圈算法等, 二叉树,DP,我都有
好好准备,但是面试都没有遇到过。所以准备算法题的时候,可以先把 HotTop100 刷的
明明白白,然后再逐步将不常见的算法类型也攻克。labaladong 和 宫水三叶的题解都不
错。算法题是不能有失误的,这也是最基本的。而且一般面试都不会出 hard,基本都是
mid。
简历
之前帮公司招人收集简历的时候,基本都是社招简历,真是见识了各种风格的简历。不是
hr,有些简历我也是一眼就像 Pass 掉的,主要项目不清晰,简历写的很乱,花样很多,
这一看就不专业。
程序员的简历,要干净,重点突出,才显得专业。一般都不放照片,民族,籍贯这些也都
是多余信息,电话,邮箱即可。教育背景,专业技能,工作经历,个人评价这四部分即
可。
重点在工作经历里面,社招的不局限与简历是一页还是两页,把重点项目按照 STAR 原则
写就好。我写简历前,会按照 STAR 原则,将项目好好梳理一下,尤其是我做了什么,难
点是什么,以及成就。最后还要加一点反思,之前方案有什么问题,这个很多公司都要问
的。项目整理好了后,再往简历上写。之后面试的时候,介绍时,也比较有条理。
我的简历问过一些猎头,以及大厂公司的 HR,说算是还不错的。当然,我也见过更漂亮
的简历,用的是 LaTeX 写的,很简洁。
外企一般要准备英文简历,不过我投的是北京的亚马逊,只有中文简历也可以。
系统设计
社招三年以上都要考系统设计的。我买了 grokking the system design interview z 这个门
课程,挺不错的。国内价格 599,开 VPN 后,海外价格会不同,香港最便宜,好像是三
四百。
上面这门课程将基本的系统设计要考虑到的点,常见系统设计的核心问题思路都有很好的
讲解,且全都是英文的,不过并不难,也能锻炼阅读英语的能力。
看过三四个章节后,建议 YouTube 上面搜一下 System design 视频,面试时候的表达,条
理也很重要。之前我面试没有条理,只将核心问题给了解决办法,看过是视频后,会更有
条理。
面试技巧
后端开发程序员面试外企,硬实力部分主要是算法、系统设计,有的还要求英语。不过硬
实力有了,不一定发挥好,或者说错话,导致被 Pass。有个朋友面试亚马逊,面试官文
离职原因,说领导不行,这个不能这么说啊。可能就是一时嘴快说漏嘴了。这个问题也很
常见,面外企就说希望 WLB 被,向多陪陪家人,想多点自己学习时间。面试国内大厂,
就说想换个环境,想要更多挑战。如果不是面试官不想要你,就不会再继续为难你。
在做算法时,一定要提前和面试管沟通好问题,以及边界 case。我一般是在快速思考
后,然后面试官提问,不明白的,以及特殊 case 怎么处理提前问清楚。然后就是快速把
代码写出来。写完代码后,不要着急说写完了,一定要在检查一遍,一般都会有小的问
题。不要被面试官发现了再指出来。
面系统设计时,提前明确需求更重要。面试官很看重沟通能力。提前把问题,以及可能面
试官都没想到的关键点提出来,会增加好感。后来亚马逊 hr 和我说过,面试官评价里面
有个沟通很好,提前明确了需求。如果遇到没做过的设计题,也不能慌,总得给个答案不
是,总不能说不会吧。先把问题简化,模型简化,再一步步去解决。面试 Tik Tok 让我设
计一个打车系统,这个真没遇到过。司机和乘客都在地理位置上不断移动,这怎么搞。想
了几分钟后,我按最原始的思路,将地图分隔成很多小块,然后打车是,找乘客所在小块
周围 8 个小块的司机,进行通知,匹配打车。
还有一点就是及时观察面试官态度,自我介绍是不是说的太细太多了,方案是不是面试官
不太喜欢,及时调整。BQ 行为考察的问题,在基于自己实际情况下,慢一点回答,多想
想,朝着有利,真诚真实的方向说。
offer 沟通
如果幸运走到这一步,谈薪真的是很重要了。
对于 dream company,我一般先找几个小公司练手,然后找几家开工资比较高的好好
面,拿到较高的工资,最后去面试想去的公司,走到最后谈薪时,会问你当前薪资,以及
手里 offer 的薪资。这两个都会参考的。要把握好面试进度。
问我期望薪资是多少时,我一般说 30%左右,不过不绝对,根据我的面试表现和公司薪
酬体系来。
想拿到好的薪资,主要还是两点,面试表现好,当前薪资较高,另外有其他 offer 也是一
个因素。最重要的是,缺不缺人,缺人面试好薪资就开的好。
今年大厂小厂都在裁员,面试环境很严峻,我前后投了八九家,小公司练手的基本都给我
挂了,最后拿到 offer 的只有亚马逊,和新加坡 TikTok。还有一个走完流程不发 offer
的,两家主动终止面试。去年投的国内大厂,除了腾讯没有拿 offer 也都拿到了,有个搜
狗 offer,后来被合并入腾讯。面试挂了不要否定自己。要好好刷题,好好准备基础知
识,面试常问的知识点要用自己的话总结下来;不要广撒网,这样很浪费时间,要好好准
备然后拿两三个练手后直接去面大公司。
好好准备,你也可以拿到外企的 offer。。