Python 还能承担下一个时代的发展重任吗?Mojo 语言的横空出世对 AI 研发生态有什么影响? 了解详情
写点什么

阅读者 (三):程序员的思维修炼

  • 2011-01-10
  • 本文字数:3302 字

    阅读完需:约 11 分钟

【编者按】Andy Hunt 何许人也?作为程序员,如果你不知道,说明你忽略了程序员技能的修炼。严格意义上讲,Andy Hunt 已经脱离了程序员的范畴,而是专注于修炼之道的哲人、思想家,同时,又是一位身体力行的实践者。阅读他的著作,就是在体悟他的道,他的哲学,他的实践精神。本期阅读者将分享 Andy 的著作《程序员的思维修炼——开发认知潜能的九堂课》,它将为你开启修炼脑力思维的全新大门。为了更全面地展现阅读者的视角,我们将从译者和读者两个角度分别探讨本书蕴含的哲学。译者为 InfoQ 中文站 Java 社区编辑崔康,读者为 InfoQ 中文站 SOA 社区首席编辑胡键。


作为译者,我觉得很幸运能够较早的学习到原著的精彩内容,在这里也希望和大家分享一下对本书的感受。

中文名《程序员的思维修炼——开发认知潜能的九堂课》略显拖沓了,原著名为《Pragmatic Thinking and Learning: Refactor Your Wetware》,一语中的,这是一本讲述 Wetware 而不是 Software 的专著,Wetware 指人脑细胞或者思维过程,与计算机系统相对应。重构你的大脑,即所谓思维修炼。本书不仅仅适合程序员,它提供的认知、思维方法论具有普适性,值得所有准备提高思维能力的读者借鉴。

《思维修炼》篇幅不长,分为 9 章,每一章就像是作者的一篇学术论文,立意、论据、结论,一应俱全,结构严谨。那么,这本书有哪些亮点?

• 德雷福斯模型

在程序员社区中,大家喜欢以“菜鸟”、“大虾”相称,言语间已经定位了彼此的“功力等级”。不过,这些都是一些比较模糊的定义,没有严谨的标准来帮助开发人员们衡量自己的能力水平。为了解决这个难题,作者 Andy Hunt 引入了技能评估体系德雷福斯模型,把能力水平分为新手、高级新手、胜任者、精通者、专家等 5 个层次,每一阶段都有相应的判断标准,而且研究表明:“大多数人都是高级新手”!这些内容会帮助开发人员更好地评估和反省自身能力,有助于进一步提高。

• 左脑?右脑?

Andy 在书中认为,大家长久以来重视左脑的线性思维能力,而忽略了右脑的综合性、非线性思维能力,所以作者用了大量的篇幅来纠正大家的思维习惯,包括很多训练方法和技巧,读者可以从中找到如何利用潜意识来解决问题的办法。不过,我认为 Andy 对右脑的重视程度有些过了,当然也许他自己的左脑系统性思维已经足够完美了,但是对于大多数开发人员来说,在尝试开发右脑的时候,请不要忘记把左脑的线性思维也要锻炼好,毕竟线性思维是一项基本功。

• 主动学习

我们每天都在学习,效果怎么样?对于想要提高学习效率的朋友,作者提供了若干方法,如设定 SMART 目标,协同学习、SQ3R 阅读法、以教代学等等,我从本书中学到的一项重要技巧是利用思维导图来解决问题。简单地说,思维导图是一种非常自由但是相关的思考方式,可以采用普通的纸笔,也可以使用开源 FreeMind,将与问题有关的所有条件、情境、备选方法统统画在一起,发散思考,逐步找准解决办法。最近,我在遇到难题没有思路的时候,经常采用思维导图的办法,效果明显。推荐读者关注“主动学习”有关章节的内容。

• 控制注意力

你是否在埋头工作当中经常被人打扰?我遇到了这样的问题。本书的作者特意拿出一整章来讲述如何控制注意力,包括注意力转移的情况、危害、解决方法等。我借鉴了其中的一些技巧,目前感觉工作效率有所提高。很多时候,那些打扰你的人即使没有你的帮助,他们也能自己解决问题,而你完全可以避免转移注意力,而用心工作,何乐而不为呢?

除此之外,本书还介绍了如何积累经验等内容,可以称得上是一本涵盖认知学、思维学、心理学、行为学的微型百科全书了。书的内容再好,如果不亲身实践,那也没用。我建议大家选取对自己有益的内容,通过实践找到适合自己的方法,活学活用。

最后,我建议大家在阅读中译本之后,如果可能的话,找原著读一读。原因有二:一是本人的翻译水平有限,原著中各种论据、技巧旁征博引,涉猎极广,虽然本人尽可能用中文来诠释原著中的故事和典故,但是能力所限,可能无法让读者满意;二是原著的写作质量很高,对英语语言的借用、双关、隐喻等比比皆是,单纯看中译本是无法体会到其英语语言的乐趣,英文水平不错的读者不妨享受一下原著的风采。

——崔康


因为喜欢 Andy Hunt 的写作风格,加上之前的《程序员修炼之道》口碑相当不错,故而在书单中选择了这本《程序员的思维修炼》,看看他这回又能给我带来怎样的惊喜。结果怎样呢?且听我细细表来。

说句实话,与玄乎的中文名称相比,它的英文名《Pragmatic Thinking and Learning》更能体现出本书的主旨:提高读者的思考和学习能力。在这样的基调之下,对于那些想从中了解最新开发方法、编程思想、工具使用等知识的读 者来讲,失望恐怕是在所难免的。可要是你没有因为失望而愤怒地丢掉本书,那在看完译者序和目录之后,担保你会有一种“中彩票”的感觉。

说得这样好,它到底讲了些什么呢?我先来谈谈自己的总体看法。

思考和学习能力是优秀软件从业者不可或缺的能力,对于大多数人来讲,这种能力不是与生俱来的,它需要锻炼和开发,也就是书名包含的“修炼”之意。Andy 在这本书中,以其丰富的知识展示了这些能力的背景知识和具体的实际修炼技巧。虽然,大多数知识之于我是头次接触,可在 Andy 的妙笔之下,一切又让人觉得是那样的亲切熟悉。如果把这本 200 来页的书硬要说成是提升软件从业者自身能力的“百科全书”,你肯定会觉得我是“书托”。但要说它是一个更大知识体系的地图或者是打开另一扇知识大门的钥匙,实不为过。
为什么要提高这些能力?“要成为专家。”,一个声音在我的心中喊叫道。没错,这就是 Andy 在本书第二章的主要内容,在这一章中,他告诉了我德雷福斯模型,从中可以了解从新手到专家历经的阶段:
• 新手
• 高级新手
• 胜任者
• 精通者
• 专家

书中对于新手和专家的评述让人印象深刻:
• 新手需要指令清单
• 专家凭直觉工作

第一句话足以说明了一件事:对于新手,先不要告诉他们什么大道理,只要告诉他们如何做就行了。因为讲了也白讲,由于缺少经验的支撑,你说的肺腑之言往往会被当成耳边风。如果带过新人,相信你肯定碰到过这样的情况。而第二句话,不由得让我想起了武侠小说中剑客追求的最高境界:人剑合一。书中所举的若干 例子在现实生活中也并不少见。还记得中学课本中的卖油翁么?

在此之后的篇章可以粗浅地分成“Thinking”和“Learning”两大部分,完全体现了英文书名的主旨,这也是让我觉得英文书名比中文书名 “实在”的原因。从这些篇章中,你可以快速地了解大脑的工作模式、如何开发和调试大脑、高效学习和积累经验的方法,以及如何控制你的注意力。光看这些内容,你可能并没有什么特别的感觉,但我想如果列出我喜欢的一些内容点滴,或许能帮助你进一步地了解:
• 左右脑模式
• 随时记录自己的想法
• 隐喻
• 晨写技术
• 了解认知偏见
• SMART 原则
• 知识投资计划
• 学习小组
• 思维导图
• SQR3 读书法
• 冥想
• GTD
• ……

请各位原谅,要是能领悟得更多的话,我便可以写出更多内容来让大家看到本书的全貌了。可是,这就是一本无法快速阅读了事的书,相比起之前作者的《程序员修炼之道》,本书的内容更加抽象。不再是我们能够很快熟悉和掌握的软件设计原则、经验教训、工具使用等内容,而更接近于如何认识自我,开发自身软实力的课本。之所以称其为课本,不仅仅是因为 Andy 在本书中介绍了大量可直接实际操作的技巧,而且还因为书中专门设置了“实践单元”指导你的实际演练,避免了陷入类似书籍泛泛而谈的陷阱。

尽管本书涉及的知识面很广,但由于作者和编者很体贴的在书中列出了不少脚注,大大帮助了这些内容的理解。同时,本书印刷精美,使得阅读本身也成了一种享受。在阅读本书的过程中,我尤其喜欢出现第 152 页中“聪明人和蠢人”部分的两处段首语:

我认为大多数人都比自己所想象的更有能力。……
……
但是暂且不论我们有哪些具体的技能缺陷,通常我们都是惊人的学习机器……

这也不由得让我想起宋代茶陵郁山主失足跌入河中悟道后说的那句偈语:
我有明珠一颗,久被尘劳关锁。
今朝尘尽光生,照破山河万朵。

正如我前面所说,把本书作为一把钥匙,由它开启追求我们自身更高技艺的大门,为迎接未来艰巨挑战做好准备。祝各位修炼愉快!

——胡键

2011-01-10 13:006066
用户头像

发布了 109 篇内容, 共 38.8 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

新的篇章,Pancake开通STI的流动性LP质押

BlockChain先知

三高Mysql - Mysql索引和查询优化(偏理论部分)

懒时小窝

MySQL 数据库

微信朋友圈高性能架构

流火

推荐一款可以替代Postman的国产api管理工具apipost

CodeNongXiaoW

php 后端 开发工具 java api管理工具

模块7作业-王者荣耀商城异地多活架构设计

卡西毛豆静爸

#架构实战营

容器 & 服务:Kubernetes运维记录

程序员架构进阶

Kubernetes 容器 4月日更 4月月更

王者荣耀商城异地多活架构设计

石小天

「架构实战营」

智能时代,应该如何培养中小学AI教师?

脑极体

Linux驱动开发-编写DS18B20驱动

DS小龙哥

4月月更

普渡科技联合韩国VD Company参展IFS创业博览会,引爆韩国服务机器人市场

江湖老铁

Kubernetes官方java客户端之八:fluent style

程序员欣宸

4月月更

第七个模块作业

achilles

一文读懂 MySQL Explain 执行计划

老周聊架构

MySQL 数据库 3月月更 4月月更

架构师成长路线图

俞凡

架构

怒肝 JavaScript 数据结构 — 数组篇(一)

杨成功

JavaScript 数据结构 4月月更

基于python的struct模块实现简单的ByteBuf

歆晨技术笔记

Linux之ssh-copy-id命令

入门小站

Linux

在线XML转HTML工具

入门小站

工具

基于Apache组件,分析对象池原理

知了一笑

Apache redis 构架 池化思想 对象池

swagger2 统一默认Response Code

Rubble

swagger 4月日更

微服务从代码到k8s部署应有尽有系列(四、用户中心)

万俊峰Kevin

微服务 RPC web开发 go-zero Go 语言

在 Flutter 和 Dart 中取消 Future 的 3 种方法

坚果

4月日更

谈谈高并发系统的一些解决方案

xiaoxi666

高并发 高并发系统设计 高并发系统

我要批判架构师!

博文视点Broadview

当东数西算变成一场西游记……

白洞计划

全链路压测(八):构建三大模型

老张

性能测试 全链路压测 稳定性保障

架构训练营-作业七

默光

异地多活 架构训练营5期

【Go实现】实践GoF的23种设计模式:单例模式

元闰子

Go 设计模式 单例模式

MySQL性能优化的5个维度

蝉沐风

MySQL 性能优化

在线OPML美化格式化工具

入门小站

工具

这样的 Python ,你学得会吗

海拥(haiyong.site)

Python 4月月更

  • 扫码加入 InfoQ 开发者交流群
阅读者(三):程序员的思维修炼_Java_张逸_InfoQ精选文章