System Design Interview Preparation
System Design 入门
System Design 学习目标与学习指引
学习如何设计大型系统。
为 System Design 面试做准备。
Interview Handbook
面试全流程准备指南
结构化准备简历、行为面与技术面,快速补齐短板。
学习如何设计大型系统
学习如何设计 scalable 系统,会帮助你成为更好的 engineer。
System Design 是一个很 broad 的话题。互联网上关于 System Design principles 的 resources 非常多。
这个 repo 就是把这些 resources 做了整理,帮助你学习如何 build scalable systems。
从 open source 社区学习
这是一个持续更新的 open source 项目。
欢迎贡献(contribute)!
为 System Design 面试做准备
很多 tech company 的面试里,除了 coding interview,System Design 也是必要环节。
练习常见的 System Design 面试题并把你的答案和示例解答进行对比:discussion、code 和 diagram。
面试准备的其他主题:
学习指引
基于你面试的 timeline(短/中/长)来复习推荐主题。

Q:面试需要掌握所有知识点吗?
A:不需要。如果只是准备面试,不必掌握全部。
面试会问到什么取决于:
- 你的 experience
- 技术背景
- 面试的职位
- 面试的公司
- 运气
有经验的候选人会被期待了解更多 System Design 主题。架构师或 team lead 需要更深入的 knowledge。顶级公司通常会有一次或多次 System Design 面试。
面试会比较 broad,然后在几个领域深入。基于 timeline、experience、role 和 company,调整复习策略:
- 短期 - 以 System Design topic breadth 为目标,通过做一些题来练习。
- 中期 - 以 breadth + 初级 depth 为目标,通过做很多题来练习。
- 长期 - 以 breadth + 高级 depth 为目标,通过做大部分题来练习。
| 短期 | 中期 | 长期 | |
|---|---|---|---|
| 阅读 System Design 主题 以获得对系统如何工作的 broad understanding | :+1: | :+1: | :+1: |
| 阅读一些你要面试的公司工程博客文章 | :+1: | :+1: | :+1: |
| 阅读 真实架构 | :+1: | :+1: | :+1: |
| 复习 如何处理一个 System Design 面试题 | :+1: | :+1: | :+1: |
| 完成 System Design 面试题和解答 | 一些 | 很多 | 大部分 |
| 完成 面向对象设计面试题和解答 | 一些 | 很多 | 大部分 |
| 复习 其它 System Design 面试题 | 一些 | 很多 | 大部分 |