计算机的书籍动辄几百上千页,作为学生真的有必要啃这些大书吗?如果有必要,该如何提高效率的看书?
更新于:2025-03-25 08:48:06

目前我大约看完了CSAPP,MIT的算法导论看了前800多页和后面小几百页,余下的部分不多。300多页的密码学书《Understanding Cryptography》,当时的《离散数学及其应用》也都基本看完了。目前读完页数最多的书是CSAPP。600多页的《经济学原理》当然还有一些其他不知名的CS书籍。

首先说必要性。如果你真的想了解CS的一个领域,那么读这个领域的经典教科书是一定需要的,而且尽量读完。如果想了解计算机组成原理,那么戴维的那本书一定要读。如果想学好离散数学,那么《离散数学及应用》也基本是必读。如果想成为一名合格的软件工程师,那么CSAPP也是必读。如果想用C开发UNIX相关,那么APUE也是必读的。如果想了解算法、可计算性等议题,那么《算法导论》也是必读的。

其次是题主需要克服看到这些厚书的心理问题。这个问题的最主要原因还是面对这些厚书产生了心理上的恐惧、畏惧,但是其实一本900页的书,你如果能养成习惯,静下心来,一天读30页,30天就读完了。一天读15页,那么60天,一天读10页,90天,也就三个月。我之前看书也是非常害怕的,但是后来发现当养成习惯后,有大把自己的时间看书时,书真不抗读,就怕你用这时间天天跟出去玩了。即使你只是明白了其中的6成,也是500多页的知识。

提高看书效率的建议:

1、对于有难度的书籍,比如物理、数学、计算机这些学科,可以试着在Youtube和B站上找对应的课程视频。CSAPP有CMU的,《Understanding Cryptography》也有Youtube对应的视频,离散数学的视频就更多了。看书其实更累更耗精神,而听别人讲则轻松很多,而且可以暂停与反复看,如果觉得容易可以加速视频播放,加快进度。

2、试着记录自己的学习的进度,并且计划自己的读书进度,我有一个文件夹,记录自己学习看书的进度,哪本书什么时候看到哪里了,一目了然,回头一看,一个月没看书了,我自己就羞愧了。下面是我看密码学的进度记录,我就是边看视频边学的。

# 密码学

Book 20190701 Christof Paar & Jan Pelzl 《Understanding Cryptography》 29

20200209 Christof Paar 《Introduction to Cryptography》2/24 modulus operation, groups and rings

20200305 Christof Paar 《Introduction to Cryptography》3/24 stream ciphers, random number gneerators, unconditionally

20200306 Christof Paar 《Introduction to Cryptography》4/24 stream ciphers, linear feedback shift register (LFSR)

20200307 Christof Paar 《Introduction to Cryptography》5/24 看书到61页 DES 完成1半

20200307 Christof Paar 《Introduction to Cryptography》5/24 看书到65页 DES 完成

20200318 Christof Paar 《Introduction to Cryptography》6/24 看书到65页 DES 解决与破解 但是对于IP SBox还是有疑问

20200319 Christof Paar 《Introduction to Cryptography》7/24 AES 完成第一部分,群、环、域,有限域:素数域与扩张域

20200320 Christof Paar 《Introduction to Cryptography》7/24 AES 完成,GF的多项式,域上的乘法,除法,与乘法逆

20200321 Christof Paar 《Introduction to Cryptography》8/24 书至106页 AES 内部 完成,Byte Substitution 以及 SBox 的构造(confusion),Shift Rows,Mix Column用到了矩阵乘法,所以,如果一个Byte中的bit被改,结果会通过矩阵乘法影响所有的(diffusion)

20200322 Christof Paar 《Introduction to Cryptography》9/24 AES 的模式 完成,ECB(electronic code book)、CBC(cipher block chain)、OFB (output feedback),但是GCM要自己看

20200329 Christof Paar 《Introduction to Cryptography》10/24 暴力破解,3DES安全性,书到144页,没完全懂,但是GCM大约明白

20200330 Christof Paar 《Introduction to Cryptography》11/24 egcd,phi function,Euler Theorem 书到170页,过于简单,egcd还可以,但欧拉定理证明没有

20200402 Christof Paar 《Introduction to Cryptography》12/24 RSA 公钥加密,还需要看剩余定理CRT、大素数的生成

20200404 Christof Paar 《Introduction to Cryptography》12/24 看书到204页,但是他没能讲出CRT的精神,但是素性测试与Padding还是有必要了解的

20200415 Christof Paar 《Introduction to Cryptography》13/24 书到216页,primitive element(generator) 循环群,子群

20200428 Christof Paar 《Introduction to Cryptography》15/24 书到238页,DHKE, Elgamal Encryption and protocol

20200430 Christof Paar 《Introduction to Cryptography》17/24 书到255页,ECC, ECDH

20200501 Christof Paar 《Introduction to Cryptography》18/24 DSA, RSA signatures algorithm

20200614 Christof Paar 《Introduction to Cryptography》19/24 RSA signatures algorithm, Elgamal Digital Signatures Algorithm, Existential Forgery Attack,, 从签名伪造原文的攻击方法。

20200621 Christof Paar 《Introduction to Cryptography》19/24 书到293页 RSA signatures algorithm,RSA可以加入固定的padding来解决。ECDSA与DSA类似都是用一个群与子群,只是ECDSA是在曲线上的群担任

20200623 Christof Paar 《Introduction to Cryptography》21/24 书到302页 Hash function SHA1

Hash functions. preimage resistance, second preimage, collision resistance, birthday attack, collision resistance.攻击碰撞hash次数与hash function结果位数(bits)的关系

20200624 Christof Paar 《Introduction to Cryptography》22/24 书到331页 MAC,只有authentication,没有repudiation,repudiation需要公钥签名

20200705 Christof Paar 《Introduction to Cryptography》23/24 书到341页Key Establishment

20200705 Christof Paar 《Introduction to Cryptography》24/24 书到351页 Man in the middle attack, CA

你看,这300页的书,读了5个月断断续续,也读完了。

另外还看了曼昆的经济学原理,北京大学出版社出的,主要在学CS以外找点乐子,同时也了解一下这个社会的经济运行,不要让自己总陷入一个领域。2019年开坑,2021年才看完。所以,你看,能够衡量你自己的看书的进度其实是非常重要的。我读的慢一些,因为已经平时需要工作。

20191228 曼昆《经济学原理》7 前言

20191231 曼昆《经济学原理》17 第1章完成 十大经济学原理

20190104 曼昆《经济学原理》42 第2章完成 像经济学家一样思考

20190114 曼昆《经济学原理》56 第3章完成 贸易的好处

20190114 曼昆《经济学原理》76 第4章完成 供给与需求

20190127 曼昆《经济学原理》94 第5章完成 供给与需求的弹性

20190131 曼昆《经济学原理》111 第6章完成 供给、需求与政府政策 工资供给与劳动供给,利用第5章与第4章

20190201 曼昆《经济学原理》130 第7章完成 生产者、消费者与市场效率 生产者剩余、消费者剩余,效率,平等

20190203 曼昆《经济学原理》143 第8章完成 供给、需求与税收,税收的代价,无谓损失

20190203 曼昆《经济学原理》162 第9章完成 国际贸易 关税

20190209 曼昆《经济学原理》179 第10章完成 外部性,对社会有正或负的收益即不索取或支付的行为

20190210 曼昆《经济学原理》193 第11章完成 公共资源

20190212 曼昆《经济学原理》213 第12章完成 税收的设计

20190213 曼昆《经济学原理》228 第13章完成 生产与成本

20190223 曼昆《经济学原理》246 第14章完成 市场竞争中的企业

20190303 曼昆《经济学原理》271 第15章完成 垄断,价格歧视有利于社会福利

20190323 曼昆《经济学原理》287 第16章完成 垄断竞争

20210322 曼昆《经济学原理》306 第17章完成 寡头oligopoly

20210324 曼昆《经济学原理》325 第18章完成 劳动市场经济学

20210326 曼昆《经济学原理》340 第19章完成 收入与歧视

20210326 曼昆《经济学原理》356 第20章完成 收入不平等与贫困

20210418 曼昆《经济学原理》398 第22章完成 微观经济学前沿

微观经济学完结,开启宏观经济学

20210423 曼昆《经济学原理》398 第23章完成 一国收入的衡量

20210501 曼昆《经济学原理》433 第24章完成 生活费用的衡量

20210501 曼昆《经济学原理》457 第25章完成 生产与增长

20210502 曼昆《经济学原理》475 第26章完成 储蓄、投资和金融体系

20210522 曼昆《经济学原理》499 第27章完成 金融学的基本工具,货币量,利率,市场有效、无效性,理性与非理性

20210522 曼昆《经济学原理》511 第28章完成 失业,有的人不想工作,或者退出了劳动队伍

20210523 曼昆《经济学原理》511 第29章完成 货币,主要讲美联储,贴现率,联邦基金利率

20210530 曼昆《经济学原理》550 第30章完成 倾向增长与通货彭胀

20210605 曼昆《经济学原理》573 第31章完成 开放经济的宏观流经学:基本概念

20210625 曼昆《经济学原理》573 第32章完成 开放经济的宏观流经学

20210724 曼昆《经济学原理》666 第35章完成 短期经济波动

20210725 曼昆《经济学原理》688 第36章完成 最后的思考

记录进度可以让你自己知道自己在读什么书,以及读的节奏大约什么样,要记录才能有效对自己的行为进行量化的评估。

3、记笔记。学习是一个积累的过程,随年龄生长,记忆力下降,很多时候,如果不时常回去看看很多东西会忘记。我有200多篇,2W多行的笔记。放在git上和好朋友分享,在编程中解决了什么问题,在书上看了什么有价值的内容,我都会有意识地记下来。也不限于技术,心理学、金融、炒股、生活技巧,无一不包。

4、一本书里遇到一小部分读不明白的东西,可以跳过,不要纠结,不要卡住,可以先把结论记住,比如RSA中的剩余定理和欧拉定理,可以不要关心怎么来的,如果证明没有看懂可以先试着带着这些结论向后读,后面的内容也不一定强依赖于前面,一个RSA没看明白,不影响看后面的其他算法。学习是螺旋上升的,我在读《算法导论》的时候,其实的RSA就死活没看明白死磕很久,作用不大,这还是算法发明者写的书。后面我把数论和密码学看了,回头看看只能说《算法导论》的RSA加密写的不算太好。

5、以一本书为主,结合多种资料。如果一定要搞明白某一章,但是比较吃力,可以暂时停下来,看看维基百科相关的内容,找找其他的资料来辅助。如果实在读不下去,说明自己没有到达这本书的水准,比如CSAPP,你如果连C语言和基本的x86汇编都不会,读这本书就会相当的吃力。此时你应该放下这本书,找本C语言和x86汇编的书或者视频看看。

6、多动手实践,试着把《算法导论》的算法用python实现实现写个二项堆、Fibonacci堆、AVL tree和RB tree试试,把CSAPP的作业和练习做一做,学网络的时候,玩玩Wireshark,看看HTTP是怎么搞的,不要只一味地读书。要实践与读书结合好,操作一遍你会加深你对这些内容的理解,计算机科学很多方向不是纯理论的,需要大量实践的,高手和普通人很大一部分就在于是不是真的自己动手做了,对于细节是不是清楚。