买二手车和lease车,分享些大攻略贴里没提到的小干货

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货

最近看过此主题的会员

E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
码农求职神器Triplebyte:
不用海投
内推多家公司面试
前Google华人高管创立
面试offer一键直通
Leap.ai助你进入热门独角兽
查看: 1532|回复: 20
收起左侧

[其他] 零基础系统设计真的只能死记硬背?如果想彻底补习,看哪些书比较好?

  [复制链接] |试试Instant~ |关注本帖
我的人缘0
finerve 发表于 2018-6-14 03:01:18 | 显示全部楼层 |阅读模式
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  90% (45)
 
 
10% (5)  踩

2018(7-9月)-[17]CS硕士+1-3年 - Other|BayArea 码农类General其他@Google在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
从研究生入学到毕业入职,leetcode摸爬滚打了3年,这是一条比较单一的,没有岔路的路,一直往前走就是了.

而系统设计却是基础为零,关键是,补习方法比刷leetcode更加多样更加五花八门.让人不知所从.

本来想只刷真题算了,可是发现如果没有基础知识,那些真题的回答真的全是靠死记硬背,稍微变形就不灵了. 来源一亩.三分地论坛.
. 1point 3acres 论坛
觉得还是从头补充知识比较靠谱比较全面.即使不是最高效的,却是最夯实的.所以有没有这样一本偏重基础+实战的书呢? 来源一亩.三分地论坛.

tl;dr
我不知理解得对不对,感觉面试系统设计是很模块化的知识,什么时候用cache,什么时候用load balancer,什么时候map-reduce,什么时候用sql或是mongoDB,就像是把一切有用的模块按正确的顺序拼接起来.(真正的构架师别打我,纯讨论面试)

如果我的理解是对的,那么有没有一本书,细致地讲解每一个模块的使用情形,和组合方式呢?

如果我的理解不对,那么怎样的一本书可以帮助补充系统设计基础知识呢?


欢迎大家集思广益,求各位大神指点!

此贴长期关注!


补充内容 (2018-6-14 04:28):
谢谢大家踊跃回答,但一些回答有一点"何不食肉糜".新手看不懂设计案例的痛苦,一知半解的纠结,和只能选择死记硬背的无奈,也许高起点的人没有体会过.万事开头难,一个全面彻底的开头再好不过,请大家focus基础二字,感谢!!

评分

参与人数 2大米 +15 收起 理由
liuzhe0320 + 10 很有用的信息!
O0ooo0O + 5 很有用的信息!

查看全部评分


上一篇:世界银行招聘Data Scientist 和 Cloud Security Architect,给办g4外交官签证
下一篇:请问compete offer的时候是否可以second price呢?

本帖被以下淘专辑推荐:

我的人缘0
stephenshaw 发表于 2018-6-14 04:52:37 | 显示全部楼层
本楼: 【顶】   100% (4)
 
 
0% (0)   【踩】
全局: 顶  90% (82)
 
 
9% (9)  踩
finerve 发表于 2018-6-14 04:20
感谢你打这么多字,不知你觉得看公司博客和podcast是否适合零基础学系统设计呢?

可以看出你基础深厚,但 ...

嗨,谈不上基础好,真是基础好的话就不会挂面试了。。

唔,我分享一下我的路子吧:
1. 上MIT的那个6.824,被虐死了,当时是初接触分布式系统,就是一个纯小白,一上来就去上那个课,每天就是啃那些分布式系统领域的论文,真的是啃,一遍遍的看,很痛苦。但是不知道啥时候,好像突然间感觉,诶,好像理解一些了哦,算是打了一些些基础。-google 1point3acres

2. 因为上面那段被虐的经历,我感觉自己基础还挺薄的,首先我就先回过头把OS和networks再复习了一遍,然后就想去学Hadoop,因为看很多人说学系统,Hadoop必须得看啊。刚开始看《Hadoop The definitive》那本书,然后看Hulu董西成的那本啥《Hadoop技术解析》,想跟着学习学习源码,惭愧得很,现在都没学多少。。
.留学论坛-一亩-三分地
3. 其实我挺没有毅力的,或者往好听点说就是我好奇心挺强的,我后面跑去学过Kafka, 学Kafka过程中了解了Zookeeper。Kafka刚了解皮毛,又跑去想学Canssandra, HBase。然后,again,中间一段时间又跑去了解RocksDB了。。。然后同样后面知道Docker后,有一段时间又跑去弄Docker去了,甚至有段时间跑去弄OpenStack了,然后现在又对Mesos感兴趣。。。整个过程就是经常去YouTube看各种Conference的视频,看教学视频,看博客,很杂很杂。。。。不过呢,学习这些东西的过程,也算是打开眼界的过程吧,而且在这个过程中了解了trade-off。
.本文原创自1point3acres论坛
4. 现在就到这个阶段,开始找公司的engineering blog看,听podcast。结合这段找工作的经历,强迫自己把看过的文章都转述出来,查看自己哪些地方是没理解的。这个阶段自我感觉进步是最快的。这就跟刷题一样嘛,你不知道的题,先看别人的答案和分析(对应公司的engineering blog),然后你得尝试把解法融会贯通,变成自己的东西。

现在回过头去想想,当时就是很迷茫的,甚至说很傻的,东一耙西一耙的,花了大量时间看了大量文章,视频,blog,而且其实从这些大量的文章、视频中,吸取的知识很少很少。。。。但是嘛,就感觉一点一点的,整个知识架构慢慢建立起来了。。。毕竟,谁知道当初看的那些个文章,那些个视频,会不会对未来有帮助呢。哈哈

我现在的状态是,可能啥都知道一些,啥都不精,所以面试时也很容易被问倒。也想找到一个特别感兴趣的点,深挖下去。

评分

参与人数 2大米 +8 收起 理由
sirius27 + 5 给你点个赞!
adh360 + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

我的人缘0
monsoonle 发表于 2018-6-14 03:58:47 | 显示全部楼层
本楼: 【顶】   100% (4)
 
 
0% (0)   【踩】
全局: 顶  100% (13)
 
 
0% (0)  踩
个人拙见,什么时候用什么都只是手段,系统设计的核心还是在需求到底是什么,应付的是什么样的场景,明确了问题以后,才轮到用什么方法来解决,写少读多更新少,那就上cache,写少读多但是更新非常频繁,那你不断更新cache也是一笔开销。 什么时候用SQL? 为什么会有noSQL? noSQL应该是SQL的补充, 尤其是做DS什么的, 很多时候祝需要读某一列做统计,但是你用SQL就得把所有行都读进去再取出数据,效率不高,这时候noSQL就很合适。但是如果你做电商类,有很多join操作,noSQL就有劣势了。 总体来说就是看场景选择手段,没有标准解,只有更合适当时场景的做法,再尽可能的考虑scaliblity,面试问清楚面试官具体想考察哪些场景就好了,一个小时根本不够全设计的。。

评分

参与人数 3大米 +9 收起 理由
woshiWLY + 3 很有用的信息!
asyz13jinage + 3 很有用的信息!
adh360 + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

我的人缘0
stephenshaw 发表于 2018-6-14 04:11:53 | 显示全部楼层
本楼: 【顶】   100% (2)
 
 
0% (0)   【踩】
全局: 顶  90% (82)
 
 
9% (9)  踩
作为一个每次面试,无论校招社招,必被问系统设计的人。。。感觉死记硬背肯定行不通的,系统设计没有正确答案的,都是各种trade-off,死记硬背,稍微多问两句就答不上来了。
. more info on 1point3acres
我的一点小经验把,多去看大公司的博客。一般,公司写博客,都会描述他们遇到的主要问题,然后解决思路,是什么情况下让他们选择怎样的方案。看完后,在洗澡时,尝试用自己的话把这个方案复述一遍,如果复述不出来,证明其中还有些部分没搞清楚,再去慢慢琢磨,Google啥的。还有就是多思考吧,脑洞大些,一个很有趣的问题,在网上看到的,为啥HDFS默认的replication factor是3?
. From 1point 3acres bbs
https://github.com/kilimchoi/engineering-blogs
这里面收集了很多公司的blog地址

睡前听听Software Engineering daily,这是个很好的podcast,每天会采访一个工程师。可以挑分布式系统的内容来听,听时多记录一些podcast中讨论的问题,比如设计存储系统时,如果schema不确定怎么办?nested field怎么解决??如果同时有OLTP和OLAP的需求,该怎么设计? 然后去那个工程师所在的公司的Engineering blog中去找相关博文看。
. from: 1point3acres
然后就是,可以去学习学习一些经典的系统,比如Hadoop的HDFS,看看源码吧,不过会很辛苦,需要毅力。

心中牢记取舍这个词就很好。学习系统很有趣,很多来源于生活经验。哈哈哈!
. 1point3acres
尝试回答楼主的一个小问题:什么时候用LB,什么时候用cache?
核心就是当系统用户量访问量上来后,怎么能让系统还能尽可能快的响应用户请求。单机肯定不行,那就多机分布式,Master-slave。若读操作多,那就读写分离,写只往master写,master与slaves们后台自己sync;读时可以从任一server中读。那到底该选哪一个读呢?上load balancer吧,分流,别让某一个负载过重。然后架构层面,在db前面加一层cache,某些频繁访问的内容,就放到cache中。提到分布式,这里面可能会有问CAP如何取舍之类的,无论是取A舍C,还是取C舍A,都有现成的系统,鲜活的案例,可以去了解那些系统的设计思想是啥。然后分布式必然也会问的fault tolerant相关问题,系统里master 挂了怎么办, slaves挂了怎么办之类的。

评分

参与人数 1大米 +5 收起 理由
O0ooo0O + 5 很有用的信息!

查看全部评分

回复

使用道具 举报

我的人缘0
fubini 发表于 2018-6-14 09:31:42 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  100% (4)
 
 
0% (0)  踩
强烈推荐一本好书:Designing data intensive applications

21.000+ students read the Road to learn React. The course weaves all the opinionated roadmaps into one roadmap to master React. It gives you all the fundamentals in React. You will build a Hacker News App along the way.

回复

使用道具 举报

我的人缘0
jenniferj 发表于 2018-6-14 03:18:06 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (2)
 
 
0% (0)  踩
关注关注一下~
回复

使用道具 举报

我的人缘0
EmiyaShiron 发表于 2018-6-14 03:22:27 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (4)
 
 
0% (0)  踩
关注一下关注一下
回复

使用道具 举报

我的人缘0
eins1179 发表于 2018-6-14 03:53:35 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  88% (37)
 
 
11% (5)  踩

建议先看一些youtube的系统设计视频(比如tushar roy的, 我觉得讲的很清楚), 掌握一些大概的系统设计题目的类别和套路, 然后对所有不熟的概念深入阅读。
github上的system design primer挺有用的,基本对每个系统设计会涉及到的概念都有介绍,也有具体的design实例。. 1point3acres

系统设计的知识的广度和深度的要求都很高。要有能力讨论tradeoff, 必须得有基础知识, 不然真的是需求一变就无话可说了。

评分

参与人数 1大米 +5 收起 理由
gongchen + 5 深度和广度

查看全部评分

回复

使用道具 举报

我的人缘0
 楼主| finerve 发表于 2018-6-14 04:17:10 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  90% (45)
 
 
10% (5)  踩
eins1179 发表于 2018-6-14 03:53
建议先看一些youtube的系统设计视频(比如tushar roy的, 我觉得讲的很清楚), 掌握一些大概的系统设计 ...
.留学论坛-一亩-三分地
请问公开课具体叫什么名字?如果从基础到高深排序,课程的名字都是如何呢?感谢啦
回复

使用道具 举报

我的人缘0
holybeast 发表于 2018-6-14 04:18:47 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  82% (46)
 
 
17% (10)  踩
分享一下我之前整理的帖子:http://www.1point3acres.com/bbs/thread-303697-1-1.html
回复

使用道具 举报

我的人缘0
 楼主| finerve 发表于 2018-6-14 04:20:59 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  90% (45)
 
 
10% (5)  踩
stephenshaw 发表于 2018-6-14 04:11
作为一个每次面试,无论校招社招,必被问系统设计的人。。。感觉死记硬背肯定行不通的,系统设计没有正确答 ...

感谢你打这么多字,不知你觉得看公司博客和podcast是否适合零基础学系统设计呢?

可以看出你基础深厚,但对于没有上过类似课程的人,你的建议又是什么呢?

再次感谢回答.

Learn React.js, Redux & Immutable.js while building a weather app

回复

使用道具 举报

我的人缘0
huoshankou 发表于 2018-6-14 06:10:51 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  97% (71)
 
 
2% (2)  踩
mark mark关注
回复

使用道具 举报

我的人缘0
 楼主| finerve 发表于 2018-6-23 07:29:36 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  90% (45)
 
 
10% (5)  踩
最近看了一些书籍,知识还是太零散.有的书着重讲的比如是数据库如何操作,甚至如何实现,不否认是很有用的教科书,但对于面试真的侧重点不对啊.
.留学论坛-一亩-三分地
继续求书!
回复

使用道具 举报

我的人缘0
O0ooo0O 发表于 2018-6-23 23:19:29 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  87% (58)
 
 
12% (8)  踩
一开始看design data intensive application 然后背tradeoff吧 面试就是背tradeoff 一个场景下为什么用a 不用会怎么样 为嘛不用b
回复

使用道具 举报

我的人缘0
gongchen 发表于 2018-6-24 00:43:39 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  85% (36)
 
 
14% (6)  踩
eins1179 发表于 2018-6-14 03:53
建议先看一些youtube的系统设计视频(比如tushar roy的, 我觉得讲的很清楚), 掌握一些大概的系统设计 ...
.本文原创自1point3acres论坛
感谢前辈的分享
.1point3acres网
请问这里说的“基础知识“指的是什么呢?是os和network么?还是system design specific的知识?. 1point3acres

目前还有几门课毕业的cs学生应该选哪些课为系统设计做准备呢?
回复

使用道具 举报

我的人缘0
 楼主| finerve 发表于 2018-6-24 10:13:39 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  90% (45)
 
 
10% (5)  踩
O0ooo0O 发表于 2018-6-23 23:19
一开始看design data intensive application 然后背tradeoff吧 面试就是背tradeoff 一个场景下为什么用a 不 ...

请问你看完了ddia?英文版还是中文版的?我感觉这书有些问题,比如前几章扔出个名词,又不多加解释,让人不知所云.
回复

使用道具 举报

我的人缘0
O0ooo0O 发表于 2018-6-24 12:35:10 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  87% (58)
 
 
12% (8)  踩
finerve 发表于 2018-6-24 10:13
请问你看完了ddia?英文版还是中文版的?我感觉这书有些问题,比如前几章扔出个名词,又不多加解释,让人不知 ...

英文版读了一遍 一般重要的词他都会特别解释一下 这书基本看完知道个大概 比啃paper舒服一点
回复

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|小黑屋|一亩三分地论坛声明

GMT+8, 2018-8-17 00:30

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表