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

深度谈谈系统设计面试

   
🙏 12
全局:

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

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

x
之前在论坛里发布的三篇讲面试的帖子一共5k+收藏,大家的鼓励是我分享的最大动力。最近对系统设计(特别是L6)又有了更深的理解,写写我的感悟。


注意:
  • 本文说到的L5/6是谷歌等级,5是senior,6是staff
  • 我的感悟主要适用backend/infra的分布式系统设计
  • 最近我在组织系统设计线上讨论会,录像都放在System Design Guru这个频道了,本文最后会告诉你如何参加线上讨论会


系统设计面试到底在面什么?



很多人误以为系统设计面试也是跟考试一样的做题,在面试中展现的做题思维过于严重(结果往往不会很好)。其实系统设计面试考察的是全方位的“解决真实分布式系统问题的能力”,也就是侧面评估你进入公司以后能否胜任这个工作。虽然题目一般都是很泛化的纸上谈兵,但是45分钟内,你说的话往往能给面试官非常好的信号,让他对你有个不错的“解决问题能力”的评估。

过程比结果重要



作为一路名校卷到大的学生,很容易习惯式地把考试思维带入面试中,导致过分追求结果。系统设计面试,结果固然重要,但是过程比结果更重要,等级越高越是如此。我的个人主观感受:
  • L4:过程40%,结果60%
  • L5:过程60%,结果40%
  • L6+:过程80%+,结果20%-

等级越高,越需要在结果大致正确(大方向正确,小细节可以错误,只要是无关紧要的细节)的情况下做好过程。对于L6+的面试者,对于面试中你propose的每一个重要solution,都必须主动自圆其说,不能等面试官问了你再答。对于面试中最high level的那几个重要话题,更是要给足足够时间讨论tradeoff。因为“面试中最high level的话题”对应到工作中往往是“可以影响一个团队一年工作量的design decision”,在面试中忽略对这种话题的讨论往往意味着你在工作中达不到L6的标准。这里隐含的意思是,L6必须要能准确找出每次面试中“最high level最重要的话题”。这种要求对于L5可能有点过高,但是L5也要能在某些层面做出好的tradeoff的讨论(比如常见的数据库关系型vs非关系型的讨论)。如果完全无法做出tradeoff的讨论,整个面试就是在给出一个solution,而完全不讲你如何arrive at the solution,一般给面试官的观感就是“背了答案但是没理解”,一般顶多是L4的水平。

如何准备系统设计面试



首先,系统设计面试需要的素质都是在工作中可以习得的,如果你有幸能在工作中参与系统设计讨论,那肯定可以提高面试能力。下面我说说市场上已经有的材料:
  • DDIA(Designing Data-Intensive Applications):这本书对于面试来讲,很有助于打基础。读完以后对于理解每个面试题目的答案很有帮助。
  • Alex Xu的教程(ByteByteGo):面试题目的答案合集,只告诉你答案是什么,但是对于如何得到答案,只讲得蜻蜓点水(并没有很好的对于tradeoff的讲解)。
  • interviewing.io这种模拟面试网站:我强烈推荐所有人在正式面试前都去找模拟面试,如果现实生活中找不到靠谱的就去找这种付费的网站,有一定概率遇到靠谱的面试官帮你模拟,或者不愿意花钱就自己计时录像再回看都会很有帮助。只通过看书肯定是不够准备面试的,即使你在工作中开会经验再丰富,也会不适应面试中40分钟需要聊很多东西的快节奏。当你模拟面试完了,你才会意识到你脑中臆想的“面试中我要把这个那个全都讲到”根本是不可能的,你必须要很聪明地对话题做出取舍,等级越高越是如此(因为等级越高越需要再某些话题上多花时间聊tradeoff,那么就更需要舍弃不重要的话题)。


我的视频如何弥补市面上已有资料的不足



以上列出的三种准备渠道其实对于大多数人够用了,我三年前利用以上三个资料,也拿了很多L5的offer。今年我面完一波L6,立刻意识到市面上已有资料的不足(这里我们不谈那些提供模拟面试服务的网站,只谈DDIA和ByteByteGo这种公开资料或其他sys design视频):只教答案,不教过程。
  • 系统设计面试,过程太重要了,但是没有好的资料教如何做好过程。
  • 有些资料(比如ByteByteGo)对于有些细节讲得太细(这不是他的错,他只是把他会的都写上去了),导致经验不足的面试者会被误导,在面试中说出很多根本不值得说的无关紧要的技术细节,浪费了时间。
  • 所有的资料都太套路化,但是忽略了每次面试的题目都不一样(即使看起来一样的题目也可以有面试官个性化的调整),导致每个题目的切入点会不同(比如有的题目不应浪费时间做API Design,有的题目不应浪费时间做back-of-the-envelope estimation)。
  • 对于高等级的面试者,更是要针对自己的背景结合题目做出个性化的面试规划(我一般在面试的最开始5分钟会根据题目和自己的特点规划好整场面试着重讲哪几个点)。
  • 高等级的面试者还需要展现出更高更宽更深层次的思维,这个在所有资料中都没有提及(因为写资料的人也没几个真正solid的L6)。
  • 沟通太重要了,但是这些教程都不讲。好的沟通可以让你事半功倍地展示自己的想法。沟通不仅是把英语说流利(其实带有很重的口音都完全没关系),更是要做到不该说废话的时候绝对不说,遇到重点至少重复一遍保证面试官听懂,不断跟面试官确认是否达到了他的预期,能听懂面试官的各种明示暗示。

因此我用爱发电,组织了一个讨论小组,用讨论会的形式,教大家如何做好系统设计面试,特别是L6的级别。

为什么我要免费做讨论会和视频



我也是最近面了一波L6才意识到:我面试能力实在是太nb了,看着网上那么多教程都没有教到“如何做好过程”,不如就由我来填补这方面的空白。我想尽自己的一份力,提高北美科技圈华人的面试能力,从而让大家在职业发展上都多一份选择(你面试厉害了就有想走就能随时走的勇气和能力)。从个人情感上来讲,我对其他种族的人没有偏见(我个人也有很多印度好朋友);但是我个人还是对华人这个民族有深切的认同,从这个层面讲,我只会做中文的内容,只帮助华人,并且永远不会收费。


那些常见的系统设计资料的作者当然都很厉害,但是如果真的要说系统设计面试这个层面,我觉得我有潜力成为顶级的老师。因为我具有:
  • 30+次系统设计面试者经验
  • 50+次系统设计面试官经验
  • L5/6非常高的系统设计面试通过率
  • 工业界实战经验
  • 好的中英文表达能力


如何加入讨论组



我也就是这个月有点时间,想着组织几次讨论会顺便做点视频,等我没时间了就会停止组织。如果你想趁我还没停办就加入讨论组,请去System Design Guru这个频道,具体的方式在某个视频的评论区。

评分

参与人数 102大米 +120 收起 理由
Imtram + 1 赞一个
orz6699mxc + 2 欢迎来一亩三分地论坛!
生炒鸡好吃 + 1 赞一个
Shurrik + 1 格局打开了,希望频道能开通打赏支持
bearcat99 + 1 赞一个

查看全部评分


上一篇:[Google drive/Dropbox] update block的问题
下一篇:讨论一个微信朋友圈分组或Privacy Setting的数据库选型问题

本帖被以下淘专辑推荐:

全局:
> 我也是最近面了一波L6才意识到:我面试能力实在是太nb了,看着网上那么多教程都没有教到“如何做好过程”,不如就由我来填补这方面的空白。我想尽自己的一份力,提高北美科技圈华人的面试能力,从而让大家在职业发展上都多一份选择(你面试厉害了就有想走就能随时走的勇气和能力)。从个人情感上来讲,我对其他种族的人没有偏见(我个人也有很多印度好朋友);但是我个人还是对华人这个民族有深切的认同,从这个层面讲,我只会做中文的内容,只帮助华人,并且永远不会收费。

感谢群主用爱发电!

评分

参与人数 2大米 +2 收起 理由
lqzxy001 + 1 赞一个
resco + 1 赞一个

查看全部评分

回复

使用道具 举报

地里匿名用户
推荐
匿名用户-DTU4P  2024-4-15 00:18:40
本帖最后由 匿名 于 2024-4-14 12:22 编辑

谢谢楼主免费给大家提供这么有用的资料,能带头做这种事情,果然是人中龙凤。小小的一个建议,楼主可以考虑用独立的录屏软件可以录制高清的视频,会议软件的录制最高就720p了,这样可以极大的提高观看者的体验。还有是不是可以让Youtube自动生成字幕?当然,现在有的看就已经很棒了。另外纯属好奇就请教下,人声的音频处理是怎么做到的。再次谢谢楼主。
回复

使用道具 举报

推荐
 楼主| newgpu 2024-4-14 23:10:51 来自APP | 只看该作者
全局:
say543 发表于 2024-04-14 08:10:08
感谢lz 我只有看到subscribe 没看到怎么加入?
发邮件到newgpu657艾特 鸡妹儿
回复

使用道具 举报

全局:
非常解渴,感谢用爱发电
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-1DU9K  2024-4-14 04:06:17 来自APP
已加米,感谢大佬!华人就是要互帮互助
回复

使用道具 举报

全局:
product 组 侧重scenario 讨论 很多不关心分布式和scale。lz有这方面的经验吗
回复

使用道具 举报

🔗
kl_hrz 2024-4-14 10:22:49 来自APP | 只看该作者
全局:
非常感谢群主!用爱发电不易,希望有一天我也有这份能力把这份精神传下去
回复

使用道具 举报

🔗
半岛晴天 2024-4-14 11:11:05 | 只看该作者
全局:
感谢楼主!支持支持!!
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-DTU4P  2024-4-14 22:09:46
楼主能不能在chanel里做几个list,比如按时间排序全部视频的,按topic分类的
回复

使用道具 举报

🔗
 楼主| newgpu 2024-4-14 22:59:34 来自APP | 只看该作者
全局:
匿名用户 发表于 2024-04-14 07:09:46
楼主能不能在chanel里做几个list,比如按时间排序全部视频的,按topic分类的
等视频多了就做,现在才不到10个视频

评分

参与人数 1大米 +2 收起 理由
parkhunter + 2 谢谢您的回答

查看全部评分

回复

使用道具 举报

🔗
say543 2024-4-14 23:10:08 | 只看该作者
全局:
感谢lz 我只有看到subscribe 没看到怎么加入?
回复

使用道具 举报

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

本版积分规则

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