面Facebook E5降E4,6年老司机心态崩了…

有网友说面FB E5,6年工作经验,但最后只给了E4。

(图源:1024)

一般FB内部2年左右就能3升4了,现在妥妥down level了。只因系统设计面试不够strong,还被说是:过度设计!

过度设计”是许多面试者的通病,这代表:

1.设计者缺乏对业务和需求的精准理解;

2.没有对功能做出权衡取舍,忽略了复合成本,最后很可能投入巨大但收益甚微。

因此,“过度设计”在面试中也被视为Red Flag。另外,系统设计面试中还有几个常见的错误需要注意:

  • 没弄清需求就给方案
  • 思维狭窄,考虑不全面
  • 固执己见,不懂得变通

“聊天系统”回回考,通过却很少

来看一道FB系统设计原题:“设计一个Snapchat/whatsapp”其实谷歌/亚麻/微软等很多公司都考过,能顺利通过的却很少,都说见过这道题,面完却还是跪,原因很可能是:

  • 不懂得和面试官交流需求(比如日活多少?需要什么功能等)
  • 日常"拧螺丝",缺乏完整的系统设计经验(没有做过完整的系统,面试容易卡壳)
  • 没有优化经验,不知道怎么将系统优化成高可用、高扩展

虽然系统设计的难点在没有标准答案,但也并不是毫无方法可循的。

九章的老师(同时也是硅谷大厂的资深架构师)总结出了一套“万能公式”——4S分析法.

1 Scenario场景:需要设计哪些功能,到什么程度?**

系统设计面试中,不加思考迅速给方案是大忌,正确的做法是与面试官沟通需求,收集构建系统所需的所有信息。比如你可以问这些问题:

  • 我们要构建哪些特定功能?
  • 该产品有多少用户?
  • 公司预计将以多快的速度扩大规模?
  • 公司的技术栈是什么?您可以利用哪些现有服务来简化设计?

2 Service服务:将大系统拆分为小服务

根据第一步收集的需求,为每个需求添加一个服务,再归并相同的服务,你需要把面试官当做一起工作的伙伴,及时要求反馈:

  • 依据需求添加服务。
  • 对于同一类问题的逻辑处理归并在一个Service中。
  • 把整个System细分为若干个小的Service。

3 Storage 存储:数据如何存储与访问

拆分完小服务后,你需要考虑数据如何存储与访问,做出一个可以work的solution:

  • 对每个Service选择合适的存储结构 。
  • 细化数据表单 。
  • 画图展示数据存储和读取的流程。

4 Scale升级:解决缺陷,处理可能遇到的问题

最后一步,面试官会和你确定系统瓶颈并讨论改进方式,这时千万不要说自己的设计是完美的,总会有一些需要改进的地方。

因为这是展示你批判性思维并留下好印象的绝佳机会。

  • 错误案例(服务器故障,网络丢失等)值得讨论。
  • 如何监视指标和错误日志?如何推出系统?
  • 后续如何扩展系统?

这套4S分析法,可以套用绝大部分面试当中的系统设计,将难点逐一击破。

具体如何在有限的条件内构建有细节/有整体框架的work solution,欢迎大家免费试听体验:系统架构设计 2020版

像刷算法题一样学系统设计

另外,课程还搭配了42道ladder,都是精选的大厂高频系统设计题,这可是其他同类课程没有的专属福利!

真正做到像刷算法题一样学习系统设计,4周就能掌握系统设计的核心知识。

L4变L5,只差一道系统设计

面试review时,系统设计的面试官通常拥有最高话语权

也就是,这轮的面试官决定你能否通过,也决定了你的Level和Package。系统设计答拿到strong,升一级或者涨薪都是非常有希望的。

我们的一位学员面谷歌L4,被recruiter要求加面一轮系统设计,最后幸运的通过并拿到了L5,包裹直接多了5万刀!

18大核心考点,全面覆盖面试难点

为了帮助大家更好的冲刺大厂,最近《系统架构设计 2020版》做了全面升级,比起旧版**新增了5节直播课,达到了30个课时,真正的加量不加价!

另外,课程全面覆盖学员高票选出的系统设计知识点和面试考点,一共18大核心考点帮助大家全面攻克系统设计。

适合谁

  • 求职后端岗,缺乏系统设计基础
  • 缺乏大型项目开发机会,不懂实际应用
  • 马上要参加面试,却对系统设计一窍不通的new grad
  • 长期重复同样的工作,跳槽/晋升困难

讲师介绍

戳我即可免费报名本周六直播