---
title: 读《程序员的思维修炼》
date: 2014-03-07
draft: false
summary: 围绕《程序员的思维修炼》这本书，重新整理程序员在学习、反馈和刻意练习上的几个关键点。
slug: pragmatic-thinking-and-learning
tags:
- 读书笔记
- programmer
topics:
- essays
type: post
---
在团队周例会上的读书分享

这本书是一本讲如何调试和训练大脑的书。虽然其中的观点以前也都听过，但这本书相当于一个集成，教你认识自己的思维方式以及重构自己的思维方式。这本书的英文附标题是"Refactor Your Wetware"，重构你的[湿件][1]，个人感觉其实比中文的“开发认知潜能的九堂课”要好。

![pragmatic-thinking-and-learning][image-1]

书中列举了德雷福斯模型的5个阶段,其实也是程序员的成长之路

> #### 德雷福斯模型的5个阶段
> 1. 新手 需要指令清单
> 2. 高级新手 没有全局思维
> 3. 胜任者 能够解决问题
> 4. 精通者 能够自我纠正
> 5. 专家 使用直觉

训练大脑的目的是使用直觉。作者将大脑分成两种模式,概念上和流行的左脑右脑类似,不过作者划分为L型和R型。L型就是线行模式(语言,分析,抽象,时间,推理,数字,逻辑),R型是富模式(非语言 综合 非理性 空间性 直觉)。

然后作者分析列举了一些训练大脑方法。

### 主动学习,避免羊浸式培训(基本上国内从小的学校教育都是这种)

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

主动学习主要有以下方式

* 目标明确(SMART) 这个基本上做过绩效KPI的都知道 但把这个用在学习上更重要

	1. S 具体的
	2. M 可度量的
	3. A 可实现的
	4. R 相关的      
	5. T 时间可控的

	回顾一下以前的学习计划,是不是基本上都失败在没有制定好明确的目标了?我想学习XXX语言,配置了环境,买了书,粗略翻了一下,可能写了个hello world然后就没有然后了.我学习这门语言的目标是什么?只是了解下呢,还是要做些具体的东西?衡量的标准是什么呢?写一篇介绍文档?还是实现一个算法或者写个web服务器?有多少时间可以用来学习?要达到目标需要多少时间?这些问题不回答好,一般就都没有“然后”了。

* SQ3R读书法
	读书基本上是大家公认的好的学习途径,但如果想通过读书系统学习某项技能,随意翻阅肯定是达不到目的的。

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

	前三项可能大家一般都能做到,但做到复述回顾的就少了。所以如果有条件,组织阅读小组进行定期分享,不失为一个好办法。作者还介绍了一种方式,叫”和橡皮鸭聊天”。就是在自己的桌子上放个橡皮鸭,找不到人的时候,给橡皮鸭讲一下。有些问题自己想不通,但复述讲解的时候可能会突然茅塞顿开。

### 控制注意力

说实话,这个是个非常有挑战力的事情。回顾一下大家一天的时间,看都浪费到哪儿了?回复即时通讯?回复邮件?接电话?真正用来写程序的时间有多少?虽然这个和环境相关,有些东西自己没法控制。但也是有一些的技巧和方法的。其中一个方法就是冥想。冥想的时候要做到什么都不想,不分心。这个开始会比较难,我尝试了一段时间,也无法做到什么都不想。但冥想的真正目的是让你尝试控制自己的思维,每次分心然后再集中注意力的过程,就是一次对控制注意力能力的锻炼。

### 超越专家

为什么说要超越专家?专家可以用直觉进行判断分析,但直觉有利有弊。利是通过直觉可以快速得出结论,节省不必要的试错,降低资源浪费。但弊是直觉容易形成偏见,忽略对变化的感知。要完全避免偏见,基本是不可能的,但可以通过一定的方法降低偏见造成的影响,尤其是做重要抉择的时候。

### 总结
这种方法论的书,如果说多了就和鸡汤差不多了。实际上重要的在于实践,方法论只是别人总结出的一些有效的方法。只有实践并固化到自己的日常习惯中,逐渐形成自己的方式,才算真正“读”了。

[1]:	http://en.wikipedia.org/wiki/Wetware_(brain)

[image-1]:	http://img5.douban.com/lpic/s4548399.jpg "pragmatic-thinking-and-learning"
