D40.1.0 为什么读技术书籍总是“从入门到放弃”?

这篇文章是李笑来《自学是门手艺》的读书笔记,书中的一个章节是关于“
如何从容应对含有过多 “过早引用” 的知识?

注:文章中引用部分都是摘自李笑来《自学是门手艺》一书。

进而想到,为什么读编程书籍会如此痛苦,以致于现在靠“C++吃饭”的我还是没认真读完一本C++编程书籍?同样,为什么总是这么多人“21天,从入门到放弃了?”

我认为最大的障碍就是文章中提到的“过早引用”,是过早引用让我们读懂了第一节之后,后面的章节越读越不懂,越不懂越觉得枯燥,一枯燥就只好放弃。

所谓的过早引用是指:想要理解当前的知识点,需要依赖对以后才能开始学习的某个甚至多个知识点的深入了解……

比如说很多编程教材都会让我们输出”hello world!”字样,对应的代码可以是:print(‘hello world!’)。但是刚开始学某个编程语言的时候,我们不可能知道print函数的实现原理是什么,只知道这个函数可以这样用,需要学到若干章节之后才会知道这个函数的实现原理。

工作中、生活里,充满了各式各样的 “过早引用”。为什么总是要到多年以后你才明白父母曾经说过的话那么有道理?为什么总要到孩子已经长大之后才反应过来当初自己对孩子做错过很多事情?为什么在自己成为领导之前总是以为他们只不过是在忽悠你?为什么那么多人创业失败了之后才反应过来当初投资人提醒的一些观念其实是千真万确的?—— 因为很多概念很多观念是 “过早引用”,在当时就是非常难以理解……

那该如何应对过早引用?作者给出以下几点方法。

1. 不懂也要硬着头皮读完

书中说道:

充满了过早引用的知识讲解,就不可能是一遍就读懂的。别说这种信息密度极高的复杂且重要的知识获取了,哪怕你去看一部好电影,也要多刷几遍才能彻底看懂……

所以,从一开始就要做好将要重复很多遍的准备,从一开始就要做好第一次只能读懂个大概的准备。

拿到技术书籍的时候,就没想到过要硬着头皮读完的策略。因为总觉得前面没读懂,后面更读不懂,浪费这时间干嘛。但是硬着头皮读完确实会带来至少一个好处:在后面章节里读到了前面章节的过早引用,然后就能消解大量的过早引用,减少了理解负担,所以当读第二遍的时候,好像更能明白作者说的是什么意思了。

所以读技术书籍的时候,要有个心理准备:我不可能一遍就把这本书读懂,不可能一遍就把这本书理解,一定需要很多很多遍;并且第一遍读不懂没关系,即便读不懂也要硬着头皮把这本书读完。

2. 磨练 “只字不差” 的能力

若是为了习得新技能去阅读,就要施展 “只字不差地阅读” 这项专门的技能。

对,“只字不差地阅读” 是所有自学能力强的人都会且都经常使用的技能。尤其是当你在阅读一个重要概念的定义之时,你就是这么干的:定义中的每个字都是有用的,每个词的内涵外延都是需要进行推敲的,它是什么,它不是什么,它的内涵外延都是什么,因此,在使用的时候需要注意什么……

很有趣的一个现象是,绝大多数自学能力差的人,都是把一切都当作小说去看,随便看看,粗略看看……

你有没有注意到一个现象,人们在看电影的时候,绝大多数人会错过绝大多数细节;但这好像并不会削减他们的观影体验;并且,他们有能力使用错过了无数细节之后剩下的那些碎片拼接出一个 “完整的故事” —— 当然,通常干脆是 “另一个貌似完整的故事”。于是,当你在跟他们讨论同一个电影的时候,常常像是你们没坐在同一个电影院,看的不是同一个电影似的……

为了避免把技术书籍读成山寨版,为了让自己真正读懂书里表述的内容,就有必要磨炼只字不差的阅读能力。当我们失去耐心的时候,往往会一扫而过,以为自己读懂了,其实不然。

3. 好的记忆力很重要

“就算读不懂也要读完” 的更高境界,是 “就算不明白也要先记住”。

面对 “过早引用” 常见的知识领域,好记忆力是超强加分项。记不清、记不住、甚至干脆忘了 —— 这是自学过程中最耽误事的缺点。尤其在有 “过早引用知识点” 存在的时候,更是如此。

更为重要的是,记忆力这个东西,有一百种方法去弥补 —— 比如,最明显、最简单的办法就是 “好记性不如烂笔头”……

然而,提高对有效知识的记忆力还有另外一个简单实用的方法……这个方法就是以下要讲到的 “整理归纳总结” —— 反复做整理归纳总结,记不住才怪呢!

在阅读的过程中肯定会遇到读了很多遍还是读不懂的地方,这怎么办?那就在这个地方做个标记,把这个不懂的地方记住,又或者拿笔记本把这个地方记录下来,再可以反复做归纳总结。

4. 尽快开始整理归纳总结

第一遍囫囵吞枣之后,马上就要开始 “总结、归纳、整理、组织 关键知识点” 的工作。自己动手完成这些工作,是所谓学霸的特点。他们只不过是掌握了这样一个其他人从未想过必须掌握的简单技巧。他们一定有个本子,里面是各种列表、示意图、表格 —— 这些都是最常用的知识(概念)整理组织归纳工具,这些工具的用法看起来简单的要死。

这个技巧说出来、看起来都非常简单。然而,也许正因为它看起来如此简单,才被绝大多数人忽略…… 与学霸们相对,绝大多数非学霸都有一模一样的糊弄自己的理由:反正有别人做好的,拿过来用就是了!—— 听起来那么理直气壮……

可实际上,自己动手做做就知道了 —— 整理、归纳、组织,再次反复,是个相当麻烦的过程。非学霸们自己不动手做的真正原因只不过是:嫌麻烦、怕麻烦。一个字总结,就是,懒!可是,谁愿意承认自己懒呢?没有人愿意。于是,都给自己找个冠冕堂皇的理由,比如,上面说的 “反正别人已经做好了,我为什么还要再做一遍呢?” 再比如,“这世界就是懒人推进的!”

久而久之,各种爱面子的说法完美地达成了自我欺骗的效果,最后连自己都信了!于是,身上多了一个明明存在却永远找不到的漏洞 —— 且不自知。

这个自己动手的过程其实真的 “很麻烦”,但它实际上是帮助自己强化记忆的过程,并且对自我记忆强化来说,绝对是不可或缺的过程。

归纳总结可以帮助我们梳理知识点之间的联系,它们之间的异同点,可以加深我们对知识的理解。例如,在C++语言中,如果我对vector,list,stack压入弹出元素的顺序做一个对比,以后就可以不用纠结要用哪个容器了,也可以不用纠结到底出来的是尾部数据还是头部数据。

5. 先关注使用再研究原理

养成一个习惯:

不管怎么样,先用起来,反正,研究透原理,不可能马上做到,需要时间漫漫。

用错了没关系,改正就好。用得不好没关系,用多了就会好。只要开始用起来,理解速度就会加快 —— 实践出真知,不是空话。

有的时候,就是因为没有犯过错,所以不可能有机会改正,于是,就从未做对过。

先用print打印出“hello world!”,再用for循环写出个从1加到1000,管他怎么实现的,先用起来,先写几个程序。从单纯的用开始,只有用到足够熟练的时候,大脑自然而然就开始想“为什么是这样?”

我使用的编程语言是C++,在研发项目过程中,我开始真正的实战“C++继承”这一特性,父类A中有个虚函数fun,其子类B继承了虚函数fun并改写,然后指向B类的A类指针ptr可以调用fun。没有太多实战经验(用得不多)的程序员,甚至读不太懂这个例子。

当初我在技术书籍上读到的表述大致是“指向派生类的父类指针”,觉得非常绕口,理解非常费劲,这句话什么意思?现在我使用这个原理写了一两个程序之后,理解非常顺畅,还能按自己的思考把这句话呈现出来;再然后我查资料理解到:原来是AB之间维护了一个虚函数表,表中记录了所有的虚函数,当父类的某个虚函数发生更改之后,表中的虚函数也会相应的改变,这样就使得指向派生类的父类指针能够调用派生类从父类中继承而来的虚函数。

很绕,写个程序试试就知道了!

6. 尊重前人的总结和建议

生活中,年轻人最常犯的错误就是把那句话当作屁:

不听老人言,吃亏在眼前。

对年轻人来讲,老人言确实很讨厌,尤其是与自己当下的感受相左的时候。

然而,这种 “讨厌” 的感觉,更多的时候是陷阱,因为那些老人言只不过是过早引用,所以,在年轻人的脑子里 “无法执行”,“报错为类型错误”……

你可以观察到一个现象,学霸(好学生)的特点之一就是 “老师让干啥就干啥”,没废话。

比如,上面告诉你了,“必须自己动手”,那你就从现在开始老老实实地在一切必要的情况下自己动手去 “总结、归纳、整理、组织 关键知识点”…… 那你就必然能够学好。但针对这么个建议,你反复在那里问,“为什么呀?”,“有没有更简单的办法啊?”…… 那你就完了,死定了。

学写代码的过程中,有很多重要的东西实际上并不属于 “编程语言范畴”。比如,如何为变量命名、如何组织代码,这些 “规范”,不是违背了就会马上死掉的;并且,初来乍到的时候,这些东西看起来就是很啰嗦、很麻烦的…… 然而,这些东西若是不遵守,甚至干脆不了解,那么最终的结果是,你永远不可能写出大项目,永远是小打小闹 —— 至于为什么,可以用那句你最讨厌的话回答你:

等你长大了就懂了……

等我写了一些大段大段的程序之后,才发现原来合理的命名,遵守命名规范真的帮省下了很多时间和精力。当我在打开一个月前写的代码时,会觉得如此的陌生,感觉这根本就不是自己写的,如果没有任何注释,没有命名的帮忙,那我又得重新理一遍代码逻辑,挠着头皮使劲想“当时自己到底写的是什么东西?”这个过程真的很浪费时间,甚至让自己抓狂。

在知道如何应对“过早引用”之后,那我们就知道该如何读枯燥的技术书籍了?

  • 读不懂也要硬着头皮读完

  • 不要囫囵吞枣,只字不差地阅读

  • 不懂的地方做好记录,甚至把它记住

  • 尽快归纳总结

  • 先用起来再研究原理

  • 尊重前人的总结和建议,并且一开始就按照他们的说法去做

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值