reading-notes

张俊的读书笔记

View project on GitHub

cover

豆瓣链接

作者: 刘未鹏 
出版社: 电子工业出版社
出版年: 2011-7
页数: 251
定价: 35.00元
装帧: 平装
ISBN: 9787121140068

第一章 暗时间

只有靠推理才能深入理解一个事物,看到别人看不到的地方,这部分推理的过程就是你的思维时间,也是人一生中占据一个显著比例的“暗时间”,你走路、买菜、洗脸洗手、坐公车、逛街、出游、吃饭、睡觉,所有这些时间都可以成为“暗时间”,你可以充分利用这些时间进行思考,反刍和消化平时看和读的东西,让你的认识能够脱离照本宣科的层面。

能够迅速进入专注状态,以及能够长期保持专注状态,是高效学习的两个最重要习惯。

第二章 设计你自己的进度条

做事情也是同样的道理,善于规划的人,会将目标分割成一个个的里程碑,再将里程碑分割成TODO列表。前阵子流行的GTD方法学,核心的理念就在于,如果你把任务分割了,你就有了进度条,你就知道,事情在不断的进展,你总会完成任务或到达你的目标,你会有一个时间估计。反之如果没有这个分割,整个的任务或目标对你来说就只有两种状态——“完成”和“未完成”,如果不幸是一个比较漫长的目标,那么你会发现你的进度条总是“未完成”,一次又一次的等待未果会耗尽你的耐心,让你下意识的产生“这事什么时候才能完呢?”的疑惑,没有分而治之,你就不知道未来还需要付出多少努力才能达到目的,这就会让你心生怯意,不敢进一步投入时间,免得血本无归。在这样的心理下,不少人就会选择保守策略——退出,以免到头来花了时间还一事无成。

不要过早退出循环:我们在尝试新的事物的时候,总是会遇到各种各样的困难,不同的人会在碰壁不同的次数之后退出。

模仿高德纳先生的名言:过早退出是一切失败的根源。

兴趣遍地都是,专注和持之以恒才是真正稀缺的。

靠专业技能的成功是最具可复制性的:它需要的只是你在一个领域坚持不懈地专注下去,只需要选择一个不算太不靠谱的方向,然后专心致志的专下去,最后必然能成为高手或者绝顶高手。

第三章 如何有效地记忆与学习

你所拥有的知识并不取决于你记得多少,而在于它们能否在恰当的时候被回忆起来。

学习的有效性显然应该这样来衡量:当遇到需要用到学过的知识的时候,相关的知识是否会自动从你脑海中“蹦”出来,最起码——能否通过有意识的搜索将它们提取出来。

我有记笔记的习惯,我的电子笔记本里面有大量的文本片段,我按照主题组织他们,方便检索。然而总有那么一些时候,我记得有某段材料,记得它的主题和大致说什么,但是缺乏某个关键字,结果就是遍寻不着,往往只能到处翻,同时提醒自己下次在上面多加几个自己熟悉的关键字,比如用自己的话来概括一下主旨,因为自己的习惯用词和作者的习惯用词往往不一样,在阅读作者的文字的时候,你也许下意识里会用自己的习惯词汇来重新表述这段文本,并存放在记忆中,结果一段时间之后当要寻找的时候大脑中只记得自己的说法,却不记得作者原话了,然而为了检索到原始文本你必须要知道作者是用什么词汇来表述的。为了弥补这个问题,可以在存放文本的时候加上自己的一段概述,这似乎是一个不错的方案——我们平时在学习和记忆的时候也经常听到类似的提倡:用自己的话复述一遍之后理解得更深刻

第四章 学习密度与专注力

所谓思维体力就是能够持续集中注意力的时间,注意力造就非凡专家,天才来源于长期的专注的训练

第五章 一直以来伴随我的一些学习习惯

第一节 学习与思考

  1. Google\&Wiki
  2. 看书挑剔,只看经典。
  3. 做读书笔记。
  4. 利用走路和吃饭的时候思考,还有睡觉前必然要弄一个问题放在脑子里面,在思考中迷糊入睡。
  5. 重要的事情优先。
  6. 重要的事情营造比较大的时间块来完成。
  7. 多看心理学与思维的书。
  8. 学习一项知识,必须问自己三个重要问题:1. 它的本质是什么。2. 它的第一原则是什么。3. 它的知识结构是怎样的。
  9. 获得的多少并不取决于读了多少,而取决于思考了多少、多深。
  10. 善于利用小块时间。
  11. 为什么说起来容易做起来难,是因为“说”只是理性上承认正确,并没有考虑到我们每个人大脑中居住的那个非理性自我。这个自我以强大的情绪力量为动机,以习惯为己任,每时每刻都驱使着我们的行为。

第二节 时间管理

1. 学习和思考的过程中常问自己的几个问题

  1. 你的问题到底是什么?(提醒自己思考不要偏离问题。)
  2. OK,到现在为止,我到底有了什么收获呢?(提醒自己时不时去总结,整理学习的东西)。
  3. 设想自己正在将东西讲给别人听(有声思考;能否讲出来是判断是否真正理解的最佳办法)。
  4. 时常反省和注意自己的思维过程。尤其是当遇到无法理解或解决的问题之后,最需要将原先的思维过程回顾一遍,看看到底哪个环节被阻塞住了妨碍了理解。问题到底出在哪里。并分析以后需要加强哪方面的思维习惯,才能够不在同样或类似的时候被绊住。对此,将思维的大致脉络写下来是一个很好的习惯。
  5. 养成反驳自己的想法的习惯:在有一个想法的时候,习惯性地去反驳它,问自己“这个难道就一定成立吗?”、“有没有反例或例外?”、“果真如此吗?”之类的问题。
  6. 人的思维天生就是极易流于表面来理解事物的。觉得自己理解了一个问题了么?条件反射性地问自己:你真的理解了吗?你真的理解了问题的本质了?问题的本质到底是什么?目前我的理解是什么?我对这个理解感到满意吗?这样的理解到底有什么建设性呢?等等。

2. 重视知识的本质

大量的新技术其实只是一层皮,背后的支撑技术其实都是十来年不变的东西。底层知识永远都不过时。算法数据结构永远都不过时。基本的程序设计理论永远都不过时。良好的编码习惯永远都不过时。分析问题和解决问题的能力永远都不过时。强大的学习能力和旺盛的求知欲永远都不过时。你大脑的思维方式永远都不过时。

3. 重视积累的强大力量

5年中每天腾出半个到一个小时专心于某一件事情,认准一个方向,每次走一点,其实不要说5年,两年就会发现会起到宏大的效应。

4. 抬起头来

人的思维是非常容易只见树木不见森林的。时不时抬起头来审视一下自己正在做的事情,问一问它(对现在或未来)有什么价值,是不是你真正希望做的。你学到的东西到底是什么?它们重要吗?你需要在这个时候学习这些吗?(见第2条)。

第三节 阅读方法

  1. 趁着对一件事情有热情的时候,一股脑儿把万事开头那个最难的阶段熬过去。
  2. 根据主题来查阅资料,而不是根据资料来查阅主题。按照主题来阅读,你会发现读的时候不再是老老实实地一本书看完看另一本,而是非常频繁地从一本书跳到另一本书,从一处资料跳到另一处资料,从而来获得多个不同的人对同一个主题是如何讲解的。
  3. 好资料,坏资料。
  4. 学习一个东西之前,首先在大脑中积累充分的“疑惑感”。
  5. 有选择地阅读。
  6. 为什么看不懂?如果看不懂一个知识,一般有如下几个可能的原因:1. 你看得不够使劲。2. 其中涉及到了你不懂的概念。这是技术性的不理解。3. 作者讲述的顺序不对,你接着往下看,也许看到后面就明白了前面的了。

第四节 知识结构

抓住不变量。我喜欢把知识分为essential的和non-essential的。对于前者采取提前深入掌握牢靠的办法,对于后者采取待用到的时刻RTM (Read the manual)方法(用本)。

学习一个小领域的时候,时时把“最终能够写出一篇漂亮的Survey”放在大脑中提醒自己,就能有助于在阅读和实践的时候有意无意地整理知识的结构、本质和重点,经过整理之后的知识理解更深刻,更不容易忘记,更容易被提取。

第七章 逃出你的肖申克

第一节 为什么亲身经历才能明白?

(一)为什么我们常说很多时候一定要亲身经历了之后才能明白?

  1. 切身体验。亲身经历一个负性事件带来的情绪记忆要比看着或听说别人遭受一个同样的事件所感受到的强烈得多,形成的负性条件反射也远远更持久。
  2. 别人口中的故事。别人口中的故事也许只是事情的一个方面,难免受到他们自己观念的影响而产生偏见,我们每个人都带着有色眼镜看待这个世界,客观且全面的描述一个事情极少有人能做到。别人的故事也许只是他们的想法,你自己亲身经历同样的事情也许完全又是另一种想法了。
  3. 为什么。别人在告诉你一个道理的时候往往只能告诉你怎么(how)做,而难以说清为什么(why)要这么做,遑论“为什么一定(have to)要这么做”了(因为他们自己也不一定能说清)。在没有听到逻辑严密、无法辩驳的证据之前,你很难说服自己A选项优于B选项,直到最终自己在某一条路上撞了南墙才肯死心。
  4. 世界是复杂的。这是一个复杂的世界,各种错综复杂的因素互相影响,用单一因果来解释事件几乎总是不恰当的,唯一能够靠谱地搞清因素X和因素Y之间的关系的方式就是通过随机控制实验。
  5. 未来是不确定的。个人因素往往只是成功的一个既非充分又非必要的条件,所谓谋事在人,成事在天;但无需悲观,因为毫无疑问,改善个人因素的确能够大大增加成功的几率。
  6. 别人的道理,自己的事情。
  7. 认知失调与自我辩护。根据认知失调理论,我们也会竭力为自己辩护;又由于世界是复杂的,所以我们几乎总是能够找到辩护的借口。
  8. 失败即成功。失败的事情中揭露出来的信息一点也不比成功事件中的信息少,或许往往还能得到更多的东西。
  9. 情绪对照。经历了失败之后,我们在做“正确”的事情的时候便会觉得更理直气壮。如果没有经历失败后的糟糕记忆,我们就算理性地认识到目前的做法是更合适的,也很难从情绪上强烈地感受到这么做的“正确感”。
  10. 天性。由于这些天性是在远古社会选择适应的,并不适应短短几百年我们才迈入的现代社会,所以我们总是听到内心两个声音吵架。比如我们的天性是目光短浅,只看到眼前利益(也许这对物质匮乏的远古社会是适应的)。所以即便有时候别人说服我们应该往长远考虑一些,他自己就曾经吃过只看眼前的亏,然而你的内心一个声音仍然在高叫着“管他呢!”。因此,我们常常需要用理性的声音去说服内心的原始人。
  11. 习惯。对付我们强大的习惯的最佳办法是将自己认为正确的(不管是自己经过困难或失败而领悟的,还是看到书上或听到别人说的)写下来,并常常拿出来翻看。事实上,我的经验是,在写下来的时候我们的大脑会进入到理性分析模块,进一步检验和推理那些道理,我们越是对一个道理审视的详细、深入、全面,大脑中留下的印象深刻,从记忆加工的角度来说,这叫深度加工,带来的结果就是该记忆与更多的提取线索相关联,于是便能够在更多的场景下被唤起(而不是被以往的习惯直接覆盖)

(二)亲身经历了就一定明白吗?

  1. 很傻很天真的条件反射。客观的做法是:看重过程,而不是看重单次的结果——因为再好的过程也可能会偶尔失利,但从长远来统计,好的过程总体上必然导致更好的结果。
  2. 认知偏差。事实上,很多成功者自己的总结都不靠谱,就是因为他们自己也难以对自己成功的原因进行正确的归因,比如我们都有这样一种倾向:将失败归因于外界因素,将成功归因于自己的能耐。
  3. 情绪系统。我们之所以强烈地依赖于需要亲身体验一个负性事件来学习,是因为我们平常的决策与判断强烈地依赖于情绪系统的输出,如果一个事情“感觉上没错”,我们无论有多好的理由也很难说服自己不去做它,如果一个事情“感觉上不对”,则无论有多好的理由也很难说服自己去做它。正确的做法不是一概而论地听取直觉的意见或者一概而论地不听取,而是将它当成一个启发式的判断,然后利用自己的理性大脑对其进行进一步的客观的、逻辑的检验(Critical Thinking)。

(三)不需要经历也能明白——理性的力量

我们尽量去让我们大脑中假想的角色去经历失败——我们通过推理发现某条路行不通,就避免了现实中去碰一鼻子灰。

第二节 仁者见仁智者见智?从视觉错觉到偏见

偏见在我们解决问题、认识世界的过程中都起到了很大的影响,并且很多时候是不好的影响。因此,让我们经常和具有不同信念和知识背景的人讨论,弥补个人经验知识的局限性导致的偏差,并时常使用以下这句话来提醒自己keep an open mind吧:

“这只是一种解释(可能),未必是唯一的解释(可能)。(想不出其他解释不代表就不存在其他解释)。”

第三节 遇见20万年前的自己

人类的高级认知模块是在相对较近的进化年代出现的,然而原始的情感和条件反射模块却在千万年的进化长河中忠实地保护着我们在自然环境中生存下来并努力繁衍后代(《Mean Genes》),这些模块似乎“理应”拥有更强大的力量,然而工业时代的到来将人类生存的环境极大的改变了,我们大脑的原始模块适应的是远古时期的生活,以采集狩猎为主题的社会构成,这跟现代工业文明相差颇大,举个例子,我们的社会交往本能令我们非常顾及自己的面子(面子不仅是一个东方文化中的东西, 在全球都存在),面子可以与很多东西关联——与异性的交往成败,在对手面前是否挺身而出,在困难的任务面前是否完成得很好,这里的逻辑是很明显的:一次糟糕的社会性事件会降低我们的声誉,在远古社会,聚居群体较小,成员之间依赖性很高,糟糕的声誉会导致被赖以生存的群体排挤出去,危机自身的一切,所以我们往往有着不顾一切捍卫自己的面子原始冲动。

我们对于很多事情的决策判断都刻画在天性里面,然而同样也正是这些天性在很多时候会让我们陷入困境,我们“能存储能量就尽量存储能量”的食物摄取天性虽然适合远古社会,然而在能量充裕的现代社会却导致大量人的超重。

我们对于未来的惩罚和收益都估计不足,倾向于就眼下的损益进行决策。也许我们的远古生活告诉我们的真理就是,几年后的潜在收益跟眼下唾手可得的好处无法相比。

我们的原始大脑同样也分不清什么是虚拟什么是真实,在获得社会成就和声望的动机的驱使下,即便是虚拟的网络游戏社会,我们也会投入大量精力,某种意义上我们的大脑并没有错,我们的确应该去获得声望,只不过它还没有聪明到跟得上工业文明,它并不明白虚拟世界里面的生存能力和地位并没有办法转化为现实世界的生存能力和地位。

我们做事情难以持之以恒地专注,因为任何一个新鲜刺激的外部信号都足以激活我们强大的情绪大脑,情绪大脑一旦被激活,其神经信号往往轻而易举地抢占我们的注意力,结果就是我们发现在这个纷繁的世界里很难维护内心的宁静和专注,于是我们发明各种隔绝干扰的方法来保护我们脆弱的理性大脑,从而能够让自己做应该做的事情。

我们的大脑喜欢事情往积极方向发展,GTD的原理正是如此:通过提供不断的进展,让执行者意识到事情正在朝向完成不断迈进,这种正面趋势所带来的积极情感能够进一步激励个体把事情执行到底。

总之我们发明各种认知方法来“诱使”或“要挟”我们的情绪大脑同意去执行一件事情:我们向朋友承诺我们要做的事情,于是我们的情绪大脑会迫于信誉受损的压力而去主动完成这件事情。而加入互助学习小组则本质上是利用大脑的从众本能和同侪压力。

最后,经常动用理性思考也能够锻炼理性大脑的“实力”,在更多的决策场合获得压倒性优势。

第四节 理智与情感

我们知道答案,却往往不知道真正的求解思维过程。

客观意味着承认存在未知信息的可能性,理性意味着能够从对立面的视角去看问题和思考。

能够改变既有的习惯,依靠的不是自制力,而是知识。单纯的自制是一件非常痛苦的事情,你理智上知道应该怎么做,但是你的情绪大脑却就是不买账,一些比较坚定的人能够不管三七二十一就强迫自己去做正确的事情,这殊为不易,不是像我这样的一般人能够做到的。但是,无论任何人,都有一个共同的倾向,就是去做正确的事情,不去做错误的事情。很多时候我们无法自制是因为情绪大脑并不知道也并不承认这件事情是错误的。

第八章 书写是为了更好地思考

  1. 书写是对思维的备忘
  2. 书写是对思维的缓存
  3. 书写是与自己的对话
  4. 书写是与别人的交流
  5. 有时候,语言自己也会思考

第九章 为什么你从现在开始就应该写博客

第一节 为什么你应该(从现在开始就)写博客

1) 能够交到很多志同道合的朋友。 2) 书写是为了更好的思考。 3) “教”是最好的“学”。 4) 讨论是绝佳的反思。 5) 激励你去持续学习和思考。 6) 学会持之以恒地做一件事情。 7) 一个长期的价值博客是一份很好的简历。

第二节 怎么做到长期写一个价值博客

让你自己成为一个持续学习和思考的人,并只写你真正思考和总结之后的产物,其他一切就会随之而来。

第三节 可能出现的问题以及怎样应付

1) 担心别人认为没有价值。 2) 担心想法太幼稚或有漏洞等等被别人笑话。 3) 得不到激励。只有写碎碎念的博客才会面对“激励”的问题。如果写自己的总结,写自己独立的思考,那么书写下来、理解通透,本身就是一个极大的激励。 4) 写不出来。这个问题也比较无聊,思考本不是一件急于求成的事情。长期订阅我的博客的朋友知道我一般发文频率在一个月三五篇,实际上有不少次我个把月也不发布文章,原因很简单,要么是有手头的事情要处理思考的时间被压缩了,要么是遇到比较大或者比较困难的问题需要长时间的思考和积淀,没有关系,如果没有想清楚就再想想,爱思考的人和不爱思考的人有一个本质的区别,前者在生活中总是挂着几个问题在大脑中,它们时常都会冒出来骚扰你一下,让你琢磨琢磨,不爱思考的则是没事不主动想问题,遇到问题还要先想想是否能找捷径(找人帮忙)解决。

第十章 我不想与我不能

简而言之自利归因就是把一件事情发生的原因归结为对自己有利的那种情况。其实,很多事情的发生都是多个原因共同造成的结果。

“注意力等于事实”。心理学领域的术语来说便是“观察者偏见所起的作用像一个过滤器”。用M$的话来说就是“WYSIWYG”(所见即所得)。用唯心主义人择原理的话来说就是“世界是这个样子是因为我看到它是这个样子”。

第十二章 什么才是你的不可替代性\&核心竞争力

我相信以下的知识技能组合是具有相当程度的不可替代性的:

  1. 专业领域技能:成为一个专业领域的专家,你的专业技能越强,在这个领域的不可替代性就越高。这个自是不用多说的。
  2. 跨领域的技能:解决问题的能力,创新思维,判断与决策能力,Critical-Thinking,表达沟通能力,Open Mind 等等。
  3. 学习能力:严格来说学习能力也属于跨领域的技能,但由于实在太重要,并且跨任何领域,所以独立出来。如何培养学习能力,到目前为止我所知道的最有效的办法就是持续学习和思考新知识。
  4. 性格要素:严格来说这也属于跨领域技能,理由同上。一些我相信很重要的性格要素包括:专注、持之以恒、自省(意识到自己的问题所在的能力,这是改进自身的大前提)、好奇心、自信、谦卑(自信和谦卑是不悖的,前者是相信别人能够做到的自己也能够做到,后者是不要总认为自己确信正确的就一定是正确的,Keep an open mind)等等。

第十四章 锤子和钉子

如果你手里有一把锤子,所有东西看上去都像钉子。

正确的态度应该是:手中有锤,心中无锤。

仅仅将它看作我们工具箱中的又一件工具,就可以客观地评估它,视具体情况而使用了——始终别忘记自己要解决的问题是什么。Why 永远在 How 之前。

与上面对应的还有另一句话(实际上这是我杜撰的:D):

如果你想钉一个钉子,所有东西看上去都像是锤子。

用大白话来说就是:如果你心中专注于你想要解决的问题,那么你所看到的东西就会呈现出以往你没有看到的一面。

第十五章 鱼是最后一个看到水的

实际上,这句话有很多引申说法,其中最著名的一句是:

如果你有的是一把锤子,那么所有东西看起来都像是钉子。

这句话的表达方式很容易让人触摸不到问题的本质:即之所以所有东西看起来都像钉子,是因为人倾向于在既有框架下去解决问题;更重要的是,在这个过程中很难觉察到框架约束的存在,正如鱼觉察不到水的存在一样。而这一切背后的本质原因则是:

人是有很强的适应性的。

普通人遵守规则,牛人无视规则,伟人创造规则。

1 设计模式

《设计模式》里面曾经提到,其中大部分的模式都是建立在smalltalk/C++的前提之下的。这个前提(框架)很可惜的被所有人扔到了风中,并将那些模式泛化为放之四海而皆准的准则。Peter Norvig老大有一个著名的ppt,里面提到在《设计模式》的23个模式里面有16个模式放到动态语言(尤其是LISP)下面就根本不是什么模式,而是显而易见无需费力就能完成的任务。c2上的老大们则将Peter Norvig的言论进一步泛化,提出“设计模式象征着语言所缺乏内建支持的特性”的说法,并罗列了一个“设计模式<=>语言特性”的对照表。CodingHorror的Jeff也跟着掺和,换汤不换药的跟贴说“设计模式其实是语言进化的路标”(设计模式的大量重复使用便意味着应该集成到语言内建支持中去了)。

2 语言之争

语言之争的原因之一就是人们容易在自己熟悉的语言框架下思考,并形成严重的偏见,只看到自己语言的好处,甚至于将并非好处的地方也觉知为好处。

3 语言的使用

避免思维被一门语言束缚的最好办法就是“学习其它语言”。

4 C++

  1. 学习C++的第一原则是什么?关注基本的(fundamental)概念和技术,而并非特定的语言特性,尤其不是C++中细枝末节的语言细节。
  2. 使用C++的第一原则是什么?将你的(pongba按:与语言无关的)设计理念(概念)直接映射为C++中的类或模板。