疫情跳槽,VO面5挂1,一点总结和反思

2092
7
疫情期间决心跳槽,从10月初开始投简历,找内推,面试。
到目前为止,一共virtual onsite 5次,挂了1次。(compass挂,uber过,blinkHealth过,route过,OCI 过,amazon过)
年底准备收工不面了,基本上确定了下家,发个贴记录一下心路历程,找工不易,大家加油!

我自己目前小厂2.5年的经验,但是这么一圈面试下来,基本上大点的公司,我都被downlevel了,根本冲不上sde2。所有由此也可以总结出一点经验,小厂的经验在大厂眼里是要打折扣的,尤其是在HM眼中。所以尽管每次我从recruiter口中得知,每轮feedback很好,但是最后都是"基于你现在的经验,我们不能给你这个level"。

总结
1. 刷题
老生常谈了,我是按照tag刷题,然后总结每个题目的具体思路,最后把相似思路的题目再总结一下。以此循序渐进,重复强化。因为是在职跳槽,平时还要兼顾工作,从今年2,3月份开始刷题,到最近找到工作,我一共刷了370题,一共1700个submission,平均下就是我每天的刷题量。
可以参考花花酱的tag 分类,把这个刷完,理解完我觉得就可以去面试了:docs.google.com

2. system design
我个人觉得有工作经验了其实面对system design并不会手忙脚乱,因为不管是什么系统,都会有一个或者几个急需解决的问题。比如可能是request conflict问题,data replica,data shard。所以我们需要做的是明白系统内会有什么问题,以及有什么解决方案,我们为什么要选择这个解决方案。比如说单机数据过大(shard the data), 比如果concurrency performance表现不好(load balancer+多个service node), 再比如单个table数据量过大/table太多,serialize或是deserialize的方法怎么选择,read operation多与write operation怎么办,等等。
我建议把版上出现的高频system design总结下,对于每一类特定的system design(比如社交类,地图类,预定类,储存类),都自己设计一下,写一下。然后对于每个系统可能出现的reliability scalability maintainance的问题搜一下对应的业界解决方法,比如twitter或者Instagram是怎么处理大量数据的,比如uber是怎么处理实时地理位置的等等。这些都有公司专门的tech blog甚至视频介绍。

3. BQ
工作中干的事多了,肯定就多了。这里提供一个小trick,有时候就算是同事干的活,你一样可以拿来讲故事,只要你足够清楚里面的解决方法。
然后就是要在面试中引导与面试官的对话,比如,你想让面试官着重问你一个project,因为你很了解。那么你可以在自我介绍的时候顺嘴带上,但不要细说,大概说下功能和实现。这时候面试官潜意识就会向你说的这个project上靠,然后你就可以继续说了。 再比如,在说话期间不要说得太少,也不要说个不停,留出空白,引导面试官提问。
然后合理的恭维很重要,当面试官受你引导,问了你想说的,说一句great question, that's very important。提问的时候展示出对面试官自身的project和tech stack的兴趣。
  • 26
7条回复