如何做System design面试

通常System design的问题都是开放性的,重要的是communication,需要面试者首先通过问问题,弄清楚系统的constraint是什么,系统输入是什么,然后画出类图,告诉面试官你的idea。

需要了解的知识点:

  • 并发:thread,deadlock,starvation。并行算法,一致性。

  • 网络:IPC,TCP/IP

  • 抽象:需要了解操作系统,文件系统,数据库的工作原理。

  • 不同系统的性能: 了解RAM,disk,SSD,network的性能

  • 估算:估算不同方案的性能,从而选出最优的

  • 可用性和稳定性:处理异常情况,如何处理网络失败。

如何准备:

  • 做模拟面试:找同事给你出design的问题

  • 真正的设计一个系统

  • 做估算

  • 阅读open source系统的代码,看看他们如何做设计

  • 了解操作系统和数据库的原理,可以借鉴解决问题的方法

Refer:

http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一部上线没多久豆瓣评分就高达9分的网剧实属罕见,这在一众徘徊在及格线的国产剧中简直是杀出的一股清流,《白夜追凶》定...
    床上冲浪阅读 260评论 0 2
  • 我喜欢互联网,因为是网络,让我结识了我这辈子最重要的几个朋友。 四年前的某一天,我们因为“军恋”这样的一个特殊群体...
    余生想你阅读 260评论 0 0
  • 这是随笔,写到哪算哪 【ViewModel的角色是什么】 ViewModel主要是为展示层(ViewControl...
    zard0阅读 756评论 0 1
  • 一分钟情侣: 五分钟卷舌运动: 百分百女孩, 极致诱惑定律 互换角色 突破现有禁忌,可以得...
    公子衣峰阅读 563评论 2 0