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

[经验总结] 【纯干货】资深面试官眼里的系统设计面试

     关闭
全局:

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

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

x
对于刚毕业初入职场的同学甚至是有一些工作年限的老司机来说,系统设计都是老大难的问题。一方面是系统设计题总数虽然不多,但同一题都能从不同角度考出花来,没有标准答案。另一方面是系统设计结构性不强,面试官讲一下设计个什么就等着同学解题,同学们不知道怎么一步步下手破题。

我在业界摸爬滚打近十年,曾在一线大厂做过近百场面试,其中一大部分都是系统面试,希望能够回馈社区,分享一些自己的干货,解答大家一些困惑,也希望抛砖引玉,大家一起讨论,不对的地方欢迎大家批评指正。

今天这篇文章会针对Software Engineer System Design Interview, 从面试官的角度解构系统设计面试。这篇文章不会给具体的题做过多的分析,也不对网上有很多资料的问题做赘述,而是给系统设计的考察目标,优秀答案的特征和破题的步骤三个角度给大家分析,作为别的资料的补充。

第一, 面试官的考察目标。
跟算法面试类似的,面试官需要能从人群里分辨出谁强谁弱。算法面试因为大家都刷Leetcode,如今已经很难分辨谁是当场想出来的,谁是刷过题记住的答案。系统设计面试因为覆盖面广,而网上资料又不能面面俱到,对于面试者的区分会更容易一些,这也是为什么系统设计越来越流行的,越来越年轻化的原因。
由于系统设计对面试官的知识和设计能力要求更高,通常系统设计的面试官更为资深,在debrief中话语权也更大(尤其是在定级别的时候),大家千万要重视起来,不要因此拿不到想要的offer和级别。
拆开来说,面试官会从以下四个角度去考察:
  • 交流沟通和理解能力 - 跟面试官充分交流理解所设计系统的目标,方便做设计中的tradeoff,在厂里干过的就知道日常工作中这个非常重要
  • 设计和架构能力 - 很多我见过的面试者都只注重在这块而忽略了其他,很可惜
  • 扩展性,容错性,延迟要求 - 跟Opeartion相关的要求,如今Dev和Ops不分家,希望面试者了解系统今后能如何扩展,易于maintain。
  • 资源需求 - 对于我们所要求的QPS和latency,需要多少台机器,其中CPU, 内存,硬盘等资源都是如何配置
大家看到这里可能要说,我要是有这个本事把这些都做的面面俱到,我就是顶尖的构架师了,自己做startup也不在话下。不得不说,要求确实很高,但不要忘记面试官除了决定给不给offer,还要决定给几级的offer, 面试官就是考你怎么造火箭,然后好给你定级别说去拧几级的螺丝钉。
当然,以上四点,根据同学们的实际情况,并不用在每一点上都给出完整的回答,面试官会在面试过程中指出深挖的方向,有可能是根据同学的专业或者职业背景,有可能是根据所面试的岗位,有可能是根据面试中同学提到的他熟悉的技术。

第二,优秀答案的特征。
在面试生涯中,我见过的最优秀的面试者比我的级别要高,让我印象非常深刻,四个字,深不见底。
面试的前半段,面试官会先从广度下手,要求受试者对题目的大框架给出一个完整的正确的解法。如果受试者给出了足够好的解法,那么面试官会从受试者的提过的某一个细部进行深挖,可能是深挖scalability,可能是改变一个需求要求重新做tradeoff,可能是某一个service的细节设计。因为其中的细节足够多,受试者一般很难准备得面面俱到,面试官可以比较清楚的画出受试者的能力边界。前面提到的这个受试者之所以让我感到深不见底,是因为我才疏学浅,画不出他的能力边界,不得不赞叹大神,在debrief中好好膜拜了一番。
说了这么多,还是想说平时的积累很重要,面试速成能够让你在广度上做的很好,深度方面还是要多花时间学习。
讲完了废话,讲一些可以操作性强的,我们来把前面说的考察目标和优秀回答的特征做进一步表述。
交流沟通和理解能力
  • 询问系统的商业目的,建这个系统是为了解决什么问题 (相关的问题比如这个服务的受众有什么特点,是商业用户还是个人用户。很多时候问不问这个问题就能看出Senior的程度)
  • 询问系统的功能和技术需求(比如DAU, QPS, Latency,包含哪些子功能。这部分网上内容很多,不赘述了)
  • 定义成功 (前面问了那么多,我们要总结说我们在面试结束前我们的设计要实现什么功能,达到什么QPS,latency或者availability指标。写下来并跟面试官确认。如果这里牵涉到一些ballpark calculation,跟面试官确认是不是需要算。)
  • 整场面试过程中跟着面试官的引导走(有的同学看到准备过的题就很兴奋,文思泉涌面试官都拉不住,会让人觉得理解能力不足)
您好!
本帖隐藏的内容需要积分高于 50 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 50 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

说了这么多,希望对大家有帮助。作为纯原创内容,希望也能给点大米。
文中提到了很多大块的内容没有深入去写,如果大家觉得哪一块想听,可以在帖子里留言,我也可以进一步说说。
另外,欢迎大家私信我你的问题和微信(大米少啊),我会尽量回复。


补充内容 (2020-1-6 07:40):
文中 扩展性是Scalability的翻译,中文有含糊的地方,大家照英文来理解。

补充内容 (2020-1-6 07:41):
我没有要贬低算法题的意思,算法题仍是面试最重要的部分,拿到offer的基础。

评分

参与人数 113大米 +336 收起 理由
kafkagre + 1 很有用的信息!
836195369 + 1 真的给力
可爱的小Sammi + 1 很有用
ppscyye + 1 给你点个赞!
alisashen + 1 很有用的信息!

查看全部评分


上一篇:请教5-10年经验的系统设计到底考什么
下一篇:有没有小伙伴一起刷系统设计讨论题目

本帖被以下淘专辑推荐:

推荐
 楼主| 罗辑Logic 2020-2-25 08:11:10 | 只看该作者
全局:
hxx800 发表于 2020-1-6 14:42
工作过程中 专注不同的领域,但是面试都面系统设计。很多岗位接触不到具体的系统设计成分。
我平时工作都 ...

其实大多数Entry-level工作中有机会做的系统设计都偏少,平时多注重跟一跟业界大型系统和开源系统的更新会很有帮助。推荐High Scalability博客。http://highscalability.com/

评分

参与人数 1大米 +2 收起 理由
hxx800 + 2 给你点个赞!

查看全部评分

回复

使用道具 举报

推荐
lz9527 2020-1-5 12:54:07 | 只看该作者
全局:
能具体来个面试题作为例子就好了

评分

参与人数 2大米 +4 收起 理由
phonger + 1 赞一个
laoxie09 + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

推荐
heronalps 2020-1-5 15:08:18 | 只看该作者
全局:
对于整个破题答题流程的描述非常精到!感谢分享!

另外提一点:中文语境下,常把Scalability翻译为“可扩展性”,我觉得不甚准确。首先它忽视了Scalability是在大小两个方向上的"扩展",Scale to zero经常是需求之一;另外,“扩展性”更适用于功能(functionality),所以对应Extensibility更合适。我认为Scalability叫做“线性缩放性”,更加适宜一点。请斧正!
回复

使用道具 举报

全局:
感谢分享,能否提供一些学习资料?
回复

使用道具 举报

🔗
wjw779 2020-1-5 12:52:20 | 只看该作者
全局:
同求学习资料
回复

使用道具 举报

🔗
Shelly0124 2020-1-5 13:50:18 | 只看该作者
全局:
如果有个具体例子就更棒了! 感谢
回复

使用道具 举报

🔗
wangdaye 2020-1-5 14:47:36 | 只看该作者
全局:
楼主的建议非常好。而且是难得的好建议。已经加分。如果能举几个例子就更好的。
回复

使用道具 举报

全局:
谢谢楼主的分享!
请问可以给些定义成功(success indicator)的例子吗

另外 如果能以一道题做个例子就好了
谢谢!
回复

使用道具 举报

全局:
写的很棒!加好友了 望通过
回复

使用道具 举报

全局:
我觉得现在系统设计偏后台 对mobile和前端来说有一定劣势 mobile一般工作中就做到API level的设计
回复

使用道具 举报

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

本版积分规则

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