[编程开发] 如何有效阅读《C++ Primer》那么厚的书

[复制链接]
无名小辈8 发表于 2023-11-8 20:01:59|来自:福建 | 显示全部楼层 |阅读模式
~文末有福利~
我就是那种正面刚大部头的选手,这些年读过的工作相关的“砖头”大概有《c++primer》,《Windows核心编程》,《算法导论》,《unix网络编程》,《STL源码剖析》等等吧,投资、社科等类型的与本题无关就不一一列举。在阅读方面我还是能分享一两点经验。
要有强烈的动机
大部头的书通常艰深难懂,内容又出奇地多,阅读过程非常烧脑难以坚持,很容易看到一半就放弃。因此在翻开书之前就应该确定自己是否有强烈的动机。
你为什么要看这么厚的书?不看《C++Primer》,换成《21天精通C++》可不可以?如果不可以,给自己一个非看不可的理由,这个理由就是你的动机,是你达成目标后可以获得的某种东西,这个东西对你来说意义非凡。
比如我大学时看《WINDOWS游戏编程大师技巧》,是因为我高中制作过一个非常有意思的桌游,大学学了编程就有强烈的意愿要电脑上实现出来,但学校教的内容无法支撑我的想法(学校只教控制台编程),因此我有了看这本书的动机。
保持专注
现在是碎片化学习时代,可以在坐公交时用百词斩背几个单词,可以在排队买单时一篇公众号的文章,可以在开车时收听喜马拉雅FM里的课程。这些内容都是专门为碎片化的场景设计的,不需要很专注就能完成学习。
学习大部头的厚书则不一样,阅读大部头需要深入思考,大脑进入专注状态才能进行深入思考。并且进入这种状态需要十几分钟预热,一单被打断就要重新预热,因此阅读之前需要做一些准备工作:

  • 充足的时间
  • 安静的环境
  • 远离手机、零食等让你分心的东西
  • 尝试使用番茄工作法。(中途休息不会中断专注状态,只有转移注意力的事才会中断,比如浏览新闻、回复微信等)
阅读方法
每章至少读两遍。
第一遍快速通读。这一步的目的是快速对章节内容有一个整体的把握,了解这一章大概讲了什么东西。
阅读的时候逐字逐句把内容完整看一遍,如果有你熟悉的内容可以跳过。这个过程中把自己认为重要的内容、不理解的概念、看不懂的逻辑等做好标记。不建议看到不懂的东西就停下来死磕,除非不弄明白真的无法读下去。
第二遍深入精读。第二步的目的是完成学习内容的全面理解。如果说第一步是绘画打草稿,第二步就是给草稿加上细节。




这一步具体看什么:

  • 概念。概念在不同类型的书里可能是不同的东西,比如公式、定理、定义、论点等。确保自己理解了每一个概念。
  • 逻辑。概念是怎么来的,公式定理如何被证明和推导,概念之间存在怎样的关系。关键在于理解逻辑推导的思维过程。
  • 例子。概念和逻辑如何被使用,很多人认为例子不属于干货,看概念就可以了。实际上例子可以有效地帮助理解概念。
如何高效阅读
真正的高效阅读,就是慢慢读。当你以“把书看完”为目标,希望快速阅读时,基本上已经和效率说再见了。这样很容易出现眼睛在看,脑子没动的情况。
大家应该都有这样的经历,从书上学到一个知识认为自己懂了,然后用它去做题、考试、工作,结果遇到困难无法解决。于是就上网找各种资料找解决方案,最后发现书上把详细的步骤和问题的分析都写了一遍。所以高效阅读真的高效吗?
想缩短阅读时间有一个办法,就是不要全部看完。一本600页以上的厚书,要么由浅入深跨越了好几个层次,要么事无巨细内容广泛,可以肯定其中有很多章节对你来说是用不上或理解不了的。这些内容对此时此刻的你来说,并不是那么重要。因此可以不看,或只做第一步快速通读。
看不懂怎么办
看不懂通常是因为:

  • 缺少前置知识。有些知识,作者默认你懂,但你可能不懂。这就需要上网把所有不懂的内容全部查一遍,搞懂为止。
  • 逻辑过于抽象复杂。尝试自己动手推导逻辑,画图帮助理解。如果是可以操作的知识,比如编程,就实际去操作几次。
还有一种情况是自认为懂了,其实没懂。比如高中上数学课的时候感觉都听懂了,做起题来就完全不会。这是因为我们只是浅层面的“懂了”,但没有深层的理解。
可以尝试用费曼技巧提升理解层次。把你刚学到的知识写出来,但要假设读者是5岁的孩子或80岁的老人,要怎么写才能让他们也能学明白?当你能给5岁的孩子或80岁的老人解释清楚时,就是真的理解了。
看完就忘怎么办
没有人能过目不忘,这事和背单词是一个道理,我曾学习各种背单词的技巧,什么联想法,词缀词根,艾宾浩斯记忆曲线等,这些技巧确实可以提高背单词的效率,但时间久了还是一样忘得一干二净。
这是因为背单词是一个短期行为,你无法让背单词成为生活的一部分。而使用英语可以是一个长期行为,你可以让英语变成生活的一部分。如果你每天都用英语阅读文章,用英语对话,就不会忘记单词。
阅读也是一样,各种阅读技巧、笔记技巧确实可以提高当时的效率。但想要获得长时间的记忆,就要把书中的内容用于实践,你要用这些知识来通过考试,用来完成工作,唯独不要用来假装自己看完了就很厉害。如果为了学一个用不上的东西看大部头厚书,无疑是自虐。
-------------------------------------
如果文章对你有帮助,请用力点赞~
-------------------------------------
最后,福利时间~
关注公众号CPP实战训练营,回复“体验课”,免费领取《C++进阶游戏项目实战培训》体验课内容。
这是我为学习C++语法后缺乏训练的同学设计的项目实战进阶课,想要提升编程、设计能力的同学点击链接了解详情:
C++进阶游戏项目实战培训招生
全部回复20 显示全部楼层
宾利雅致 发表于 2023-11-8 20:02:23|来自:福建 | 显示全部楼层
自虐式的成长,不外乎如此
hao898 发表于 2023-11-8 20:03:05|来自:福建 | 显示全部楼层
没那么复杂,看不懂是因为没到看懂的时候,等知识积累得多了,疑惑多了,再去看就会有豁然开朗的感觉
hai-er 发表于 2023-11-8 20:03:59|来自:福建 | 显示全部楼层
总结的很好。c++ primer最近又系统看了一遍。数据结构、基本语法、std部分看得比较快,其他部分头脑清晰的时候硬钢就好了。结论就是,这本书虽厚但是看完以后觉得蛮简单的。
o0runner 发表于 2023-11-8 20:04:56|来自:福建 | 显示全部楼层
慢慢看就好了,定个计划每天看一点。primer我前前后后看了五遍。
叛逆∵生活 发表于 2023-11-8 20:05:09|来自:福建 | 显示全部楼层
最近正在看primer,有点多,每天都在学,然后敲代码。加油鸭自己~
cn521 发表于 2023-11-8 20:05:42|来自:福建 | 显示全部楼层
看到的书有两类,基础理论和工具应用。
基础理论要精读,反复读。
工具应用要通读,留有印象即可,用到再翻。
闲得蛋疼了,可以先通读,快速翻阅,记忆力好的,翻完就记得了。记不得也有个印象,以后用到了可以再翻。然后,觉得有用,有意思再精读。
ttitp 发表于 2023-11-8 20:05:49|来自:福建 | 显示全部楼层
c++ primer还算好懂,难的是那种数学性很强的书,坚持看几十页就头大
hqw333333 发表于 2023-11-8 20:05:54|来自:福建 | 显示全部楼层
C++Primer这种书适合睡前看一看,特别会治疗失眠。
ues6858 发表于 2023-11-8 20:06:17|来自:福建 | 显示全部楼层
答主讲得很好,解了我一些阅读上的困惑,谢谢。
123下一页
发帖

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则