查看: 56906| 回复: 72
跳转到指定楼层
上一主题 下一主题
收起左侧

[找工就业] 系统设计小白,7周结束在职跳槽准备+面试的经验分享

   
全局:

2021(10-12月)-CS硕士+1-3年 | 内推| 码农类General全职@google

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
(看干货请直接看最后“关于系统设计”和“关于刷题”).--
写在前面
在我开始准备跳槽的时候看到地里好多大神system design翻完了DDIA,刷题500+。顿时让我压力好大。但真的家庭原因,无论如何都想快速换公司走人。所以义无反顾想先面着试试,没想到速成准备+面试结果还可以。把经验给想要在职跳槽的小伙伴们。

背景楼主研究生法律转码,系统相关知识学校里就没怎么学过。研究生实习(实习面试没有system design,于是没准备过)在某wlb差的大厂,return后工作到今年10月刚过2.5年。期间做各种产品前后端,不接触infra,工作上没有积累对少系统设计或数据库相关的知识。今年初家里添置四角吞金兽一枚,因为队友在同一家公司俩人实在忙不过来照顾娃,于是想跳去一个相对wlb好一点的地方。
时间线
9/27下定决心义无反顾跳槽,开始认真划水工作 + 刷题 + 内推/海投简历。10/4-15跟recruiter聊,安排面试。10月后两周18-29请了两周假,狂做OA, 面几个小公司的电面(主要为了练手和锻炼心态)。放假回来直接跟老板说三周后辞职,于是这三周名正言顺的划水面试。11/1-5面了个小公司的onsite和几大个中, 大公司的电面。11/8-15 连着onsite面了四个公司五轮onsite(微软两个组面了两次onsite)。然后面完onsite的这一周的剩下4天交接了下工作就辞职带家人玩耍啦。后面开始漫长谈判offer阶段直到这两天才谈妥签了offer。


结果
总共面了五个onsite都很幸运拿了offer (面试除了狗家,其他公司都有system design)。Rover小公司senior, 微软62,罗宾汉L2, 领英Senior, 狗家4。也面了其他几家小公司和卖房网, 刀大师的第一轮电面,但有offer以后就取消了之后所有onsite。最后综合wlb和pay选了个折中的狗家。
.1point3acres

关于系统设计.
适用人群:个人认为我这个复习plan比较适用于mid-career. (<5)年经验,面试职位junior or senior。要面system design,但职位本身不是专门做系统不会对系统设计要求很高。因为毕竟是速成。系统设计想成为大神,还是要靠平时的积累一点点搭起来。
. 1point3acres

鉴于背景介绍里说的,楼主在刷题最头疼的就是系统设计。系统设计小白一开始看大家说grokking system design很有帮助,楼主上来先顺着看了几个题目感觉慢慢读能读明白,但是除非我挨个字句背下来了,否则来个原题我也不一定能答上。所以去请教了身边刚换工作的大神们,得到了一些反馈,下面是我复习的顺序(顺序很重要),时间和材料如下:
  • DDIA。这本书很早我就买了,奈何一页也没翻过。到我决心跳槽时候也不想拖拖拉拉等看完再说。于是身边一个大神推荐的这个youtube频道DDIA基础概览帮了大忙。https://youtu.be/PdtlXdse7pw (in case链接失效,搜Kunal Cholera这位三哥的DDIA系列)。用12个20分钟左右的视屏把DDIA这本书12章大致内容全概括了一遍。虽然每个视频20分钟左右,但我可能每个都是花视屏本身一倍的时间,边看边在它的slides/图表上记笔记。遇到陌生的词、特别用语会google大概看一下再继续往下看。有些个别重要章节,我在看完以后发现很多资料都会谈到的时候我会回来再看一看(个人认为重要/考点频繁的章节有1,2,5,6,7,9)。这一步视频总长不长,但准备初期我用在刷题时间多,系统设计分配时间少,大概陆陆续续花了两周才完全看完。
  • 理论听了一堆,现实中到底如何设计系统,有一些选择如何取舍。这时候又有大神推荐了这个 https://luanjunyi.medium.com/the-table-of-contents-416d2240fa8e。滑动到最后读他写的Technology板块。这里会学到更多面试会常问的一些内容的细节比如cache,sharding,replica等等,以及这些在实际的系统中面临的trade off. (比较松散的看花一周)
  • Grokking system design 当这个时候你读了前面两个之后再去看grokking system design会觉得突然醍醐灌顶,很快速的看过去就知道再说什么了,这时候看到有用的东西再快笔记记一下加深影响 (这时候前期电面陆陆续续快结束了,花了一周集中复习system design时候看的)
  • 个别知识点。例如常用的queue (https://www.freecodecamp.org/new ... ueues-2cd358d83780/). CDN, DNS(https://github.com/donnemartin/s ... ions-with-solutions) 等在看grokking的时候经常看到,但具体不知道是什么的可以快速读一些文章帮助理解
  • 接下来就是备战了。如果没自信随便来个系统设计题都能有思路的的小伙伴,一定要刷面经,一定要刷面经,一定要刷面经!澄清一下刷面经的心态一定要摆正,不要suppose刷面经一定遇到原题,这样当不是原题时候反而会一下心态慌了。我面所有的system design没有遇到一轮是一模一样的原题,要么稍微要求有变化,要么完全不一样。但面经准备多了,在准备过程中,我会看很多视频,学习他们的思路和表达方式。看多了以后发现很多设计的思路大同小异是通用的。下面几个视频是我在刷面经过程中,帮助我了解系统设计面试到底什么样,怎么和面试官沟通。我把一些我看过的视频list列在这个这个section最后 (system onsite的前几天开始花差不多3-5小时时间准备那家公司的system design面经)
  • **Be Honest** 这一点也是我认为面试最重要的一点!这是罗宾汉的recruiter(我so far遇到最好的recruiter)在打电话帮我prep onsite时候讲的一点,让我顿时深受启发。我实话跟他说我直接intern转正了没有面过system design,所以非常紧张这一轮。他跟我说,给你举个最近面试官反馈的例子,问到DB如何选择的时候,一个fail的回答是“我准备用NoSQL,比如mangoDB, Cassandra,Hbase等等”。然后面试官问为什么的时候,面试的人不能说出很具体为什么。相比较,一个pass的candidate回答是“我选择用MySQL,虽然我知道MySQL可能在scalability和XXXX上有局限,但是因为我没用过NoSQL,我不是特别的熟悉所以我这里选择NoSQL"。这个对我启发很大,我在后面所有onsite面试都是贯彻这一点。例如我记得有一轮我说到partition data,面试官问如果有hot user致使partition不均匀你怎么办。我就记得看的某一个资料里说cassandra本身可以通过config来进行consistent hashing。不用自己手动搞一个consistent hashing logic. 但我当时也就是看我自己笔记里记了这么句话,我也不能确定100%对的。所以我就很实在的说“I didn't use cassandra myself before, but if I remember correctly, I read from a book that cassandra uses consistent hashing to distribute and replica data across nodes. If that is the case, we don't need to implement a separate hashing function to solve that issue.” 能看出面试官对这个回答很满意。假如我这个记错了,因为我很诚实告诉他我也不确定,所以不算是个red flag。所以我一直觉得面试最忌讳的是~~不懂装懂。不会就不会,把会的说出来也体现给面试官you already try your best就行了
  • 最后一点对我很通用就是速成情况下东西太多除非记忆力惊人,否则不可能什么都记得。我加强记忆的方式就是最古老的烂笔头~碰到什么觉得很有用的点就记下来。对我来说非常有帮助!




关于刷题
刷题我不是从零开始。3年前面实习机会的时候,那会转专业没别的优势只能好好刷题,于是很认真刷过很长一段时间。所以现在基本是要捡起三年前的手感。在九月底开始刷题时候我是先花两周把几大知识点的经典题先做一遍,熟悉了一些常考的算法。然后开始集中刷领英tag题。一是我个人感觉linkedin拿offer概率比其他公司更大些,tag题也就140左右想刷完压力也不大。其次是我个人感觉linkedin tag题大多题都很经典,也涵盖了所有的考点算法。能理解并熟练做大多数linkedin的tag题那面试随意什么题临场发挥也不怕。所以我基本除了罗宾汉,刀大师和红色卖房网的tag题我面试前有刷一刷之外,基本上一直反复刷linkedin题。到我最后一个onsite面完那一天我再也没有打开利口.题量最终停留在了265。下面几点是我特别想分享的,不同意也求轻喷:
  • 认真面对每一个OA。我刷题的第3-4周做了5个公司OA。一个例子是,我99%不会去热带雨林 (因为wlb是换工作主要考量)。但recruiter联系我说给我oa做的时候我想了想还是接受了。当时队友各种说我浪费时间。但我的看法是OA本身也是在刷题,而且给你限时做题,这不是一个很好的模拟面试的机会么。我觉得这些OA就在各种电面以前已经帮我慢慢建立了面试不紧张的心态
  • 拿不想去的公司先练练手。把不是很想去的公司电面都排到最前面,报着挂了也无所谓的心态开心面。过了的看看onsite如果好几轮瞎聊天的就cancel。如果是算法+system design的又可以onstie也排前面一点练手
  • 关于面经。跟系统设计刚好相反,对于大多数公司我不是很喜欢算法题刷面基。比如狗,领英,软这一类公司就实在没必要看了。题多到怀疑人生。刷了没面到原题也许也会紧张。还不如掌握了各种算法之后相信自己临场应变就行。对于很小的公司,面经找也是找不到的。罗宾汉这样规模不大不小,当下比较hot的公司刷刷面经还是挺有用的。因为题还不多,面试也的确多按面经来
  • 合理安排时间,不要burn out自己。按自己的速度定一个合理计划。我因为有一些实习时候刷题的基础,我给自己大概前两周订的一天5题。后面慢慢增加到一天10题差不多。等专门复习system design那一周又会相应减少量。所以因为有计划,只要每天达成甚至超过了计划,我就会特别开心觉得自信满满。如果没达成,就隔一天或者几天慢慢补回来就行。因为家有小娃,我每天5-9点期间一定是我带娃的时候,也是我换换脑子的时候。周末一定有一天我们会一家人出去玩,晚上回来做个两题保持一下手感就行。所以整个跳槽感受虽然也有压力,面试很累。但是有好好吃饭,好好睡觉,周末也放松了所以整个过程心态是特别放松的



写在最后

还有一个想要在职跳槽速成system design然后2月内结束复习+面试的一个必要因素就是:可以花多长时间来准备。对于有身份问题的,以及只是想看看外面有没有什么合适机会的小伙伴,资料都可以借鉴,但速成7周结束跳槽面试还是过于辛苦。因为毕竟还有本职工作要做好,如果没有合适机会之前还是要保住现在的饭碗。对于我,我是破罐子破摔一定要走人。在我开始认真准备的第一天我就计划好什么时候请两周假,什么时候辞职,不管找没找到工作我都一定要那个时候走人,然后感恩节出去玩休息~。就因为这样,我可以那7个星期几乎每天花<30分钟时间在工作上,其他时间都在复习准备。


希望经验对各位有所帮助!主要是写出来给正要开始准备在职跳槽朋友看的,如果你也恰巧看到这里,求加米!!(说到这里一个fun fact: 面system design看面经时候因为没米一狠心跺脚办了一个月会员。可能也就是因为只办了一个月,所以更想在过期前加速把所有面试面完)
. Waral dи,

评分

参与人数 137大米 +200 收起 理由
bklxxjjz + 1 很有用的信息!
cute_susu_bobo + 1 给你点个赞!
秋儿爱吃虾 + 1 很有用的信息!
森林火柴 + 1 赞一个
小亩_22752dd + 1 赞一个

查看全部评分


上一篇:被面试官惹火了
下一篇:Bloomberg vs. Bytedance

本帖被以下淘专辑推荐:

全局:
lz的经验句句是干货,非常实用感谢了!
回复

使用道具 举报

地里匿名用户
推荐
匿名用户-BXTYM  2021-12-11 01:29:24
tianqiongluo 发表于 2021-12-10 08:58
"放假回来直接跟老板说三周后辞职,于是这三周名正言顺的划水面试" 楼主是有绿卡吗 否则不敢没找到工作就提 ...

楼主还是有实力 有卡我也不敢这么先辞职。。。骑驴找马是很累 关键辞了心理压力很大啊
回复

使用道具 举报

推荐
 楼主| 莲沐 2021-12-11 00:15:44 来自APP | 只看该作者
全局:
yyz20002008 发表于 2021-12-10 06:14:36
那个 web crawler 小哥 Tech Dummies Narendra L 的分布式lock在精华帖里被当成了反例,是说还是case by case吗?同一个人不同topic水平也不一样. ----
h
可能case by case?我没看过那个lock的。对于大神来说可能觉得他挺啰里八嗦,有的component还有点多余,可能有更好的选择。但对我这种小白来说,感觉看他这个web crawler视频算是个启发吧。讲的一些东西我一开始根本没想到也不知道
回复

使用道具 举报

🔗
interviewing 2021-12-9 22:30:02 | 只看该作者
全局:
恭喜,请问能说说怎么准备G的面试吗?因为G基本不出原题,刷lc似乎用处也不是很大。
回复

使用道具 举报

全局:
太强了楼主,已加米。如果是橡胶厂survive两年实力也是非常强悍的,拿这么多offer实至名归

楼主可以分享一下包裹吗

评分

参与人数 1大米 +1 收起 理由
莲沐 + 1 赞一个

查看全部评分

回复

使用道具 举报

🔗
 楼主| 莲沐 2021-12-9 23:01:34 来自APP | 只看该作者
全局:
zzqandrew 发表于 2021-12-09 06:44:26. .и
太强了楼主,已加米。如果是橡胶厂survive两年实力也是非常强悍的,拿这么多offer实至名归

楼主可以分享一下包裹吗
谢谢!我是在元宇宙厂,wlb in general也不怎么样。包裹我可以提供个比较general的data point。 罗宾汉给的最好,差不多我是地里报L2平均值。然后狗现在front load前两年勉强match到了罗宾汉的包就去了。
回复

使用道具 举报

🔗
 楼主| 莲沐 2021-12-9 23:11:04 来自APP | 只看该作者
全局:
interviewing 发表于 2021-12-09 06:30:02
恭喜,请问能说说怎么准备G的面试吗?因为G基本不出原题,刷lc似乎用处也不是很大。
就是帖子里“关于刷题”那一块讲的,没有特别准备G。因为又不面System design,题也多到刷不完,就临场发挥了。面试我惯用的方式就是多沟通,而且我习惯边写/边想思路然后时不时跟面试官check我在不在right track上去。中间也的确有题卡住,但是因为一直在沟通,面试官一直follow我的想法,所以能给个小hint就就继续做下去了。
我个人感觉今年低狗家招人大招了一批,Bar好像降低了。我面的只有一轮是个hard,其他感觉最多medium难度。我有一轮面试用最差的一个算法写,自己也觉得写不一定对,但最后还是过了。
回复

使用道具 举报

🔗
孤笑客 2021-12-9 23:24:12 | 只看该作者
全局:
法律转码?硬核!
回复

使用道具 举报

全局:
硕士不知道考没考过lsat 那玩意儿能考到170以上的人刷刷题大概率随便转
回复

使用道具 举报

🔗
feifeibaby 2021-12-10 04:06:35 | 只看该作者
全局:
lz nb 啊!二个月速成啊,而且每天刷题的进程直接5题起步到10题,还有时间看这么多SD,还要带娃周末还要放松一下,tql!!
回复

使用道具 举报

全局:
Mark mark 谢谢楼主的资料!
回复

使用道具 举报

🔗
23rdFloor 2021-12-10 04:49:52 | 只看该作者
全局:
thanks for sharing ~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表