经验分享 本科毕业两年在职跳槽Amazon

avatar 220382
hwpu0818
5206
12
经验分享 楼主本科毕业两年,现就职于MS,本帖主要分享自己是怎么准备跳槽面试的,以Amazon的准备为主。
先已拿到Amazon SDE2的offer。

1. 刷题
如果之前有刷题的基础,可以直接从medium开始。我的刷题方式有两种:看到就有清晰思路的,理清思路后就可以跳到下一题;如果觉得有疑问不确定的,就写下来验证思路是否正确。
我先用这种方式刷了500题。刷完一定数量后会知道自己的薄弱点在哪,例如dynamic programming, 各种sorting的变形及利用,BFS和DFS的变形。
第二遍根据这些薄弱点,可以选择对应的topic进行巩固。不要以做出来为目的,也要看自己的solution time和space efficiency如何。因为面试时可能会要求你optimize time or space。
最后一遍是在面试前,根据leetcode上公司的题库来准备。我还是和第一轮的方法一样,看完题就知道思路的跳过,只写自己不确定的题,这样能大大提升效率。这个时候基本都是在刷hard难度的题了。

刷题时不仅要着重于solution,我也会注意题目中给的Notes,这些通常是面试时要和interviewer clarify的assumption,例如array长度,有没有duplicates, number是integer还是long之类的注意点。这样一方面面试时不会因为刷过同样的题就直接开始写,也有助于和interviewer的沟通。
第二个我会注意的是similar topics和similar questions。这样可以知道这道题有多少不同种解法,争取做到每个都能理解并比较空间和时间的trade-off,同时可以把类似的题目也准备好。有的时候类似的题目只需要一点点solution的变化,刷题时不一定能注意得到,面试的时候却可能会导致corner case的fail。

2. System Design
System design需要的准备时间可能不比刷题少,所以可以同时开始准备。我主要是在网上找了各种资料来看,以下是我用到的准备资料:
a. educative.ioeducative.io
这个网站基本是按照case来讲解的,包括的案例都是很常见的面试题目了。每一个例子我大概都看了三遍,第一遍看的时候是了解熟悉system design的概念,第二遍巩固里面用到的技术和架构,第三遍看的时候会结合自己看的别的资料,想想自己会有什么不同的设计。mock interview来画结构图并解释每个sub component的意义,问自己这个设计是不是scalable, reliable and always available.
b. docs.microsoft.com
这里讲了很多design pattern,了解每一个pattern用来处理什么问题,需要注意的点是什么。
c. Youtube上的各种system design的video:
我主要看了这三个youtuber的video: Gaurav Sen,Tushar Roy - Coding Made Simple,Tech Dummies - Narendra L。
d. CMU courses:
Youtube还有很多CMU关于database的课程,这些课程可能有点过于具体,但是里面提到的概念还是挺有用的,可以有侧重性的学习。
e. 各种database的paper和summary blogs:
我读了DynamoDB和Cassandra的paper,学习了里面consistent hashing, virtual nodes, vector clocks, gossip protocol, merkel tree, bloom filter之类的概念。面试时当面试官问到细节问题时,这些都是可以讨论的点。如果觉得读paper太难懂,可以直接找summary blogs,再对里面提到的不懂的知识点进行学习。对于不同的NoSql database,要知道strength和weakness是什么。
f. Github上各种system design的repo:
github.com
github.com
github.com

3. Leadership Principal:
Amazon极其看重LP, 14个principal 每一个都准备1个故事,最好不要是重复的,故事要具体清晰。面试时要知道Interviewer的问题是关于哪个LP的,但注意不要直接用LP里面的词,否则会过于刻意。用STAR(Situation, Task, Action, Results)的结构来回答,这个一定要提前练过,否则面试的时候太紧张,就会颠三倒四让interviewer很难理解。最好找朋友mock一下,确定朋友能听懂你的故事。
本帖隐藏内容需要登录后才能查看。
最后当你在面试的前一天觉得没有东西需要准备了,那说明你已经fully ready 了:)
希望对大家有帮助,祝不管是new grad或是跳槽的小伙伴好运。
  • 124
12条回复