读书笔记:《程序员的思维修炼》

. 5 min read

这是我第二次拿起《程序员的思维修炼》,在Kindle里躺了好几个月,上次阅读是开学的火车上,看了30%就放一边了。五一又有机会在火车上拾起这本书,有必要重头再来,正好这段时间时间还比较充裕,可以做做笔记停下来思考。

序&绪论

这是一本教你如何对大脑如何重新“编程”的书!

双CPU大脑模型

我非常支持一个白话版的素质的定义:除了书本知识硬性记忆以外的东西,扪心自问,包括我自己在内的大多数程序员除了固化的编程知识以外,又有多少“素质”拿得出手呢?IT领域知识更新换代之快需要我们不停地往前奔跑,当我们痛苦地追逐时尚新鲜玩意时,更需要放慢脚步,冷静地修炼自己的“内功”,以不变应万变,才能立于不败之地。

我个人是讨厌死记硬背的,甚至感觉自己有轻微的诵读困难症,从小对背诵有莫名的恐惧,看《Google 工作整理术》时,作者提到小时候背乘法口诀表要比同龄人慢,其实我小学时候也是这样子,但一直不承认自己这方面有缺陷。从小学初中到现在大学,英语短文很难背下来,初中背诵语文课文和古文时老师是会排先后的,我的背诵速度一直处于“末等生”水平。到大学知道大家考试竟然有“背题”这种“灵丹妙药”,但我根本办不到——不光是意识上的抗拒。

从新手到专家的历程

制造问题的思维方式无法用来解决问题。 ——爱因斯坦

德雷福斯模型:
德雷福斯模型是一种构建理论,是一种抽象。它描述了我们的能力、态度、素质和视角在不同的技术水平下是如何变化的,以及为什么会有变化。对于特定的技能领域,德雷福斯模型将人们所处的水平阶段划分为5个:新手-高级新手-胜任者-精通者-专家。

第二章一开始给出了三个新名词:构建理论和事件理论、德雷福斯模型,而且我认为阐释的并不清楚,以上是我从书中摘抄并融合的。以我的理解,简单说德雷福斯模型(Dreyfus Model)就是一种描述人类如何获取某一特定技能的模型,从新手到专家过程要经历5个阶段:

新手(Novice)

新手需要指令清单(recipes)。

我们所接触的大部分教程包括大学课程都是指令清单。“大神”们没有时间(或者学校老师们冠冕堂皇的理由:课时所限)去阐明为什么要这么做,“菜鸟”们急于解决问题(或者通过考试)懒得深入理解。课堂上最恶心的一句话不断被重复着,并且老师和大部分学生都喜欢:“这是公式,记住!”。

高级新手(Advanced beginner)

高级新手不想要全局思维。

审视大学所经历过的课程,大部分课程在结课考试后我还达不到高级新手的水平。为了应付考试,有时候不得不把视野停留在某个狭窄区域。或者根本对全局没有任何把握而逃避全局思维。

可悲的是,研究似乎表明,大多数人的大多数技能,在他们生命的大多数时间里,从来没有高于第二阶段高级新手。

胜任者(Competent)

胜任者能够解决问题。

他们可以独立解决自己遇到的问题,并开始考虑如何解决新的问题……他们的工作更多是基于谨慎的计划和过去的经验。

精通者(Proficient)

精通者能够自我纠正。

他们能够自我纠正以往不好的工作表现。他们会反思以前是如何做的,并修改其做法,期望下一次表现得更好。

伴随着向他人学习的能力而来的,是理解和运用格言经验之谈的能力。

专家(Expert)

专家凭直觉(intuition)工作。

我在和一些同学谈论“直觉”时,大家想到的“直觉”大部分是诸如“考试蒙了个B选项”这样的“猜测”。显然没有扎实的功底和丰富的经验,直觉似乎并不那么好用。

从新手到专家,逐步具备全局思维、反思能力,积累经验并开始使用直觉。当然,新手也可以并且应该使用直觉。

以下是作者给出的成为专家的“诀窍”:

知道你自己不知道什么。

通过观察和模仿来学习。

保持实践来维持专家技能。

避免使用形式方法。

学习如何学习的技能。

关注情境。

<待续>