鱼皮最新原创项目教程,欢迎学习
大家好,我是鱼皮。
在知乎上冲浪时看到一篇不错的外企求职经验,分享给大家,如果你也有相关打算的话,希望能对你有帮助。
以下内容中的“我”指这位求职者。
原文链接:https://zhuanlan.zhihu.com/p/546079576
本文记录了我从投亚马逊北京岗位到拿到 offer 的过程,将自己如何准备面试,以及关于面试流程所了解到的问题,做一个总结,希望能帮助想去亚马逊的同学,因为面试过程中也有很多人给了我帮助。
虽然最后我没有选择亚马逊,但亚马逊不论是面试体验还是 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 的只有亚马逊,和新加坡 Tik Tok。还有一个走完流程不发 offer 的,两家主动终止面试。去年投的国内大厂,除了腾讯没有拿 offer 也都拿到了,有个搜狗 offer,后来被合并入腾讯。
面试挂了不要否定自己。要好好刷题,好好准备基础知识,面试常问的知识点要用自己的话总结下来;不要广撒网,这样很浪费时间,要好好准备然后拿两三个练手后直接去面大公司。
好好准备,祝有相关打算的朋友顺利拿到 offer!
最后,欢迎学编程的朋友们加入鱼皮的 编程知识星球 ,鱼皮会 1 对 1 解决你的问题,直播带你做出项目、为你定制学习计划和求职指导,还能获取海量编程学习资源,和上万名学编程的同学共享知识、交流进步。
往期推荐
我的学习小圈子
一年了,说几件大事!
又一个新项目搞完啦!!!
好日子,送大家 65 款表白代码!
这个项目不算烂大街,可以冲