最近,FB依旧招人不断。
然而,有学员分享了自己在Facebook的面试经历,系统设计题没做好的他,现在非常担心已经跟梦想大厂失之交臂。
更惨的是这种现象,已经不是第一次了;我们先来看看Facebook到底考了什么题:题目:负载均衡器
为网站实现一个负载均衡器,提供如下的 3 个功能:
- 添加一台新的服务器到整个集群中 => add(server_id)。
- 从集群中删除一个服务器 => remove(server_id)。
- 在集群中随机(等概率)选择一个有效的服务器 => pick()。
最开始时,集群中一台服务器都没有。每次pick()调用你需要在集群中随机返回一个 server_id。LintCode答案
的确,近年来各大厂对于求职者系统设计能力要求越来越高,相应的面试题出现频率也逐年上升。一般来说,**算法轮决定了公司收不收你,系统设计的表现决定了给你title的高低。**系统设计表现不理想的话,通过、加面、凉凉都有可能。
系统设计的面试误区
滥用关键词:
在面试时,很多面试者会频繁使用以下关键词,但这种做法很有可能降低面试官的好感度。
-
Load Balancer
-
Memcache
-
NodeJS
-
MongoDB
-
MySQL
-
HDFS
-
Hadoop
work solution or perfect solution?:
面试官们不会以系统的完美程度来作为考察标准,而是看重面试者的表现和系统的可行性。
所以,在限定条件内展现自己的能力和知识储备,构建一个有细节,有整体框架的work solution,比憋出残缺不全满是漏洞的perfect solution更有意义。
系统设计的面试技巧
有效交流,carry要点:
系统设计的面试题往往比较简练,面试官们只会抛出一个最终需求,这就要求面试者主动并且有针对性地跟他们进行交流。
在直接沟通的过程中,表达自己对需求的理解,对大致框架的想象,对细节的考虑,对问题的发现、提出以及探索解决问题的方式…各个步骤都需要强大的知识库储备。这也就意味着准备时机械刷题的作用不大,在刷题中发现问题,总结经验,整理逻辑,权衡方案和做法的利弊才是关键。
巧用4s分析法:
虽然鼓励与面试官有效沟通,但是询问他们从哪里开始做起可不是good idea。
在这种紧急情况下,或许4S分析法可以为你找到思路。
4S
Scenario, Service, Storage, Scale
- Scenario 场景:需要设计哪些功能,到什么程度?
- Service 服务:将大系统拆分为小服务
- Storage 存储:数据如何存储与访问
- Scale 升级:解决缺陷,处理可能遇到的问题
在系统设计面试题中,4s方法的有效性已经被九章的学员证实,由此得到了面试官青睐。下一个得到4s方法加持成功上岸的人,会是你吗?
大牛老师已经总结好了最系统详尽的4s方法与技巧,就在九章算法的《系统设计班》
课程收获:
- 掌握系统设计面试时的技巧和要点;
- 对系统设计问题有更深入和全面的了解,能独立设计系统;
- 在实际案例中能更好的运用系统设计思想,能深入分析系统功能;
- 能解决大多数在面试中会遇到的系统设计问题。
试听内容
- 系统设计中常见的问题是什么
- 怎样回答系统设计问题
- 如何设计推特
试听方式:点击链接即可免费报名试听~
https://www.jiuzhang.com/course/28/?utm_source=sc-csdn-fks