做一个主动全面的学习者 —— 记《程序员的思维修炼》

《程序员的思维修炼:开发认知潜能的九堂课》是 Andy Hunt 写给处于不同的开发层次的技术人员。两年前买来翻过之后,就一直置于书架之上而再也没有碰过,了解最多也只是在许多的程序员阅读推荐中常出现这本书的书名,但至于内容是什么,其实说老实话,我真是没多大印象了。

前几天,在开智微播的公众号里又再次出现了这本书的名字,还有大篇幅的阅读笔记,一下才汗颜自己读书确实有问题,可能错过了什么,或者现在的自己经历了些,也错过了一些之后,想法会有所不同。于是重新拾起,开始重读。

重读的过程是断断续续的,上班的时候我带上,手里的教学工作处理完毕之后,我就拿起书阅读。几天下来,也算是读完了。

如书名所说,是对人进行思维方面训练,因而里面会安排有实战操作的内容。比如叫你停下来去做某件事,或者叫你出去走走之类的。回想两年前自己在阅读的时候,似乎根本就没有在乎作者所说的这些,一个劲儿的读了下去。

这是一本写给程序员的书,但却不仅限于程序员,里面没有代码,只是以训练程序员的思维来作例子,叫我们认识自己的大脑、学会如何学习、如何阅读、如何制定一个目标、如何从一个新手成长为专家。

主动学习

我个人比较感兴趣的是「第六章主动学习」。常见的教育是将学习者当作一个接受知识的容器而进行灌输,这种模型在公司培训中尤其流行,被称之为「羊浸式培训」。

羊浸是指把毫无防备的羊浸到一个大水箱里面做清洗,去除它们身上的寄生虫。羊排成一队,你抓起一只浸到水箱里,让它感受一次强烈的、陌生的、中毒性的清洗经历。当然,药性会逐渐失效,所以过段时间你不得不对它们再次做清洗。

作者认为这种培训是没起不了作用的:

  • 学习不是强加于你的,而是需要你主动做的事情。
  • 仅仅掌握知识,而法去实践,没有用。
  • 随机的方法,没有目标和反馈,往往会导致随机的结果。

单纯密集、脱离情境的课堂教育最多只能给你正确的方法。你需要持续的目标,需要反馈以了解你的进展,需要更加主动全面的学习,而不是在令人窒息的教室里一年上一次课。

SMART

对于此种情况,作者给出了一种在现实中主动学习效率更高的方法,SMART目标来进行目标管理和计划。

如果你不知道去往何处,那么你必须多加小心,因为你可能无法到达那里。 — — 尤吉‧贝拉(Yogi Berra), 前美国纽约扬基棒球队接球手

  • S(Pecific) 具体的。目标任务应该是具体的。
  • M(easurable) 可度量的。为了实现目标任务,不管采用什么方法,你必须能够度量它。你不必看得很远,但一定要看清面前的一两米。
  • A(chievable) 可实现的。从你现在所处的情况着眼,让每一个目标都可实现。
  • R(elevant) 相关的。目标需要相关,需要在你的掌握之中。
  • T(ime-boxed)​​ 时间可控的。设定最后期限。采取循序渐近、比较细小的里程碑。

对于每个都或多或少的对自己有所期许,但可能会过大而让我们倍感压力,或者是不太具体而失去兴趣方向,又或者是时间处理不当,当有许多随机的事件出现,而不能实现自己当时所定下的目标。种种情况,与其说是外在因素影响了我们不能达成目标,还不要找找自己身的原因,采用这种更为具体的方法,对目标作各种详细计划而后再践行之。

聪明的使用时间

时间是无法创造和销毁的。时间只能分配。

这个世界尽管充满着许多不公平,但时间对于每个人来说却是公平的。我们时常听人抱怨说自己想要做某件事,但却没有时间。真的是没有时间吗?

主动安排你的学习,分配合适的时间,聪明地使用时间,你可以更具效率。

作者提出了管理知识投资的要点:

  • 制定具体计划。可运用 SMART 目标理念。
  • 多样化。有意识的多样化,不要把所有的鸡蛋放在同一个篮子里。
  • 主动投资。主动队时的评估你的投资,而不能只是守着。
  • 定期投资。安期安排学习,「养成一种习惯」,长期来看一定能看到成果。

具体的学习方法

以上是关于如何建立这种学习框架,下面谈的是具体学习方法:

  • 主动阅读和总结书面材料的更好方式
  • 使用思维导图​探索和发现模式和关系
  • 代学

我们通常的阅读方式多是拿到一本书之后,就开始从头读到尾,这种方式较为被动,效果不理想。对此,作者推荐一种名为SQ3R的方法:

  • 调查(Survey):扫描目录和每章总结,得出总体看法。
  • 问题(Question):记录所有问题。
  • 阅读(Read):阅读全部内容。
  • 复述(Recite):总结,做笔记,用自己的话来描述。
  • 回顾(Review):重读,扩展笔记,与同事讨论。

回顾平时看书的习惯,看目录、思考大致讲些什么内容。虽然也是想解决自己认识上的一些问题,不过在阅读之前却并没有列出问题来,因而阅读的过程中,也总是顺着书的指导而去,少了主动性。阅读之后的总结、笔记及笔记的扩展几乎是不做。多是处于自己「了解」就完事。

对于像本书这类实战类书,如果就是看完了事,其实是没有任何效果的。书的阅读,确实该有快有慢,有动有静。读书不是目的,提升思维水平和形成实战能力才是根本。

关于「以教本学」我是很认同的,听不如读,读不如写,写不如讲出来。而讲出来正是「教」。人想要将自己抽象的思维用语言清晰、完整地表达出来并不是一件简单的事。在教的过程中,既是对思维能力的巨大考验,也是对人语言表达能力的考验。

当我每读到精彩之处,我总会禁不住问题下自己:两年前我到底想什么去了?还算幸运,我再次阅读,终算有了收获,也不算太迟吧。学以致用,需要在实际的工作和学习中加以运用,方能体现其价值。

感谢 Andy Hunt 精彩之作。感谢崔康的翻译,你的工作​​​​​对我这种英文能力几乎为零的人来说真是太重要了,才让我有幸能读到国外高手的作品。

​​​