最近在看深入理解计算机系统(CSAPP),感觉看得好慢啊。。

2017-12-25 10:46:05 +08:00
 shaco

个人背景

211 本科,工作一年半,后端,但是大学专业并不是计算机(很多专业课都没有学过,但是自己粗略的看过一些),所以基本上都是自学的

疑惑

最近在看 CSAPP 这本书,看到讲汇编的这一章(突然发现看得好吃力,于是回过头去看王爽的<<汇编语言>>)。想起自己好像看 CSAPP 这本书已经两个月了(每天花一到两个小时看,一遍看一遍敲,所有课后习题都做完),发现进度真的很慢,如果照这样的进度下去,我觉得看完整本书估计至少还得半年,所以请教各位有没有高效一点的方法来看这本书,或者传授一点看书 or 学习的经验与方法

PS:我指的高效的方法并不是走捷径,而是换一种方式来读这本书,比如:

27757 次点击
所在节点    程序员
72 条回复
qwertty01
2017-12-25 15:23:30 +08:00
@feather12315 我来说一个对我特别有帮助的,最近在看《深入理解 java 虚拟机》,里面涉及的字节码指令,类文件结构,字节码执行引擎在这本书都有提到,虽然是 c 语言的。
ipwx
2017-12-25 17:17:01 +08:00
@bramblex 只是计算机系统的课分散在三年而已。我没写数学课、物理课、自选专业课(比如图形学、神经网络)。
shaco
2017-12-25 17:32:55 +08:00
@springsummer 其实我个人不太建议上来就看高级语言相关的书,要么学脚本语言做点东西,要么从底层开始学起,学汇编,c 语言
feather12315
2017-12-25 17:35:07 +08:00
@qwertty01 #41 对哒。
或许你以前没通过其他层面了解相关知识才这么感觉。
因为我学习专业课的时候都是课本+课外参考书 2/3 本结合着看,认真做课程设计 /大作业,外加捣鼓 Linux。这本书是我在近乎了解完 /接触过里面提到的东西才扫了一遍,就觉得没啥东西。而且因为实习接触了一些新的东西,超出了大学课本中的所学,更加觉得鸡肋了。
yuriko
2017-12-25 17:40:30 +08:00
这本书是我当年大二的专业课教科书,现在的新生应该放到大一下去上了。

从知识点深度来说,的确是入门书,基本上各个领域都有恰到好处的点到为止,基本上也就是把原理介绍清楚的程度又不过度涉及具体的实现细节。

但这本书的确不算简单,因为很少有同类的书给你去做铺垫,以至于很多知识面需要从新去认知,并不是很容易去一下子去读懂,何况整个计算机系统又复杂。

想想我们当年科班,虽然是面向低年级的课程,但也好歹也是 985 要上两个学期的课程。


这门课书面部分还不算难的……你还可以挑战下 Lab 部分……
luoluoluo
2017-12-25 17:49:29 +08:00
我最喜欢的一本书,看完后感觉像是推开了一扇新世界的大门,这书读起来非常爽,加油~
shaco
2017-12-25 17:50:34 +08:00
@feather12315 对,我也觉得应该是我了解的知识太少以及太浅,所以才导致看书感觉进度很慢,看书的过程也会遇到很多难点
hadoop
2017-12-25 17:50:54 +08:00
少年,别着急,耐心看完绝对有收获
daliang
2017-12-25 18:04:18 +08:00
我之前也和你一样,书想很快读完,读完就可以读下一本了,感觉这样比较好.
其实我觉得这样并不好,读书的效果不能保证,很多内容读完要停下来想一想才能理解的更深刻,粗糙的看一遍,你看完了又能怎么样,合上书,原来会的现在还会,原来不会的依然不会,没有什么意义这样.
如果你慢慢读,表面看的很慢,实际是最快的.因为你一次性把大部分东西都掌握了,而草草读了很多本读完依然那样.另外读书慢了容易体会到搞懂一点知识,看明白一些内容的快乐.如果很急躁,快乐是没有,只是感觉自己在赶任务,体验不好.
shaco
2017-12-25 18:06:45 +08:00
@daliang 很有道理,我好像懂一点了,说到底还是要静下来,读书不能太浮躁,太功利
nicktogo
2017-12-25 18:30:13 +08:00
当然是跟 CMU 的上课视频,YouTube 应该有,看 15 年秋季的,是两个作者亲自上的课。
VicaYang
2017-12-25 22:03:23 +08:00
习题不一定全做,八个 lab 还是得啃的,啃 lab 比看书还舒服
zouzou
2017-12-25 23:34:34 +08:00
cxbig
2017-12-26 03:31:21 +08:00
陌生的东西慢是正常的,用心并坚持下去就会越来越快。
rocksolid
2017-12-26 08:16:01 +08:00
你这速度已经不慢了,快了记不住也没用啊
jimzhong
2017-12-26 08:56:19 +08:00
@qwertty01
5.8  循环展开 348
5.9  提高并行性 351
5.9.1  多个累积变量 351
这三个都依赖处理器架构。如果没有支持乱序执行的超标量处理器,这些优化都没有效果。
缓存不在第五章。
wweir
2017-12-26 09:32:29 +08:00
一年前刷了这本书,断断续续花了 4、5 个月,有效看书的日子大概两个月。

经验就是:实在看不懂的地方,就用刷的方式看吧,不讲求看懂,混个眼熟。
Y86 有一部分我就是这么看的,并不影响对后面章节的理解。

整本书看完,感觉给自己对计算机的认知带来不少提升
wweir
2017-12-26 09:40:43 +08:00
对了,千万别信什么看不懂就停下来慢慢看的话。

作为一本入门书,里面没有多深奥的知识,很多看不懂的地方是和已有知识体系的关系比较远罢了。想搞懂,需要补充大量其它领域的基本概念,给自己的提升未必有多大。

最重要的是:一直陷在困难章节里面,读书体验太差,很快你就会坚持不下去
shaco
2017-12-26 09:42:40 +08:00
@wweir 好,多谢建议
theeeeeeeo
2017-12-26 09:50:48 +08:00
同在啃这本书,一年前买的,当时根本看不懂,现在越看越有意思。。。
共勉

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/417357

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX