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