# 程序员的思维修炼-读后感悟

这是在我进入大学认为是买的一本关于程序员的书,当我读完的时候我发现它适合任何人去读,当然它主要还是面对的编程人员来写的。其实它也是我买的第一本书,我很庆幸我买的第一本不是什么编程的书,而是一本关于大脑思维方式或认知潜能的开发的。

这是豆瓣关于这本书的短评: 程序员的思维修炼 短评

# 一、绪论

    1. 生命中没有什么是一成不变的,人们需要改变自己的习惯和方法。
    1. 软件并不是在集成开发环境(IDE)或其他工具上设计出来的,它是在我们的大脑中想象和创造出来的。
    1. 程序员需要不断地学习——不仅仅是学习新技术,还包括应用的问题域、用户社区的奇思妙想、同事的古怪习惯、行业的八卦新闻和项目演进的重要特征,我们必须学习学习再学习,持续不断地学习,然后把学习成果应用到解决日常遇到的一切新旧问题上。
    1. 生命中没有什么是恒久不变的,只有死鱼才随波逐流,尝试改变自己。
    1. 始终关注情境,将这句话写下来贴在你的墙上、书桌上、会议室里、 白板上,

# 二、从新手到专家的历程

德雷福斯模型描述了我们的能力、态度、素质和视角在不同的技术水平下是如何变化的,以及为什么会有变化。

德雷福斯模型的5个阶段

# 1. 新手

  • 指在该技能领域经验很少或者根本没有经验。
  • 新手需要指令清单。Novices need recipes.

新手非常在乎他们是否成功。没有太多经验指导他们,他们不知道自己的行为是对是错。新手不是特别想要学习,他们只是想实现一个立竿见影的目标。他们对于错误的出现,会非常容易慌乱。对于新手要让他成长,应该给新手提供与情境无关的 规则 去参考,他们才能变得能干起来。换言之,新手需要给他一份 指令清单 :”当X发生时,执行Y”,这样处理事情起来就不那么不知所措了。但是,规则只能让你启程,不会让你走得更远。

# 2. 高级新手

  • 高级新手不想要全局思维。Advanced beginners don't want the big picture.
  • 大多数人都是高级新手。Most people are advanced beginners.
  • 直觉和模式匹配能力超载了显性知识。Intuition and pattern matching replace explicit knowledge.

开始具有部分学习自主性(不需要任何事情都由别人给出清单),好比学编程语言开始学会使用API但是却从来不看源代码。看不见事物之间存在的联系,对“认为和自己无关”的事物并不关心。“根据需求学习新事物,但是一定程度上忽略了情境”。

# 3. 胜任者

胜任者能够解决问题。 Competents can troubleshoot.

开始能够建立一些概念模型,能够独立解决自己遇到的问题,并且开始考虑如何解决一些自己没有遇到的问题。然而他们较为依赖经验,对于不了解的事物显得较为困惑。

# 4. 精通者

精通者能够自我纠正。 Proficient practitioners can self-correct.

达到这个阶段最后总要的特征就是开始自我改进,也就是能力反思和自我纠正。书/上的例子非常形象:极限编程中提到“测试一切可能出错的东西”,这句话对于新手来说,他们不知道指的是什么,是getter & setter 还是所有的打印语句,他们并不能确定。然而精通的测试人员就知道哪些地方可能出错,通过经验和判断力,结合当前的情境,他们理解这句话的意义

# 5. 专家

专家凭直觉工作。 Eaperts work from intuition.

保持实践以维持专家水平

规则断送专家。 Rules ruin eaperts.

那么,你想成为专家是吗?你需要投入大约十年的努力,不论哪个领域。

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

# 其他笔记

  • 切勿偏袒新手,从而疏远了经验丰富的员工,问题不在于他们的工作职位,或者工龄长短,而在于他们为团队带来了什么价值。
  • 优胜者不会帮扶失败者。Winners don't carry losers.
  • 从德雷福斯模型学到的最重要的收获之一就是,认识到新手需要与情境无关的规则,而专家使用与情境相关的直觉。
  • 这两种观点都是错误的。每个项目、每种情况都比那更复杂。每当有人开始说“你需要做的仅仅是……”或者“只需要做这个……”,他们十之八九错了。

学习音乐的秘密是经历三个阶段: - 模仿 - 吸收 - 创新

要获取专业技能,需要做到如下几项。

  • 培养更多的直觉。
  • 认识到情境和观察情境模式的重要性。
  • 更好地利用我们自己的经验。

# 三、认识你的大脑

从你出生那一刻起,大脑就开始运转,只有当你站起来向公众演讲时才会停止。——George Jessel爵士〔1〕

“我们可以这样说:大脑的配置为双CPU,单主机总线设计。” 1号CPU对应着线性模式(L模式),2号CPU的异步、综合处理风格称为富模式(R模式)。

  • 两个CPU提供了L型和R型处理模式。Two CPUs provide R-mode and L-mode.
  • R型对直觉、问题解决和创造性非常重要。 L型让你细致工作并实现目标。每一种模式都有助于大脑的工作 如果想获得最佳性能,需要两种模式协同工作。
  • 内存和总线竞争:很多时候,每当你想要用语言描述时,这个清晰、生动的梦境就会从你的记忆中消失。这是因为图像、情感和整体经验都是R型的:你的梦是在R型下产生的。当你尝试把梦讲出来时,就开始争用总线。L型占用了总线,现在你无法获取那些R型记忆了。实际上,它们是无法用言语表达的
  • R型不能直接控制。R-mode isn't directly controllable.

# 随时(24×7)记录想法

  • 钢笔和记事本 携带Fisher Space钢笔和小记事本
  • 索引卡片
  • PDA
  • 语音备忘录
  • 记事本 Moleskine记事本

# 设计胜于功能

  • 每个人都有好点子。Everyone has good ideas.
  • 假设你是一个大型零售商,需要卖一些日用品,例如洁厕刷。你无法在价钱上竞争,任何人都可以用不到一美分的钱买到廉价的洁厕刷。那么该如何让你的产品与众不同呢?商品化意味着美学品味的竞争。吸引力更有效
  • 已知的问题(比如代码的bug、糟糕的组织流程、欠缺的用户界面或混乱的管理)如果不加以改正会产生病毒一样的影响,最终造成更大损害。
  • 禁锢扼杀脑细胞
  • 争取好的设计,它真的很有效。
  • “设计并不是创造美,美来自于选择、共鸣、同化和爱。”
  • 美来自于选择。Beauty emerges from selection.
  • 如果你想发现全局、整体的模式,你需要R型;如果你需要分析部分和细节,你需要L型。对于我们大多数人来说,这种层次的专长就是这样区别的。R型看森林,L型看树木。综合学习与分析学习并重。
  • 思想使然。Thinking makes it so.因为大脑会把更多的资源用于你做得最多的事情。

# 四、利用右脑

使用多感观技术可以让学生的学习效果提高5倍。即使是特别简单的工作也能受益。增加感观体验以促进大脑的使用。

促使R型到L型的转换

收获R型线索

  • 你已经知道 一切输入都被存储
  • 许多想法是无法用言语表达
  • 利用图像流
  • 利用自由日记
  • 晨写技术
  • 自由写技术
  • 利用散步

收获模式

  • 一次编码多次阅读
  • 换换脑子
  • 调和不同的模式
  • 改变有益

# 五、调试你的大脑

  • 认知偏见:思维如何被误导。

  • 时代影响:同代人如何影响你。

  • 个性倾向:个性如何影响思维。

  • 硬件故障:大脑较老区域如何压制较聪明的区域。

  • 来来隐藏于柏拉图圈里。The future hides in the platonic fold.

  • 意想不到的事件改变历史。Unexpected events change the game.

  • 相关性与因果性,正如你所看到的,只是因为你“认为是这样”并不代表这是正确的。认清和克服自己的认知偏见说起来容易,做起来难。但是这里列举了一些有所帮助的建议。

  • 记住标题:“很少”不意味着“没有”。绝不说“绝不”。Never say never.

  • 顶住压力。你会做出决策,事情会解决,只不过不是今天

  • 适应不确定性。

  • 通过明确的概率进行猜想。Guess with explicit probabilities.

  • 请记住你的记忆力并不是很好。记忆是靠不住的,旧的记忆会随着时间改变,这反而会让你以为某些误解和偏见是对的。不要仅仅依赖你的记忆。中国有句谚语说得好:好记性不如烂笔头。信任记录而不是记忆,每一次思维的输出都是一次输入。

  • 态度会改变。But attitudes will change.

  • 一种原型创建了其反面原型。Archetypes create opposing archetyp

  • 从多个角度看待问题。

  • 你无法改变别人。You can't change people.尊重不同人的不同性格。

  • 我们通过逻辑来证明,通过直觉去发现。

# 认知偏见

认知偏差列表

# 六、主动学习

  • 技术本身并不重要,持续学习才是最重要的。你需要持续的目标,需要反馈以了解你的进展,需要更加主动全面的学习,而不是在令人窒息的教室里一年上一次课。
  • “羊浸式”培训不起作用。Sheep dip training doesn't work.
  • 如果你不知道去往何处,那么你必须多加小心,因为你很可能无法到达那里。
  • 养成一种习惯。Create a ritual.

学习不是强加于你的,而是需要你主动做的事情。

  • 仅仅掌握知识,而不去实践,没有用。
  • 随机的方法,没有目标和反馈,往往会导致随机的结果。

假设有人原本去找他邻居要火,结果发现邻居那儿很暖和,于是他就继续呆在那边取暖。这就好比是,某人去向别人学习知识,却没有意识到他应该点燃自己的火焰、他自己的智慧,而只是很高兴地着迷于他人的演讲,老师的话只是触发了联想思维,就好比只是让他的两颊泛起红晕,只是让他四肢感到温暖,但是,虽然笼罩在智慧的温暖光茫下,他内心的阴冷昏暗却没有被驱散。” ——普卢塔赫,希腊历史学家、传记作家和评论家

目标任务使你更靠近目标。Objectives move you to your goal.

  • 制定具体计划
  • 多样化
  • 主动投资
  • 定期投资

时间是无法创造和销毁的。时间只能分配。Time can't be created or destroyed, only
所有知识投资都有价值。All knowledge investments have value.PIP:主动的,而不是被动的投资

  • 现在(你下一步的行动)
  • 明年的目标
  • 五年后的目标

对主动学习的投资做好计划。

  • 写下现在、短期和长期的具体目标。
  • 增加两个新的学习领域,让你的知识投资变得多样化。
  • 每周设定时间来实施知识投资。
  • 设置提醒,让自己定期、阶段性地重新评估投资计划。哪些发生了改变,哪些已没有意义,现在你要做什么?

发现你的最佳学习方式。

  • 视觉型学习者需要看到学习资料和老师。图片和图表对视觉型学习者都很有效,他们对肢体语言和面部表情也很敏感。
  • 听觉型学习者必须听到学习材料。讲座、研讨会和播客都很有效。他们对语气、语速和其他细节都很敏感。
  • 动觉型学习者通过活动和触摸来学习。他们需要亲身感受学习材料。特别是对运动、艺术和工艺等领域,你都需要通过动手来学习。

SQR3

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

# 七、积累经验

同时用R型和L型做笔记。 1.写一个对你很重要的四到五项条目的无序列表。 2.在纸上用钢笔或铅笔绘制一个针对以上各项的思维导图。 3.等待一天。 4.现在用十五到二十分钟修饰这张图。做些点缀,增加粗线,使用颜色,增加点涂鸦、图片,在角落添加几个卡通形象,随便什么都可以。 5.一周之后回顾这幅思维导图。有什么意外发现

  • 使用思维导图理清思路。Use a mind map to help clarify.
  • 机遇总是青睐有准备的人。Chance favors the prepared mind.
  • 手动制作增强了R型处理。
  • 笔记/卡片的主动创建有利于为以后的活动做思想准备。
  • 可视化流程和预演可以让大脑模拟(我们会在7.6节简要了解更多内容)。
  • 通过构造来学习,而不是通过学习来构造。
  • 更好地利用反馈,让失败也变得有意义。
  • 让大脑提前为成功构建神经网络。

# 八、控制注意力

# 九、超越专家

几条建议(认识你自己,认识当前时刻,认识你所处的情境):

  • 开始承担责任,不要害怕问“为什么”,也不要害怕问“你怎么知道的”或者“我怎么知道的”,同样要大方地回答“我目前还不知道”。
  • 挑两件帮助你维持情境、免受干扰的事情,立即实施。□ 创建一个实用投资计划,设定SMART目标。
  • 弄清楚你在所属专业领域中所处的位置(从新手到专家)和你期望的位置。保证诚实。你需要更多的诀窍还是更多的情境?更多规则还是更多直觉?□ 实践。某段代码遇到问题了吗?尝试用五种不同的方式编写。
  • 允许犯更多错误——错误是许可的,要从中学习教训。□ 携带一个笔记本(最好不带横线)。涂鸦,做思维导图,记笔记。让你的思想自由地流动。
  • 打开心扉接收美感和其他的感官输入。不论是你的房间、桌面还是代码,关注它们是多么地赏心悦目。□ 开始在私人wiki上记录你感兴趣的事情。
  • 开始写博客。为你读过的书写评论。阅读更多书,你会有更多可写的东西。使用SQ3R和思维导图。
  • 让散步成为你每天生活的一部分。
  • 启动一个读书小组。
  • 再拿一个显示器,开始使用虚拟桌面。
  • 回顾每章的“实践单元”,尝试去做。