重新学习如何学习——书评兼笔记

标签: Book Learning Thinking | 发表时间:2013-02-04 22:45 | 作者:Stanley Xu
出处:http://www.xuwenhao.com

程序员的思维修炼

今年的一个目标是多读书,于是前两天就花了点时间读完了这本 Pragmatic Thinking and Learning ,话说读之前的期待还是挺低的,读完之后觉得是值得5星推荐的一本书。之所以期待低,一是 Andy Hunt 之前的 The Pragamatic Programmer 已经读过,有个偏见觉得很可能是老调重弹;二是中文名容易让人觉得是神棍书,特别是看了目录的前几章关于L/R脑模型的标题之后。不过读了之后还是觉得这本书对我相当有帮助,觉得没有白费时间。这当中应该还要为电子版本的出版商多看记上一功(因为做笔记方便),不过这个是后话了,如果有空的话应该会再写一篇Blog专门写我对目前电子出版的一些看法。

想了想,一般我给出比较高评价的的非虚构类读物,大概分成三种。一种是叫做“与我心有戚戚焉”,就是人生观价值观的共鸣,比如读王小波就属于这一种;第二种则是让我“开眼看世界”,这种在看自己没有充足认识的领域和知识背景的图书最多,之前读 创新者的窘境 就是这种(这本也是值得好好写写Blog的),一本透彻讲清楚一个问题的产业经济学的图书,的确让人读完之后有“哇,原来是这么回事儿”的感觉;第三种最土了,比如这本,就是我认为有很多我认为可以直接实践的内容了。

说好话之前先说说批评意见,不知道为什么出版社和编辑把这本书的书名翻译成现在这个 <程序员的思维修炼——开发认知潜能的九堂课> ,因为英文名其实完全是不一样的,叫做 Pragmatic Thinking and Learning——Refactor Your Wetware ,如果土一点直接翻译过来应该叫做 <务实的思考和学习——重构你的“湿件”> 。这里面“WetWare”的确不太好翻译,也许可以叫做“思考模式”。但是从这个翻译和现在中文版名字的对比可以看到,原书想写的内容还是很务实的,基本就是一些作者觉得更有效的思考和学习的方法,翻译版则稍稍有点神棍了,不过不知道是不是现在中文出版界都比较喜欢神棍,比如以前 Scott Berkun (他的几本书也相当不错)的 Make Things Happen 愣是被翻译成了 项目管理之美 ,相当没有品味。而这帮相当没有品味和扯淡的人还一直异常推崇苹果和乔布斯而鄙视微软,至少从他们最后定的书名来看他们还是比较希望 大胖子光头的推销模式

回到英文版的这个书名,基本上也把这本书想讲的内容说清楚了,就是告诉你作者认为应该如何学习如何思考会比较有效。

全书的结构也比较清楚,第一章是废话,完全可以略过。

第二章可以认为是一个能力阶段模型的大纲,基本上讲了,你在一个领域的不同阶段表现出来的水平是什么,虽然列了5个阶段,不过如果再简化一点,我觉得用三个阶段也就可以了,里面提到的新手到高级新手基本上是人都能很快做到的。高级新手到胜任者是第一道坎,主要的挑战在于胜任者开始理解上下文了,这个基本上可以称作猴子和人的区别,也就是说即使是猴子训练够了也能做高级新手,但是通常给他们换个context基本就完蛋了;然后胜任者到精通者是第二道坎,一个的区别在于是否已经学会快速自我反思和改进,这个我称之为人和牛人的区别,能学会养成不断反思的习惯,基本上随着时间最终能变成大家认为的牛人;另外一个他叫做全局思维,我理解为基本上你不能光想自己那点事儿,所谓“不谋万世者,不足谋一时,不谋全局者,不足谋一域”。

同时,在阶段模型建立了之后,建立了一个“积极的实践”的需求列表,分别是

  • 需要定义一个明确的任务
  • 任务需要有适当的难度——有挑战但是可行
  • 任务环境可以提供大量反馈,以便于你采取行动
  • 提供重复犯错和纠正错误的机会

我把这个模型和过去几年的工作经历印证了一下,觉得还是相当靠谱的,基本上成长最快的几个阶段,都是这样走过来的。无论是在TU,还是去年年初事故不断的阶段,都是四条都满足最后挺过来就胜利了,所以说所有经验都是要公司给你交学费的。

第三到第五章比较神棍,不过有些Practice在很多地方都读到过,值得实践一些,比如漫步,早晨写作,天天写,到处记笔记收集资料等等,基本上我叫做通过各种实践让你换换脑子,然后“好记性不如烂笔头”都把事情记录下来。

第六章我个人非常喜欢,主要讲作者觉得比较高效的学习方法的,我觉得比较值得尝试的是SQ3R法来做阅读,准备之后的几本书都这么做一下。事实上,我曾经一直觉得自己学习能力还是很强的,但是现在回过头反思和SQ3R对比觉得其实效率极其低下的。之前觉得自己学得还行,主要一是看书还算快,另外就是的确花得时间也多。但是缺陷一是很多东西的确没怎么记住,另一方面是很多需要静下心来看的东西就进展极其缓慢,之前做工程还算好,可以靠多写Code来实践,现在看点有数学推导的东西就和蜗牛一样。SQ3R基本上也就是传统的学习方法,先看大纲,然后列问题,然后带问题去读,然后复述,回顾,如果加上第七章的实践基本就齐了。不过不知道其他人怎么样,我自己是离开学校之后就没有再用这种方式学些过了。

第七章基本上就是讲在实践中如何学习,几个重点基本上一方面是设定环境能够安全地去探索、创造和应用,在学技术上,本质上叫做通过做点实际的东西来学习,把Code跑起来,改点东西,再跑跑,看看能否在其他的数据或者使用场景下使用。另一方面试一方面是寻找内在诀窍,我称之为想清楚问题的本质,这个过去两年在两个事情上特别有体会,一个是刘鹏老师讲Machine Learning和计算广告的很多东西,一个是看 Nathan MarzBig Data ,一旦触及到本质,很多问题就一下子清楚了。

第八章基本上是一些如何集中注意力的问题,这个在很多管理书籍上有很多类似的实践,比较有意思,我想尝试一下的是冥想,不知道是否会真实有用。

第九章就继续是扯淡的话了。

这本书我主要推荐的还是在6-8章,很适合大家觉得没什么好学的情况下去看看,然后就继续有动力看很多不同方面的东西,而且这里面的确有很多回到学习和思考的本质上的方法上的实践值得去做。Pragmatic系列在结合扯淡理论和实践上的确写得相当不错。很多别的书(不一定是特定领域)写得要么过于干瘪,比如之前看李航博士的<统计学习方法>;要么过于扯淡,这个就满大街都是了,讲一些具体实践的书很少,不知道什么原因。

相关 [学习 学习 书评] 推荐:

重新学习如何学习——书评兼笔记

- - 灰色的灵魂
今年的一个目标是多读书,于是前两天就花了点时间读完了这本 Pragmatic Thinking and Learning ,话说读之前的期待还是挺低的,读完之后觉得是值得5星推荐的一本书. 之所以期待低,一是 Andy Hunt 之前的 The Pragamatic Programmer 已经读过,有个偏见觉得很可能是老调重弹;二是中文名容易让人觉得是神棍书,特别是看了目录的前几章关于L/R脑模型的标题之后.

iptables NAT 学习

- - BlogJava-首页技术区
为了搞清楚iptables NAT的过程,做了这个实验. 使用了1台双网卡服务器和1台单网卡服务器,2个网段. 1.       为了看到调度服务器上的数据转发过程,首先在调度服务器上分出内核的debug日志:. l 在/etc/rsyslog.conf最后增加:kern.debug /var/log/iptables.log.

Servlet Filter 学习

- - CSDN博客架构设计推荐文章
最近在研究CAS , CAS 中的Servlet Filter 不太熟悉, 所以花了点时间学下了下这部分的知识, 分成以下几部分 学习. Servlet Filter  的功能和用法. Servlet Filter 顺序的注意事项. A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both.

mongo 学习

- - CSDN博客系统运维推荐文章
mongod 启动参数详解:. master 启动: ./mongod --dbpath /data/db/master --logpath /data/db/master.log --logappend  --fork --port 2717 --master --oplogSize 64 . slave 启动: ./mongod  --dbpath /data/db/slave  --logpath  /data/db/slaver.log --logappend  --fork  -port 27018  --slave --slavedelay 5 --autoresync --source localhost:27017  .

pushlet 学习

- - 企业架构 - ITeye博客
转自: http://blog.csdn.net/houpengfei111/article/details/7498481.     pushlet是一种comet实现,在servlet机制下,数据从server端的java对象直接推送(push)到(动态)HTML页面,而无需任何java applet或者插件的帮助.

Storm Trident 学习

- - 小火箭
Storm支持的三种语义:. 至少一次语义的Topology写法. 参考资料: Storm消息的可靠性保障 Storm提供了Acker的机制来保证数据至少被处理一次,是由编程人员决定是否使用这一特性,要使用这一特性需要:. 在Spout emit时添加一个MsgID,那么ack和fail方法将会被调用当Tuple被正确地处理了或发生了错误.

「学习笔记-Linux」学习Shell Script

- - CSDN博客系统运维推荐文章
学习Shell Script. 1 什么是Shell Scipt. 2.2 例2 按日期建立相似名字的文件. 3.2.4 整数,字符串,多重条件判断. 4 Shell Script 参数. 5.2 if else 结构. 8 shell script的追踪与Debug. 1 什么是Shell Scipt.

真正的学习

- Yuli - 左岸读书_blog
前天突然发现,身边很多人在当年读书时有神话般的表现,比方说一个哥们小学、初中与高中永远是全校第一名. 比方说,高中的同桌在一次期末考试前生病,在家休养一个月,回来时距离考试仅三四天时间,但没想到他一鸣惊人,从以前的十二三名跃居到第四名. 不过,所有这些神话,都远不如一个看起来有些愚笨的故事令我感动.

学习的艺术

- 白肥 - 左岸读书_blog
一个男嘉宾刚从后面的背景门后走出来,. 一个女嘉宾就以迅雷不及掩耳盗铃响叮当之势把灯按掉. 主持人问她:姑娘,你怎么这么快就把灯按了呀. 第三,我不喜欢个子矮还穿西装的. 我脑中马上想出一个画面:如果这位姑娘看到敬爱的小平同志的尊荣不知是何反应. 当我们初见一个人、初学一门技艺、初尝试一样新的菜式、或者初到一个陌生的地方、、、、、、.

学习JVM的References

- LightingMan - 淘宝JAVA中间件团队博客
本blog中列举了我学习JVM的references,会不断的更新,为了避免版权问题,就不在blog上提供references的下载了,感兴趣的同学可自行下载或购买,:). |— [ Hotspot GC论文 ]. |— [ 其他JVM GC ]. |— Linux内核源代码情景分析. |— Linux 内核中断内幕.