查看: 4429|回复: 29
收起左侧

[找工就业] 经验分享 -- System Design Interview并没有那么可怕

    |只看干货 |工作信息, 码农类general, 求职(非面经), 找工就业

分享帖子到朋友圈
本楼: 👍   100% (33)
 
 
0% (0)   👎
全局: 👍   99% (740)
 
 
0% (1)    👎

2029(7-9月)-CS硕士+3-5年 | Other| 码农类General全职@不重要

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

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

x
LZ在中大厂在产品组待了几年,senior title,面试因为年限+自己也没觉得到了staff就target senior。平时工作基本business logic+吹水。对behavior和coding挺有自信的(可以详见我以前的帖子顺便送点米),但是对design毫无概念。面试前对design的认知仅限于shadow了几回design面试。一开始非常焦虑,觉得自己毫无出路,感觉超级崩溃。但还好最后结果还可以,想给一样焦虑的人一些经验分享和鼓励!
先说结果吧。拿了几家pre-ipo和post-ipo的senior offer,挂了一家pre-ipo的公司。有几家面试明显面试官感到很满意,一直说good job;有一家问我是不是有这方面的经验(当然没有,只是好好准备了)。表现欠佳的面试主要感觉是面试中间没有察言观色,说的东西面试官不是特别感兴趣,没有得到加分,其实我应该换方向的。-baidu 1point3acres


如何准备
-baidu 1point3acres早起rampup:了解基础知识和对system design有个整体的概念。刷了地里的一些经验帖,然后我看了grokking和三哥哥们的youtube,看完了整体知道了一些常见的词儿和套路,我比较喜欢的youtuber是这两个:
    - https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFs
    - https://www.youtube.com/channel/UCn1XnDWhsLS5URXTi5wtFTA

中期深入学习:DDIA一些部分翻了两遍左右。大家都说这个是神书,我倒觉得其实里面的知识能在面试真的用得上的很少,但是最好还是看一看有了解,毕竟面试就是准备100分,表现10分。切忌因为学了这些在面试里面疯狂吹,要注意察言观色看看面试官到底能不能听得懂。

后期接近实战:这个我按照了知识点类型和题目进行了深度整理。
      - 知识点类型包括databse,cache,message queue等等进行了整理和归纳,看了一些常用的技术和设计原理,比如看了Cassandra到底怎么搞的,kafka怎么设计的等等。最后总结了在什么场景下用什么,然后如果用这个要讨论什么,怎么展开讨论。比如说cache,就要讨论怎么时候update cache,什么时候evict,以及不同cache之间的选择,etc
      - 题目是常见题目类型进行了准备和练习,比如newsfeed,chat system,payment,etc. 基本上自己画了high-level的design和每个component具体做什么。

冲刺阶段:强化面经题
    - 刷面经找到所有的题目和followup question,总结不同公司会有不同的侧重点(abb喜欢考database,robinhood喜欢考fault tolerance,etc). 1point3acres
    - 找到相关的blog研读一下。我发现其实很多中文的blog挺不错的,比如我在看chat system的时候我看了很多国内的文章,讲如何让message不丢不重复。虽然一般来说面试不会聊到这么深,但是有机会聊到了就很加分,以及聊到了并不会又很减分。
    - 自己设计一遍,写下exploration question,functional/non-functional requirement,画design图,data flow,如何回答各个followup question,自己想想每个component崩了如何处理,各种edge case如何处理。
    - Practice & mock interview



一些Tips
  • 一定要专门点出tradeoff。很多人喜欢说这里用技术A因为它巴拉巴拉。为了让面试官感受到你在做tradeoff,更好的说法是这里有option A和option B,A的好处坏处是***,B的好处坏处是***,我们这里的情况是***,所以我们选A/B。不用整个面试都这样来说,浪费时间,但是面试中间一定要有一两个地方来这样展现自己的tradeoff能力。
  • 一定要完成面试官给的requirement,这是我mock interview发现很多candidate的问题。就自己毫无边界地聊但是忘了题目要求,要是让面试官来guide你完成requirement肯定是有点减分的。
  • 宏观分析一下问题。比如在面试一开始就说出来,这个系统最关键的地方在于*** (比如security,latency等等),我们要时刻把这个东西keep in mind。然后在设计的时候经常callback。
  • 注意time management,有的家的面试只有45min非常紧,其实1h也挺短的,一定要在最短的时间里面提供最strong的signal。有一些没有那么重要的东西可以省略,比如算数这种,要么就不算了要么keep it very simple。
  • 自信自信自信!!!如果自己不是一个很自信的人,找方法让自己变得自信。LZ是只要准备的很好就会非常自信,上面的准备也可以看到了LZ有很努力在做准备,真的是准备好了everything under my radar,就算有些没有touch到的新问题在自信的状态下也会发挥的很好。
  • 我觉得system design里面,knowledge和communication都很重要,像LZ这样knowledge只有20分的人剩下的只能靠communication来凑。平时可以观察一下PM/EM, 非常senior的人都是怎么说话的。
  • 开发一下自己的长处。LZ知道自己design的能力很差,没有什么经验,但是LZ知道自己product sense还可以所以我会有机会的时候稍微展示一下,比如考虑一下用户体验,考虑一下如何从产品角度解决一些问题,目前看下来很多面试官还是value这个的,加点小分。. From 1point 3acres bbs

. 1point3acres

Try to avoid
  • 不要因为自己很懂某一块或者因为准备了而拼命showoff。注意观察面试官,如果发现面试官对这里一点不感兴趣,最好不要花太多时间,说差不多就得了,赶紧moveon到别的地方。我感觉在面试官不熟的地方疯狂表现加分其实没有太多。最好的还是聊到了面试官的心坎儿里。
  • 不要轻易放弃自己的观点。面试官challenge candidate是正常操作,不要因为面试官的challenge就觉得自己错了,冷静思考一下为啥面试官这么说,可以defend也可以结合面试官说的evolve一下solution。当然也不要特别犟。。展示一下自己drive consensus的能力。
  • 不要纠结于完美的solution,学会真的”make tradeoff“学会舍弃。很多人很纠结自己的提出的solution总有缺点,比如可以解决A的case但是不能解决B的cas。其实不用太纠结,尤其不要在自己脑子里纠结。我觉得比较好的办法是说出来自己的思考过程,比如说:我觉得有这个solution,她availability非常好,但是consistency会有问题,我觉得这个要看我们的requirement更看重什么,我觉得这里最重要的是availability因为用户体验很重要什么什么的,所以我觉得这个solution可以,然后我们可以用别的什么什么方法来mitigate consistency的问题。


暂时想起来这么多,希望可以帮助和我一样在design上面struggle的人吧!

写在最后
在准备system design的过程中学习了很多东西,也意识到了自己能力上非常严重的gap。能够混过面试拿到offer只是lucky而已,以后要走得更远还是得靠真材实料。加油!


补充内容 (2021-04-03 10:58 +08:00):
第一个youtuber是这个:https://youtube.com/c/GauravSensei

评分

参与人数 77大米 +116 收起 理由
penguinPeng + 1 赞一个
发帖不留名 + 1 赞一个
leo沙漏 + 1 赞一个
ND0406 + 1 赞一个
fmusk + 1 赞一个
sharlene_yang + 1 赞一个
joytostuffratio + 1 很有用的信息!
Myron2017 + 3 给你点个赞!

查看全部评分


上一篇:朋友(绝对不是本人)的尴尬处境,求建议!
下一篇:2021 summer research intern面试总结

本帖被以下淘专辑推荐:

Vigoose1 2021-4-3 08:12:49 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   98% (82)
 
 
1% (1)    👎
干货经验之谈 加米加米
回复

使用道具 举报

pooth 2021-4-3 08:41:26 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (241)
 
 
4% (11)    👎
干货,mark,新人无法加米,送大赞!
回复

使用道具 举报

Husky_wang 2021-4-3 09:18:37 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   87% (984)
 
 
12% (138)    👎
本帖最后由 Husky_wang 于 2021-4-2 20:19 编辑

三哥的system design收下了,权当练英语了
发现第一个链接失效了,说频道不存在,楼主能再确认分享一下吗?
回复

使用道具 举报

松本绵 2021-4-3 09:21:14 来自APP | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (13)
 
 
0% (0)    👎
干货!谢谢楼主!
回复

使用道具 举报

zea7ot 2021-4-3 09:30:12 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (806)
 
 
2% (19)    👎
谢谢楼主

第一个油管链接完整么?
"This channel does not exist"
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   92% (143)
 
 
7% (11)    👎
mark下 谢谢分享
回复

使用道具 举报

bryanbj 2021-4-3 09:59:10 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   94% (16)
 
 
5% (1)    👎
收藏了,感谢楼主,很有用!
回复

使用道具 举报

ywang14 2021-4-3 12:16:57 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   0% (0)
 
 
0% (0)    👎
长期新人无法加米,先mark一下! 谢谢分享!
回复

使用道具 举报

geekdj 2021-4-3 12:25:24 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   0% (0)
 
 
0% (0)    👎
Mark, 多谢楼主
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■拉群请前往同学同事飞友|拉群结伴版块,其他版块拉群,帖子会被自动删除
■论坛不能删帖,为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://tools.1point3acres.com/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

X 关闭
>
快速回复 返回顶部 返回列表