4yoe跳槽senior面试经验

avatar 76874
luochenhuan
22356
27
本人在加拿大FAANG待了4年(地里认出我的小伙伴求轻拍),最近面了一圈senior,虽然没去成dream company,但由于从确定要跳槽到尘埃落定花了2个月的时间,在面试技能基本reset为0的情况下能有这个结果本人已经很知足了。虽然和地里其他大神比不了,但是地里加拿大面经较少,所以写下这篇总结 一是给自己的第一次跳槽画个句号,二是希望可以帮助到和我情况相似的童鞋。

本帖隐藏内容需要登录后才能查看。

这次面试的初衷是想去C/D轮左右的startup,但不幸2家startup都挂了,可能本人和startup八字不合吧😂 🤣

Context + timeline:
3月底萌生跳槽想法,4月初开始联系内推+turn on linkedin上的open to opportunity,陆续就有recruiter找上门来了。我面试清单里没有一家是主动投的简历,都是内推+recruiter reachout,如此看来简历里有FAANG至少可以作为以后跳槽的敲门砖。也是因为没有海投简历的原因,我的时间线可控性很高,因为不需要花额外的时间等可能石沉大海的简历筛选。唯一一家海投的stripe给我简历拒了😓 所以强烈推荐通过各种手段获取内推或者recruiter的直接关注。

4-5月开始刷题+看系统设计,同时陆续phone interview。当时的自身情况是:4年没有刷过题,不会写bfs/dfs(我当面试官不问graph/tree/dp这种有套路的题,都是问一些只需要基础data structure但需要较强逻辑能力的题),所以刷题能力基本reset为0。另外从来没看过系统设计面试的相关资料,所以系统设计能力基本为0。Faire就是在我刚刷了没几道题的时候去做的OA,原因是内推我的人说OA题目很简单,结果碰到2道hard直接gg。。。但经此一役,lz意识到不刷题绝对会死的很惨,开始重视刷题,也算吃一堑长一智吧~

5月中到5月下旬集中面试onsite,5月底到6月初出结果选offer。

coding面试准备:
一开始按题型刷题,把几个基础题型(e.g. two pointers/dfs/bfs/backtracking/sliding window/union-find)刷个5题左右就知道框架了,自己总结一下套路模版,之后就是看哪个公司要面试了就看公司tag刷了。我2个月一共刷了不到150题,但是coding轮自我感觉发挥的都还可以,这一方面由于我的运气比较好,没见过的题都是medium难度而且是常见题型,另一方面我面试的公司里有几家的题库很小可以提前准备。

关于coding,我的经验是刷题这个事情不在量,而在质。尤其在时间很紧迫但基础还不牢靠的时候,每个题型一定要总结出对应的coding framework。这里推荐一份资料:labuladong.github.io 这个人总结的各种算法技巧让我在刷题时事半功倍。

面试的时候我喜欢把思路用step 1.2.3这种bullet point的形式简洁的写出来,然后问面试官does it sound right to you? 在virtual onsite的环境下,如果仅仅用语言描述面试官很难get到你的所有逻辑,但是这种方法就比较简明易懂,也有助于面试官快速指出你逻辑上的错误。记得在某场面试中,我把一个有很多edge case需要考虑的问题用这种形式分析列出提纲之后,那个面试官一脸震惊:wow, you logic is very clear。

最后关于编程语言选择:我从来没有写过production级别的python,刷题初期也是用的C++,但是看了一些解法后我毅然选择了python作为面试语言,因为python所需的boilerplate code相比java和c++少了很多,又有很多强大的library,对于同一道题,光typing体感都能节省出好几分钟。。。个人意见,仅供参考。

系统设计面试准备:
这块我没啥特别经验要分享的,无非就是地里说过的DDIA,grokking the system design interview, 搭配Scott Shi和InfoQ的youtube channel食用。另外推荐一位国人大哥写的System Design Interview - An Insider's Guide([courses.systeminterview.com]),可搭配grokking食用。面试套路这个帖子[instant.1point3acres.cn]总结的非常好,我就不赘述了。虽然我面试的时候这个帖子还不存在,但后来发现我俩的套路基本一致,只能自恋的说一句果然英雄所见略同(当然这个帖子的大神比我厉害多了)。

Behavior questions面试准备:
lz由于时间有限,bq没有怎么准备,所以做的不是很好,uber的down level感觉一部分原因也是因为BQ没答好。我总结的经验教训有:

1. 例子不够多。因为lz在公司前2年做的方向比较奇葩,细节现在已经完全忘记了,所以举例全部用的在待了不到2年的新组做的东西,几个面试官如果都问projects难免会有重复的部分。所以大家还是尽量多准备一些project和stories吧。
2. 回答问题要明确主题和给自己树立正面形象,切忌bb了大半天没答到人家想要的点上或者直接留了negative的印象。比如问你上次接受到的negative feedback是什么时候,你说完接受到的feedback这个事实之后,一定要回答你是如何去improve自己从而解决了feedback里面提到的问题。
3. 过于诚实/谦虚。咳咳这条不是提倡大家撒谎,但是假如你申请的是Level n的职位,那你的回答就要尽量符合Level n的expectation。比如uber的hiring manager问我,你现在在组里的role是什么,我就诚实回答了我mentor了1-2个junior,主要是和组里的人合作。但是朋友透露uber L5的标准是lead 5+ ppl,lead cross-team, cross-org contribution。可能有人说,如果编的话人家问你细节就露馅了,这个说法我一定程度上认同。如果你从来没有做过类似的事情,的确会被问穿。但是我的确有mentor juniors,不过没有5个;我的确有cross-org合作,但不是lead。所以就算被问细节我也能答得出来,除非面试官让我背出给每个人assign的任务清单。这个问题的dilemma就在于,假如其他面试者都夸大他们真实工作的scope,你老老实实回答就会被“卷”走。

附上几篇我用来准备BQ的帖子:


Offer negotiation:
基本技巧上面link的系统设计准备的帖子里面也提到了。但我的建议是,除非你是很老道的谈判高手,像我这种第一次跳槽的**推荐直接花点钱去levels.fyi找高人指点,几百块钱的服务至少保证你多拿几千。他们会告诉你如何和recruiter谈话,还会帮你写negotiation email。我后悔自己是在快收尾阶段才找的他们,所以刚开始和recruiter聊的时候就把底子给泄出去了,但还好有competing offer,再加上levels.fyi的那个人知道我最后去的公司的band max是多少,结果超出了我的初始target我就知足了。

levels.fyi一开始assign给我的是xxx,体验不是很好,后来由于我的deadline非常urgent,那个人又联系不到就又给assign了一个叫Sarah的coach,这波算因祸得福,对比之下她真的是保姆级指导,帮我写的negotiation email让我见识到话术的力量(自己之前没写过类似的邮件,真不知道如何优雅的讨价还价还能让对方舒舒服服的读下去)。大家sign up服务时候可以comment要Sarah来当指导(disclaimer: 本人和她无丝毫利益相关,只手相比之下我非常满意她的服务)。

Summary
这次面试经历的最大感受就是,自己过去4年太安逸了,以后还是要保持面试技巧,偶尔刷个题,多看看业界论文和技术类视频,才不会在跳槽的时候手忙脚乱。
这里再推荐一个YT channel: Meta。up主是亚麻的Principal Engineer,他谈到的很多内容都是针对senior+的干货,不适用于面试但很适合在职场中期的小伙伴们的职场发展。

最后,文中观点都是个人拙见,如果大家有意见或者建议,欢迎留言。

最后的最后。。。。事业上的心头大事解决了就该考虑个人问题了 :) 目前大米不够没法在相应板块发帖,觉得此贴有用的小伙伴们欢迎用大米砸我,小女子此厢有礼了~

求个大米。以上。
  • 460
27条回复