《程序员的思维修炼:开发认知潜能的九堂课》是几年前的书了。为什么我现在又找出来重看?当然是因为工作需要。在新的一年,我需要重新整理一下思维,为开展新的任务打个更好的基础。除非被证明,里面的理论是错的,否则这种书是不会过时的。
为了重温本书的知识,我同时阅读参考了如下书籍资料:
《我们要自学》 - 图灵出品的另外一本学习书
《深度学习的艺术》 - 知乎采铜
《暗时间》 - 刘未鹏
《如何高效学习:1年完成MIT4年33门课程的整体性学习法》 - 斯科特·扬(Scott Young)
《认知心理学及其启示》 - 约翰·安德森
为什么读本书这么辛苦?我有主题阅读的习惯。不同的书讲同一个话题,相同的内容可以促进记忆,相互验证;不同的部分可以相互补充,切换看问题的角度。
关于本书,有些遗憾的是书名。我猜测可能是出于“时髦”,起了“程序员的思维修炼”这个名字。其实完全可以去掉,副标题就已经涵盖了一切:开发认知潜能的九堂课。我怀疑是书名迷惑了一批读者,让人以为它是程序开发类的图书,限制了读者群的范围。如果直译,书名其实可能是:《思维与学习的实用指南 - 重构你的湿件》
本书半行代码也没有,是切切实实的思维和学习指南,书籍内容和翻译,都可以打高分。
作为程序员,可能是这个社会里面学习压力最大的一个职业了。其它好多职业,上完大学就等于职业训练完成。工作个N年,积累了各种经验,处理业务会更圆滑老练,除非你要追踪世界前沿,否则一般不需要在职业知识更替上费多少心力。没见那么多穿越、玄幻小说大行其道、流行的一塌糊涂么?闲的。
程序员就惨了。作为知识更新代谢最快的行业,新技术、新思维、新框架层出不穷。你不学习更新,只能等着知识老化,个体价值也会逐渐消解。而如何让自己学的更快、效果更好、成本更低,则大有门道。
本书从多个部分,论述了这些内容。为了验证其有效性,一方面我自己尝试实践,另一方面在充满严肃学术味道的《认知心理学》里面寻找参照和来源。我认为它的知识还是可靠的。
对这样一本实用价值很高的图书进行评论,有些困难。因为我不想总是重复里面的内容。所以我尝试从自身对学习的理解角度来解读它。
在学习方法的研究上,我认为国内的认知还是比较落后的。传统文化上,推崇苦读 - “头悬梁锥刺股、十年寒窗”云云。快乐、轻松学习方法往往会被认为“不用功”,轻松又学的好的呢?则当成天才看待。学校教育上,充斥着死记硬背和填鸭式教学,对方法类的内容关注的不够。讲求方法,不代表你可以轻松、不费吹灰之力的完成学习任务,难的东西还是很难,它也不能抹平智商的差异。只是它通过对规律的总结和遵守,消除了你的各种无用功。同样的内容,你可以学得更快,记得更牢,花的时间更少,何乐而不为?
对于脑力劳动者来说,你的头脑是最重要的武器和财富,不断的打磨它,让它锋利、有威力,是必须的任务。
首先,你要客观看待学习成长的历程:本书开头的德雷福斯技能获取模型是个很有效的描述。达到专家级水准,是需要很长时间的训练的,所以才有了10000小时(10年成就专家)的说法。而且,练习、实践还必须有质量。这解释了真正的专家为什么这么少。这里还有一个有意思的概念:二阶不胜任 - 不知道自己不知道。这也提醒了读者:广泛阅读,保持好奇心,在头脑中多索引一些线索以便查找。
要学得好,首先了解你的大脑。书中有个词汇:wetware - 湿件,专指人脑。但是人类对自身大脑、意识的认识,是一项很困难的任务。认知心理学的历史,已经说明了这个困难:人类在认知心理学上的耗费,大半用于摆脱错误的观念。不过值得庆幸的是,由于各种设备的发明、改进,以及各种实验的开展,一些理论已经被证实或证伪。对学习过程中大脑的活动特征,人们认识的越来越多。我们不必再“摸着石头过河”了。
作者用了一个很出色的概念,来形容人类大脑的一个特性:内存和总线竞争。有点麻烦的是,这个双CPU模式、总线的概念似乎只有程序员最理解。不过看到里面的图也就秒懂了。认知心理学的内容如果照搬,读者多半读不下去了。
他一边阐述大脑的奥秘,一边顺势提出各种训练方法。比如用绘画训练刺激右脑、建立幽默感等等。这些方法可以提高思维能力和创造力,让你的大脑不会感到枯燥乏味,提高效能。还记得图灵的另外一本畅销书么?《黑客与画家》,实际上有异曲同工之妙。两本书都看过的人,会切实的体会到这一点。
了解了你的头脑的生理特性,剩下的就是扬长避短的使用针对性的方法了。里面可能会引起争议的一点是:作者认为短期培训没什么用。他称这种培训为“羊浸式”。因为缺乏明确的目标和有效的反馈,往往导致随机的结果。对于这个结论,不知道多少培训公司要反对他。
大部分人学习是从阅读开始的。我从各种材料上对照过,方法大同小异,都有共同强调的地方。比如,阅读应该是“问题导向”的。什么意思?你看书的时候,要发掘出问题来,让头脑有好奇心,去追着问题的答案。深度学习里面,称之为“建构主义”的模式。
- 针对当前的学习材料,我已具备了哪些相关的知识?
- 针对当前的学习材料,我又学到了哪些新的知识?这些知识对原有知识构成了何种补充或者挑战?
- 针对当前的学习材料,还有哪些未知的东西,且这些东西我通过简单的探索就可以了解?
- 针对当前的学习材料,还有哪些未知的东西,无法轻易地获得解答,同时又有价值成为我长期去探索的问题?
而高效学习的核心,我认为其实就一个:Connect。想方设法,千方百计的把知识串成线,织成网。利用有序重组无序,让旧知识和新内容建立联系。 只有这样,你的大脑才能有效的建立“索引结构”,迅速的提取需要的内容。
深度学习里面谈到:
...就像一根根富有韧性的细线,帮我们把各种知识、经验、观念和方法串在了一起,使散落的砂砾变成一串串富有光泽的珍珠项链。可以说,一个学习者越是成熟,他就越擅长做这类长时程的知识结构化的工作。
本书作者在穿插于书中的各种方法,大都是围绕着大脑生理进行的。里面有几条很有趣,效果立竿见影。比如他提到:压力扼杀认知 - 看看IT业那么多疯狂加班的公司吧,加班是不会带来创造性的突破的,它只会抑制创新;避免多任务处理;多用一台显示器就可以让你的生产力提升20%-30%。对于这一点,我是实践过的,双显示器甚至3显示器,真是方便多了。你可以一边看着资料,一般敲代码。
书中有非常多的“金句”式的闪光点和各种诀窍,你可以单独拿出来总结成文,用于指导实践。不过,事情从来都是说来容易做到难,战胜自己的习惯和惰性是相当不容易的。
好书不单给你指导,还会给你提供深入研究的各种索引。从这点上说,此书虽薄,意义却重。