CSAPP 的学习方法

总结《深入理解计算机系统》的学习方法

Posted by ZHR on March 21, 2018

学习材料

  • CSAPP 英文版/中文版
  • 15213 课程视频:课程官网,B站,youTube
  • 15213 Lab
  • NJU 袁春风:计算机系统基础及 MOOC 课程

学习方法

  • 看视频
  • Lab 和练习题
  • CSAPP 书籍和其他书籍
  • XMIND 和笔记
  • 知乎,Google
  • 找大牛
  • 书签标记法:方便每次阅读的整理和理解。
    • 开始书签:开始书签标记处为上一次阅读整理后的位置。
    • 结束书签:结束书签标记处为当次阅读但未整理的位置。
    • 开始书签和结束书签之间为当次阅读的内容,该部分内容需要进行笔记整理和理解。当笔记整理和理解完毕后,结束书签就变成开始书签,而原来的开始书签就可以抽出变成下一次阅读的结束书签。
    • 每一本书只能存在一对开始书签和结束书签。

学习目的

本书得出的重要结论之一就是,意识到高速缓存存储器存在的应用程序员能够利用高速缓存将程序的性能提高一个数量级。(P9)

学习 CSAPP 的目的,学习计算机系统中的核心概念理所当然是重点,但是作为一个程序员,如何在学完这些知识之后,能够使用这些知识写出性能更优的程序,这同样很重要。C 语言程序能够使用知识达到这种目的,其他语言当然也能够借鉴 C 语言程序的这些经验。

如何做笔记

笔记是用于记录重点和备忘的。一本值得反复研读的经典书籍,要对它做些笔记,但可能每一遍的笔记都不一样。这里对第一遍刷 CSAPP 时的笔记行为做一些限制。限制之内的笔记行为可以执行,限制之外的笔记行为则不可执行。制定这种规则的目的是在刷 CSAPP 这种大块头书籍的过程中始终保持一定高效性和目的性。顺便提一下,刷第二遍甚至第三遍时,这个规则应该会有所改变。

第一遍刷 CSAPP 的笔记行为限制

TO MARK

  • 使用铅笔进行笔记,这样方便涂改,不必令自己的过失伤害到书籍。
  • 标记书籍中出现的计算机系统本质的核心概念及其解释。CSAPP 的目的就是让读者从程序员的角度认识到计算机系统的本质核心概念,因此,这些知识点应当在第一遍时就被标记,以方便未来的整理和理解。
  • 标记书籍阐述各种概念时的脉络。第一遍刷 CSAPP 的时不仅仅要掌握计算机系统的核心概念,还要明白作者是如何将这所有的概念串连起来的,也就是从宏观以及相互作用的角度掌握计算机系统的核心概念。
  • 除了计算机系统的核心概念和 CSAPP 的脉络外,还有一种应当被标记的内容:与计算机系统核心概念以及 CSAPP 关系紧密的其他知识领域的核心概念及介绍,比如对 C 语言的特点的介绍。

DO NOT MARK

  • 不标记具体的技术细节。

刷书记录表

第一遍(20180327~20180515)

  • 计划 20180327 ~ 20180515 完成第一遍。
  • 阅读时长:每天 3 小时,每小时 5 页。
  • 整理与练习时长:完成阅读时长的内容,如果练习或 lab 耗费的时间太长,可以集中安排到周末。
  • 阅读时长时间段:5:30 ~ 8:30
  • 整理与练习时长时间段:白天闲时。

2018 年 3 月份记录表

0327 0328 0329 0330 0331