工业界资深数据科学家现场教你修改求职简历
小K现场教你修改求职简历

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
高效直聘+内推,70%面试率
AI帮你免费完善简历
直击全美十万个科技职位
把贵司招聘信息放这里
查看: 1799|回复: 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更加多样更加五花八门.让人不知所从.

本来想只刷真题算了,可是发现如果没有基础知识,那些真题的回答真的全是靠死记硬背,稍微变形就不灵了.. 1point3acres

觉得还是从头补充知识比较靠谱比较全面.即使不是最高效的,却是最夯实的.所以有没有这样一本偏重基础+实战的书呢?.1point3acres网

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

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

如果我的理解不对,那么怎样的一本书可以帮助补充系统设计基础知识呢?. Waral 博客有更多文章,


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

此贴长期关注!

-google 1point3acres
补充内容 (2018-6-14 04:28):.本文原创自1point3acres论坛
谢谢大家踊跃回答,但一些回答有一点"何不食肉糜".新手看不懂设计案例的痛苦,一知半解的纠结,和只能选择死记硬背的无奈,也许高起点的人没有体会过.万事开头难,一个全面彻底的开头再好不过,请大家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是否适合零基础学系统设计呢?

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

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

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

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

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

评分

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

查看全部评分

回复

使用道具 举报

我的人缘0
monsoonle 发表于 2018-6-14 03:58:47 | 显示全部楼层
本楼: 【顶】   100% (4)
 
 
0% (0)   【踩】
全局: 顶  100% (17)
 
 
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,死记硬背,稍微多问两句就答不上来了。

我的一点小经验把,多去看大公司的博客。一般,公司写博客,都会描述他们遇到的主要问题,然后解决思路,是什么情况下让他们选择怎样的方案。看完后,在洗澡时,尝试用自己的话把这个方案复述一遍,如果复述不出来,证明其中还有些部分没搞清楚,再去慢慢琢磨,Google啥的。还有就是多思考吧,脑洞大些,一个很有趣的问题,在网上看到的,为啥HDFS默认的replication factor是3?
.1point3acres网
https://github.com/kilimchoi/engineering-blogs
这里面收集了很多公司的blog地址

睡前听听Software Engineering daily,这是个很好的podcast,每天会采访一个工程师。可以挑分布式系统的内容来听,听时多记录一些podcast中讨论的问题,比如设计存储系统时,如果schema不确定怎么办?nested field怎么解决??如果同时有OLTP和OLAP的需求,该怎么设计? 然后去那个工程师所在的公司的Engineering blog中去找相关博文看。
. visit 1point3acres for more.. 牛人云集,一亩三分地
然后就是,可以去学习学习一些经典的系统,比如Hadoop的HDFS,看看源码吧,不过会很辛苦,需要毅力。
. 围观我们@1point 3 acres
心中牢记取舍这个词就很好。学习系统很有趣,很多来源于生活经验。哈哈哈!

尝试回答楼主的一个小问题:什么时候用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% (5)
 
 
0% (0)  踩
强烈推荐一本好书:Designing data intensive applications
回复

使用道具 举报

我的人缘0
jenniferj 发表于 2018-6-14 03:18:06 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (3)
 
 
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)   【踩】
全局: 顶  86% (68)
 
 
13% (11)  踩

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

系统设计的知识的广度和深度的要求都很高。要有能力讨论tradeoff, 必须得有基础知识, 不然真的是需求一变就无话可说了。
.留学论坛-一亩-三分地. visit 1point3acres for more.

评分

参与人数 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的, 我觉得讲的很清楚), 掌握一些大概的系统设计 ...

请问公开课具体叫什么名字?如果从基础到高深排序,课程的名字都是如何呢?感谢啦

With React+D3v4 you'll learn the basics of building fast data visualization components in about an hour.


回复

使用道具 举报

我的人缘0
holybeast 发表于 2018-6-14 04:18:47 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  58% (65)
 
 
41% (46)  踩
分享一下我之前整理的帖子: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是否适合零基础学系统设计呢?

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

再次感谢回答.
回复

使用道具 举报

游客
请先登录

本版积分规则

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

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

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

GMT+8, 2018-10-19 15:06

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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