专栏名称: 九章算法
专业的北美IT求职经验分享、技术交流社区,帮助你找到好的IT工作。由硅谷顶尖的IT企业工程师授课,提供专业的算法培训/面试咨询。官网:www.jiuzhang.com
分享
今天看啥  ›  专栏  ›  九章算法

没答好系统设计,就一定进不了Facebook?

九章算法  · 公众号  · 算法  · 2019-08-20 02:00
近期,有学员分享了自己在Facebook的面试经历,系统设计题没做好的他,现在非常担心已经跟梦想大厂失之交臂。



的确,近年来各大厂对于求职者系统设计能力要求越来越高,相应的面试题出现频率也逐年上升


但是在系统设计面试中,“题目是否做的完美”并不是衡量面试者的唯一标准,更重要的是在解题过程中的整体表现同期竞争者的表现解题时体现的思维深度和广度以及面试者本身的经历是否匹配现场表现等因素,都会被仔细考虑。


一般来说,算法轮决定了公司收不收你,系统设计的表现决定了给你title的高低。系统设计表现不理想的话,通过、加面、凉凉都有可能。所以面了以后就不要想了,现在想再多也于事无补,好好准备下一家,没准过几天有惊喜呢。


现在就让我们来看看Facebook到底考了什么题:


题目:负载均衡器
为网站实现一个负载均衡器,提供如下的 3 个功能:
  1. 添加一台新的服务器到整个集群中 => add(server_id)。
  2. 从集群中删除一个服务器 => remove(server_id)。
  3. 在集群中随机(等概率)选择一个有效的服务器 => pick()。


最开始时,集群中一台服务器都没有。
每次pick()调用你需要在集群中随机返回一个 server_id。



LintCode答案




《系统设计求职大礼包》


领取方式见文末


系统设计的面试误区


盲目滥用关键词

在面试时,很多面试者为了展现自己的能力会频繁使用Load Balancer, Memcache, NodeJS, MongoDB, MySQL, HDFS, Hadoop 等关键词。但这种做法很有可能降低面试官的好感度


需要设计的系统限定条件往往比较小,面试者们并不知道它的对象有多少。如果面向对象只有个位数,拿这些大关键词去构建,显然是不够专业的表现。


万一碰上相关领域的大牛面试官,可真是鲁班门前耍大刀了。


work solution or perfect solution?


一些面试者会在系统设计面试中努力构建一个“perfect solution”。但是无论是短暂的时间还是不够具体的要求,都暗含着这一努力的无法达成。面试官们当然也明白这一点,不会以系统的完美程度来作为考察标准,而是看重面试者的表现和系统的可行性


所以,在限定条件内展现自己的能力和知识储备,构建一个有细节,有整体框架的work solution,比憋出残缺不全满是漏洞的perfect solution更有意义。


系统设计的面试技巧


有效交流,carry要点


系统设计的面试题往往比较简练,面试官们只会抛出一个最终需求,这就要求面试者主动并且有针对性地跟他们进行交流

在直接沟通的过程中,表达自己对需求的理解,对大致框架的想象,对细节的考虑,对问题的发现、提出以及探索解决问题的方式......各个步骤都需要强大的知识库储备。这也就意味着准备时机械刷题的作用不大,在刷题中发现问题,总结经验,整理逻辑,权衡方案和做法的利弊才是关键。


巧用4s分析法


如果拿到不够具体的面试题毫无头绪应该怎么办呢?

虽然鼓励与面试官有效沟通,但是询问他们从哪里开始做起可不是good idea。

在这种紧急情况下,或许4S分析法可以为你找到思路。


4S


Scenario, Service, Storage, Scale


  • Scenario 场景:需要设计哪些功能,到什么程度?
  • Service 服务:将大系统拆分为小服务
  • Storage 存储:数据如何存储与访问
  • Scale 升级:解决缺陷,处理可能遇到的问题 


在系统设计面试题中,4s方法的有效性已经被九章的学员证实,由此得到了面试官青睐。下一个得到4s方法加持成功上岸的人,会是你吗?


大牛老师已经总结好了最系统详尽的4s方法与技巧,就在九章算法


《系统设计班》


学员反馈




课程收获



  • 掌握系统设计面试时的技巧和要点
  • 对系统设计问题有更深入和全面的了解,能独立设计系统;
  • 在实际案例中能更好的运用系统设计思想,能深入分析系统功能;
  • 能解决大多数在面试中会遇到的系统设计问题。


课程亮点


  • 硅谷顶尖IT工程师授课,带你了解顶级标准;

  • 真实案例深入分析,把系统设计知识落实到实际应用;

  • 理论和实战相辅相成,边学边练巩固提高。知识掌握得更加踏实!

  • 无需任何算法基础和系统设计基础轻松上阵,收获满满!


讲师介绍


东邪  顶尖IT工程师

曾任职于亿级活跃用户的社交网络公司,拥有多年网站开发经验,擅长网站架构和数据库。


老顽童  全国信息学竞赛金奖获得者,量化工程师

国内TOP3名校毕业,北美哈佛大学留学交流。斩获谷歌,Facebook,微软,高盛等对冲基金offer。


试听内容


  • 系统设计中常见的问题是什么
  • 怎样回答系统设计问题
  • 如何设计推特


试听方式


扫描下方二维码即可免费报名试听

或点击文末“阅读原文”


如何领取《系统设计求职大礼包》


扫码添加助手九章算法-小葵

回复口令「系统设计设计美好未来

并提供本课程报名截图

 

小葵会在两个工作日内发放福利


今天看啥 -
本文地址:http://www.jintiankansha.me/t/39MCEHo6sN