跳槽10+ senior offer 高效准备分享

avatar 419962
winting
25813
74
最近跳槽面了很多公司,准备的非常高效,想写个总结帖,希望能抛砖引玉,给打算跳槽但是总觉得没准备好的同学们打气。楼主个人特别害怕长篇大论的准备过程,所以自己写帖子一定会精简到最实用的部分。背景:6YOE,大厂L5

拿到offer的公司:facebook, google, pinterest, tiktok, airbnb, uber, oracle, doordash, salesforce, coinbase, coupang
因为流程慢电面通过,onsite进行一部分或未进行drop的公司:robinhood, twitter, linkedin, apple, dropbox, zillow

时间线:2周-刷题,3周-电面+刷题+系统设计准备,4周-onsite+继续准备刷题系统设计,3周-完成剩余onsite+谈offer 粗略3个月
打算按照跳槽成功的重要程度来组织行文,如果只想看准备部分请直接跳至刷题,系统设计和BQ。

天时
在年底跳槽的过程中,感触最深的是顺势而为,天时/市场好的时候找工作的难度会降低很多,面试的难度降低,面试中对失误的容忍程度提高,面试的公司选择变多。
面试的过程中能感觉是面试者的市场,recruiter和manager都在尽力联系和留住candidate。
如果大家总觉得自己没准备好,但发现是天时好的时候,请一定要积极开始,因为一旦错过就错过了easy打怪模式,会增加很多的精力和时间开销。不要在hc freeze的时候跳槽,也不要在天时好的时候不敢迈出那一步,共勉。

地利
湾区,西雅图,纽约,奥斯汀等等都是有地利优势的位置。公司越多,选择的机会越多,而work from home的加入更是让这一因素放大。除非是个人喜欢permanent remote working, 那么建议大家relocate到一个公司聚集的地方。

人和
人和想谈的点会多一天,会从自我定位,准备和心态三方面入手。

  • 自我定位
请在跳槽前思考这几个问题:
-我为什么要跳槽?
-我对跳槽的时间安排有多急迫?
-我在下一份工作中最希望收获什么?

这些问题会帮助你认清自己的定位,不管是不喜欢现在做的方向,觉得work life banlance不好,或者是希望追求更高的工资,它们的答案都会帮助你执行以下问题:
-选择什么样的公司开始面试?
-如何安排自己的时间线?
-我最看重的是薪资/work life balance/工作内容吗?

楼主在最开始的时候没有思考清楚这些问题,导致面了一些startup后发觉自己还是想去上市公司,到了快要谈offer的时候发现:大部分上市公司是不match startup的薪资的,所以只好中途加了很多公司,时间线安排的非常满,过程极其疲惫。

  • 开始进入准备面试的状态
为什么会有这一步?因为当面试真的开始安排的时候,是可以掌控时间线的,但最难掌控的部分是如何和什么时候能和recruiter取得联系。楼主开始准备刷题的契机是发现以上公司的recruiter都从linkedin直接发了站内信,而一旦有recruiter和你取得联系了,会直接加速进程,因为所有的内推和投简历都是为了安排一个recruiter working on your case.

在此建议所有有跳槽想法的同学,都打开linked in上open to new opportunity的按钮,“天时”好的时候recruiter会来找你,也可以开始先投递内推简历。不要因为担心自己还没开始刷题,就总要等准备好了才开始这一步,这一步其实是最慢的。就算还没有准备好,电面前往往都是需要先recruiter call的,电面的时间是可以自行安排到准备好的时候,但是取得联系很重要。在等待的过程中,可以继续准备。

  • 刷题准备

当楼主看到leetcode上那么多题的时候,内心是很绝望的,是不是要像其他的人一样刷个七八百道题才有希望,有没有不用刷那么多题的方法,以下是个人总结比较高效的:
(请购买2个月 or 一年的会员,有用的)
-在电面前 >=两周:
刷facebook的近六个月题库,众所周知它家是题库公司,而库里真的涵盖了大部分公司会面的基础题和高频题。相信大部分人不是小白刷起,所以很多是做过复习就好,不会做的就先记下来。第二次过的时候能有思路即可。

-在电面/onsite coding轮 前2天:
刷目标公司的题库+看地里的面经

-在电面/onsite coding轮 前2个小时:
看题目描述,做到能有思路,知道思路对应的时间空间复杂度

-Tips
在刷题的时候,尽量不要刷到可以默写的程度,因为这样在面试中即使遇到了原题,会感觉没有思考过程,有思路,稍微有点小磕磕绊绊,但思路流畅会让面试官感觉你coding的过程非常的真实,真的有小bug,别慌,问对方你可以debug吗(没见过说不可以的),真实的打开IDE debug,这样绝对不会有人写“你coding很快一看就是别人帮忙做or背答案的”,稳住,能AC。

  • 系统设计准备

挺重要的,但别太担忧,每个人都可能被问到不擅长的领域的系统设计,尽量引导共性和你擅长的部分,和面试官交流他看重什么,诚恳的说知道和不知道。
(1)自己做过的项目
这个是最重要的,很多人自己做过的项目讲不清楚就盲目准备其他系统设计题目。在面试过程中,楼主几乎每个公司都遇到了有1-2轮是讲自己做过的项目,一定要能把你可以控制的部分讲清楚。请确保每个候选项目的架构你都可以徒手画出来。
在项目选择上,请尽量选择这样项目:和别人合作的(面senior level对方更想看你drive项目和和人合作的),架构不要太简单(这部分的面试是帮你定级的,如果你的项目太简单,很可能会被down level),自己的部分有技术难点和产出的(customer/business impact or service improvement,能定量最好定量,比如提高了5秒,节省了2million,增加了30%的客户等等)。
理想的说辞是:我参与了这样一个项目,共x个人完成,项目的架构是这样的blahblah,我负责的是这个部分,遇到了xx问题,是这样解决的,达到了xx效果。
引申问题:如果让你重新做一次,还有哪些部分可以改进(经常被问到)

(2)主流的系统设计
因为楼主准备的很匆忙,所以完全没来得及看著名的DDIA(以后会努力看的)。建议回顾自己项目遇到的难点,找共同的东西,比如通信是怎么完成的,数据库是怎么设计的,如何解决同步和冲突的问题,如何做的fail over,如何error handling,这些都是很共通的。

-在系统设计面试 >=前1周
codekarle.com,楼主主要过了一遍这个,因为每个视频不长,有图,且完成了帮助你熟悉要过的主要key point和核心架构

-在系统设计面试 前1-2天
梳理题库,包括leetcode上对应公司的discussion和地里dp,搜索相应的系统做到心中有一定的了解

-Tips
在面试的过程中,和面试官clarify requirments后,请主导整个system design的过程,但是要在自己讲解的过程中和面试官互动,比如问问他“我从这几个方面来讲可以吗?”“你有什么感兴趣我没讲到的部分,请让我知道”,面试的级别需要让你作主导者,与此同时要哄面试官开心,多谈他想谈的东西。

  • BQ准备

这部分相信大部分的工程师在工作中是遇到过的,在工作中多总结例子(尽量不要编)完成以下人设:
我是个customer/business impact driven的工程师
我有良好的技术能力,可以独立/合作解决xx技术问题
我有良好的沟通能力,当和同事/老板遇到冲突时,是这样解决的
我还是个很懂得协调的人,当项目进展节奏有问题,dependency组/PM需要我帮忙的时候,我都可以
我还是个很喜欢合作的人,也承担了很多和技术无关,增强团队凝聚力team morale的工作

  • 心态
如果挂了面试,可以总结的部分总结。觉得是对方问题客观因素的,不要过度自责,该找HR ask加面就勇敢的问。找工作也是缘分,对方虽好但八字不合也不是幸福的工作。

  • 面试节奏

楼主在这个方面吃了些许的亏,所以建议大家按照这个顺序去onsite,最初onsite担心面不完,基本上是一天一个onsite,身心俱疲,建议大家按照面试轮数每周安排3家左右比较合适。如果是7轮onsite就分割到两天,每天的onsite轮数在3轮左右是不太影响身心健康的,大家可以找到自己的balance
第一周:安排练手公司 3-4家
第二周:在安排中加入google和linked in (这两家公司流程真的很慢,建议尽早开始,且google不太容易碰到面经leetcode原题,也不用安排特意的时间去写一遍原题)
第三周:安排稳(缺人狂招)的公司
第四周:安排高package的公司 (因为要临近谈offer的时候了,所以需要一些高package的公司来帮忙compete,比如uber, robinhood)
第五周:查缺补漏,安排电面比较晚才开始onsite的,或者保底的公司

  • 谈offer与选offer

如果能拿到更高level的包,尽量接。
尽量多拿一些爱发高package公司的包,这样才好谈,上市公司大多只match上市公司。
谈offer的流程真的很长,很多公司折腾一个批复两三周就过去了,手里的offer不一定有那么长的ddl,清楚自己的心里预期,尽量多谈,但见好就收,除非真的不着急,耐着性子花上2-3个月谈上几个来回。否则如果它具备了你看重的点,没必要因为差一些就反复纠结。

  • 其他心得

面试难度:感觉题问的难的是doordash和airbnb
面试公司推荐:
题库公司:fb, coinbase, robinhood, doordash(但是别指望知道题库就能做的特别好,毕竟是转述)
聊天公司:salesforce, uber, pinterest (准备好水,真的会一直在聊)

总之,觉得自己在一个天时好的时候开始跳槽运气真的很好,如果大家觉得哪里没有涵盖或者写的不好的地方请指出,楼主会努力回复和修改,谢谢大家,祝大家都顺利收获自己心仪的offer!
  • 840
74条回复