「程序员的思惟修炼——开发认知潜能的九堂课」读书笔记

书名:程序员的思惟修炼——开发认知潜能的九堂课
做者:(美) 亨特 (Andy Hunt)
译者:崔康程序员

关于本书

本书从德雷福斯模型入手,阐释了程序工程师发展的五个阶段;接着从阶段间的特征中引出 L 型与 R 型思惟的区别,并经过多个章节阐述如何有效地利用、发掘、调控本身的 R 与 L 型思惟;最后,本书总结了开发潜能的其余必要因素:如何学习、如何控制注意力、以及如何成为和超越专家。编程

阅读本书,能够切实地感觉到做者渊博的知识。书中的例子不是冷冰冰的代码或牵强的抽象,而是来自多个学科的理论提炼、多个领域的研究,或是真实存在的实验。稍有经验的开发者在阅读本书时,必定能够从字里行间有所感触。本书融汇了做者在多年的经验和研究中,提炼出的易于模仿与尝试的发掘潜能、提高自个人手段。这些虽不是走向人生巅峰的银弹,却能够在往后的发展中为咱们提供参考。安全

德雷福斯模型

德雷福斯模型将技能水平分为新手、高级新手、胜任者、精通者和专家五类。并指出在由新手向专家转换和发展的过程当中,技能全部者会更多的将关注点由局部向总体转换。且在此过程当中,人们会愈来愈倾向于使用直觉提出方案和解决问题,而不是拘泥于在「新手」阶段的依赖指令和局部关注。架构

  1. 新手须要指令清单;异步

  2. 高级新手不须要全局思惟;工具

  3. 胜任者可以解决问题;布局

  4. 精通者可以自我纠正;学习

  5. 专家凭直觉工做。优化

值得注意的是,大多数人都停留在只会「执行本身所作的任务,并根据需求学习任务,但从没有对任务环境得到更普遍的、概念上的理解」的高级新手层面上。编码

做者以 20 世纪 70 年代末的护理专业类比,指出当今程序员所在领域的生存环境有如下特征:

  1. 程序员认为本身只是一种工具,只是执行训练有素的分析师的指令,没有人期待他们会对项目的设计和架构有所创见;

  2. 因为薪资等级的不平等,有经验的专家级程序员纷纷离开一线编码工做,而经过巡回演讲和教学、管理得到经济收获;

  3. 软件工程教育受到质疑,对正规方法和工具的过分依赖削弱了实践中真正经验的做用;

  4. 对项目结果这一真正目标的忽视。

由此,解决问题能够考虑两方面:

  1. 摒弃「我只是执行命令」的想法,承担起必定的责任;

  2. 保持实践。

此外,做为组织和管理者,应当就处于德雷福斯模型不一样层级的人提供相应的环境,如对偏新手阶层的程序员提供更多的指令和可模仿的样板,对专家则留有更多的空间和自由以发挥其源于直觉的判断和决策。

R 型与 L 型

既然直觉是新手向专家转换的一个必要因素,那么咱们该如何得到这种能力呢?想要探讨这个话题,就不得不提到大脑的工做方式。类比计算机,大脑能够被看做是双 CPU 组成的,负责逻辑思考的线性、缓慢的 1 号 CPU,以及负责处理搜索和模式匹配的非线性、快速的 2 号 CPU。因为共享内存总线,两者并不能同时工做。这一特性致使咱们并不能自由的转换和利用两类 CPU,但同时也提供了一些咱们本来没有意识到的绝佳机会。

R 型

咱们能够将负责语言、逻辑和线性处理的模式成为 L 型,而将 2 号 CPU 中异步、综合的处理方式称为 R 型。因为两种模式的处理风格,R 型更擅长于产生直觉和创造力;而 L 型则更擅长于细致的工做并实现相应的目标。

因为 R 型不负责语言处理,这其实也意味着由 R 型产生的结果并不容易被描述(想象本身梦醒时回忆梦中场景的状况)。然而 R 型对于总体处理、模式匹配和搜索能力的优越性致使这种思惟模式能够更好的帮助咱们发现规律、处理存储的信息,并提供富有创造力的解决方案。

可问题在于,对于这两类思惟模式的切换并不可控。

因为咱们大部分时间须要进行逻辑思惟,用已有的解决方法获得思路、处理问题,于是总线老是会被拥有 L 型思惟的 1 号 CPU 占据,使得 R 型思惟没法获得利用。表明 R 型思惟的 2 号 CPU 一般只有在放松和不经意间才能发挥做用(想象一下本身的灵光一现)。

基于此,当咱们集中注意力去解决问题的时候,L 型思惟独占的问题就更为严重,以致于在面对艰难的、无前例可循的问题时,耗费大量的时间每每也没法解决。而灵感一般是在某个瞬间忽然出现,且转瞬即逝,这就意味着咱们须要时刻准备记录这些极具价值的 R 型思惟产物,并及时地实践它。

让咱们扩充一下 L 型和 R 型模式的特色:L 型表明着分析、推理和抽象的能力,而 R 型表明着非语言、非理性、综合与直觉的能力。基于此,L 型更适合处理局部问题,而 R 型则适合寻找总体规律、对总体得出结论。

咱们须要可以在面对不一样问题时使用不一样的处理模式,但问题就在于 L 型思惟老是默认使用,以致于问题的关键变为了如何可以调节 L 型和 R 型思惟模式,以期提升大脑的总体思惟能力和效率。

利用大脑

咱们能够利用如下方式刺激大脑以期更高效地利用大脑。

  1. 使用多感官获取反馈;

  2. 试着改变一些原有的习惯,大脑是善于适应改变的;

  3. 试着无心识地绘图;

  4. 在接受指导以前先进行尝试;

  5. 在整理本身的思路以前,先给本身时间和空间放纵和创造;

  6. 结对编程。结对编程中,编码者集中注意力于小段代码,使用 L 型进行开发;观察者总览总体,使用 R 型感觉。这是一种经常使用的结合 L 型与 R 型的例子;

  7. 使用引喻帮助本身寻找答案;

利用大脑的思路在于试着抓住 R 型出现的时机,并充分利用 R 型和 L 型各自的特色—— R 型先行,L 型随后。

因为 L 型在平常思惟和逻辑中起到了相当重要的做用,以致于「内存总线」长期被 L 型占据。于是若是咱们试图利用 R 型模式,使本身脱离高度集中和理性的状态就显得很是必要。咱们能够经过这些方式训练 R 型,使其做用可以发挥:

  1. 晨写和自由写。在早起后意识朦胧的状态中,L 型还未彻底占据,此时提笔书写,不要过多地思考措辞和逻辑,有助于聚集 R 型的输出;

  2. 利用图像流。在脑海中想象一张图像,利用各类感官尽量细致地观察它。事实证实,心中想象的图像在不少状况下,是 R 型努力想要告诉咱们的事情;

  3. 散步。散步途中不要刻意进行问题解决方案的思考,给 L 型思惟倦怠的时机,使得 R 型能够运转;

此外,文中还提到了「醉酒书写,酒醒修改」,这也是一种切换 R 型思惟的方法。但切记,记忆是一种脆弱且昂贵的机制,咱们须要随时记录下 R 型输出的精辟领悟,不论什么时候何地。

调试大脑

调试大脑的要义在于探究和审视如下四大问题:

  1. 认知偏见:思惟如何被误导;

  2. 时代影响:同代人如何影响咱们;

  3. 个性倾向:个性如何影响思惟;

  4. 硬件故障:大脑的旧区域如何压制聪明的区域;

认知偏见

咱们须要重视如下偏见:

  1. 思惟定势:先前的见闻会影响到咱们以后的决定;

  2. 基本归因错误:错误地将行为归由于个性,而不考虑当时发生的情形;

  3. 自私的偏见:乐于接受成功的分赏,却拒绝承担失败的责任;

  4. 须要定论:对疑惑和不肯定性感到格外的不舒服。强行指定「项目截止时间」、「项目细节方案」等本就难以所有肯定的事情。与其说这是一种严谨,不如说是一种逃避和自我掩饰;

  5. 承认偏见:依据本身的成见和喜爱进行判断和选择;

  6. 曝光效应:咱们会对本身的熟悉的事情产生偏见,尽管这些「熟悉的事物」已经再也不好用;

  7. 霍桑效应:当人们知道本身在被审视的时候,每每会表现出异常的反馈,但这并不表示常态;

  8. 虚假记忆:大脑可能会混淆想象、暗示、以及真实发生的事;

  9. 括号简约谬论:在使用符号表明一个系统时,可能会丢失必要的细节;

  10. 名词谬论:觉得使用标签或符号进行抽象就能够彻底了解事物;

对于「须要定论」这一偏见,做者还引伸出了知识量之于项目进展的关系,代表在项目交付的结尾,咱们的智力会达到高峰,而项目最开始时则是无知的。于是,推迟决断,或许会有更好的解决方案。

时代影响

处于不一样时代的人有着各自的成长环境和时代背景。这些变因每每会成为一代人对于事物见解和处理态度造成的主要缘由。

在书中将其作以下划分:

  1. 1901 - 1924,大兵的一代,务实、地道的美国建设者;

  2. 1925 - 1942,沉默的一代,穿灰色法兰绒的墨守成规者;

  3. 1943 - 1960,婴儿潮的一代,道德仲裁者;

  4. 1961 - 1981,X 一代,自由选手;

  5. 1982 - 2005,新千年一代,忠诚,不冒险;

  6. 2005 - ?,祖国的一代;

这些特性每每来自于所处时代所经历的战争、技术革新、政策等因素。了解这些因素可使得咱们在与人相处、试图说服和接受领导时可以更多地考虑到时代的影响。

极可能你天生就喜欢你这一代人所钟爱的作事方式和价值观。但请意识到这种影响来源于何处。可能你的极端我的主义不是你独有的特质。可能你羡慕别人和指望本身拥有的特质不是来自沉思或者逻辑推理,而只是由于你出生在那个时代。

当你激烈的支持或同意一个观点的时候请记住这一点。你提出的论据是逻辑性的,仍是感情做怪,或者只是由于熟悉?论据在特定的情境中成立吗?是否真的考虑过别人的见解?

了解个性倾向

基于卡尔·荣格(Carl Jung)的研究成果,个性倾向能够分为四大轴线领域。

  1. 外向和内向;

  2. 感受和直觉;

  3. 思考和情感;

  4. 判断和知觉;

了解这些个性倾向除了找到本身的定位外,更重要的是了解到交往时合做者与本身的个性倾向差别极可能会左右结果。具备强烈性格差别的人之间的合做过程将极其困难,这一点在与人争辩的时候也会有所体现。

硬件问题

大脑不是生来完美的,它须要不断的发展。也正是由于这个缘由,一些老旧的区域时常会左右咱们的行为,并在某些情形下为咱们提供一些贴近原始的、表现生存本能的行为:

  1. 战斗、逃跑或者恐惧:当你在陈述时,忽然有人提出了尖锐的问题,你可能很是想要逃离现场;

  2. 当即行动:对于行动没有思考和计划,而只是处于冲动的兴奋点;

  3. 领头意识:拼命成为领头人,只是为了任意地对待下属;

  4. 守卫领土:毫不分享任何的信息、秘诀、技巧和空间;

  5. 在受到伤害时愤愤不平:花费全部的精力去责备别人,而不是努力解决问题;

  6. 吾即真理:以本身为中心,和本身一方的老是好的,反之必然是坏的;

  7. 见样学样:无条件不理性的模仿;

此外,书中还列举了电子邮件的例子:在没有即时通讯、电子邮件的日子里,人们互相交流须要经过纸质信件。从书写到等待邮递员收取邮件之间一般间隔较长的时间,人们会在这段时间以内再三思考本身的措辞和行为,并最终保持一种相对冷静的状态。反观现在论坛、即时通讯、邮件等平台的争执和谩骂,大多都是原始情感的当即输出,而不是通过高级思考活动的。

主动学习

大脑不是用于填充的容器,而是一束须要点燃的火焰。 —— 普卢塔赫

掌握持续学习的能力而不是技术自己,这一点对于软件行业更是如此。不管咱们多么热情地追逐技术的发展,老是会有新的技术或是技术的新版本须要学习。面对现在几年就会使得信息翻一番的时代,除了持续学习之外,没有别的办法。

但这种持续学习的方式不该是某些企业推崇的「羊浸式」教育。这种强烈的、陌生的、中毒性的清晰过程表如今培训领域就是周期性的、集中式的课程进修。公司和企业喜欢这种培训,由于它易于购买,便于安排时间,但的确不起做用。缘由在于:

  1. 学习不是一种强加的行为,而是须要主动作的事情;

  2. 仅仅掌握知识而不实践是无用的;

  3. 随机的方法,没有目标和反馈,每每只会获得随机的结果。

SMART 目标

为了可以在生活和实践中不断成长,咱们须要制定目标和任务,这些目标和任务不该是随意的,它们须要知足如下特性:

  1. 具体的(Specific):具体化本身任务,而不是提出一个模糊的目标;

  2. 可度量的(Measurable):能够度量定下的任务和目标,否则,也许是它还不够明确;

  3. 可实现的(Achievable):目标务必能够实现和操做;

  4. 相关的(Relevant):目标须要在本身的掌控之中,本身须要对其具有热情;

  5. 时间可控的(Time-boxed):为目标定下截止时间;

此外,咱们还应该主动的、多维度的制定目标。好比学习新兴的语言,或是涉猎其余学科。

在学习中,尽可能使用本身适合的学习方法。惯于利用视觉和听觉的人可能更适合于接受视频教育或参与讲座而不是静读。除此以外,参与学习小组和使用思惟导图也是不错的学习方式。

主动阅读

一辈子中,你所读的书可能比听的讲座多得多。可是,相比于任何一种学习方法,阅读是最为低效的。

做者在书中提出,使阅读更为有效的方式是主动,而不是埋头苦读。可操做的一种方法被称为 SQ3R:

  1. 调查(Survey):扫描目录和每章总结,得出整体见解;

  2. 问题(Question):记录全部问题;

  3. 阅读(Read):阅读所有内容;

  4. 复述(Recite):总结,作笔记,并用本身的话进行描述;

  5. 回顾(Review):重读,扩展笔记,进行讨论;

切记,写做和阅读同等重要,咱们须要采起合适的方法进行主动阅读,也须要利用思惟导图等方式聚集思考,进行写做。

其余方法

  1. 重视文档的力量。把文档看成自学的另外一种方式,重视文档制做的过程而不是文档自己。

  2. 以教代学。尝试向某人甚至是桌上的玩偶讲述本身学习的内容或是遇到的问题,一般能够帮助咱们更好的理解和记忆知识,或是高效地发现问题。

积累经验

如何学习

先进行知识的灌输,再期待往后会使用到它们,这实际是一种本末倒置的事情。咱们应该在观察和「玩耍」中构建知识和学习方法。

玩耍的第一层意义在于非目的性探索,咱们不只仅是要接收信息,也要亲自探索和构建思惟模型。另外一层意义在于提高乐趣,乐趣的提高有助于咱们调动所有的感官探索事物。结合书中先前章节的内容,咱们经过这一方式再次调用的 L 型与 R 型思惟。

学习的另外一要义在于利用现有的知识。咱们在遇到问题时,应该将其分解为若干个更小的、更易于管理的部分,分红大脑足以容纳的几个部分。书中提到了波利亚的解题思路:

解决问题前,先提问本身:

  1. 未知量是什么?

  2. 已知量是什么?

  3. 条件是什么?

可使用以下的技巧:

  1. 努力回想拥有相同或相似未知量的常见问题;

  2. 画一张图;

  3. 解决一个相关的或者更简单的问题,放宽限制,或者使用已知量的子集;

  4. 是否已经用上了全部的已知量和条件,若是没有,为何?

  5. 尝试从新叙述这个问题;

  6. 尝试从未知量推导已知量。

这种解决思路实际上能够简述为:若是解决不了当前的问题,那么是否能够解决相似的问题?可是切记,这种思路也许不能适用于某些状况,好比当新旧问题的思路彻底不一样时,就应该彻底摒弃旧方法。

应对失败

错误是发现的大门,证明失败出现的近乎必然性,但须要注意如下几点:

  1. 创建探索环境:尽可能创建安全可控的环境去应对尝试新的技术和想法;

  2. 自由实验:尝试寻找问题的其余解;

  3. 可以原路返回稳定状态:这意味着咱们能够在发生错误时迅速回到以前的状态,分析错误、修改方案或尝试其余作法;

  4. 重现任意时刻的工做产品:咱们须要可以回到程序的任意版本;

  5. 可以正视进展:寻找一种证明进展的方法。

有一种失败并不能为咱们带来收获,反而有可能会扼杀学习的热情。为此,咱们须要了解学习诀窍,好比适度延长反馈的时长、在修正错误时首先进行观察而不是马上动手等。

正视压力

最后期限会使得大脑恐慌,并且会使得、本身处于一种「压力宿醉」的状态中。在这一状态后,咱们的创造力会一直受到压制。

当压力出现的时候,咱们所观察的视野范围会急剧缩小,L 型思惟霸占了总线,使得 R 型彻底得不到发挥。于是,在压力出现的时候,咱们更须要的是放松。在项目之中给本身提供「容许失败」的领域是一种不错的手段。

超越感官

大脑有时会先入为主地给咱们提供信息,而这些信息一般伴随着错误的预测、旧信息与偏见。这种现象一般基于记忆和想象的经验,于是咱们能够好好地利用它,好比在大脑中模拟本身的成功、断言本身已经改正了某一缺点、在跑步前先进行负重运动等。

伪装本身能够成功,那就真的会成功。

提升注意力

一个海军飞行员在夜间以每小时 224 千米的速度在甲板上着陆一架 18 吨重的飞机,可能比一个普通少年切下一片硬面包圈更加安全。

提升注意力的方法有不少种,如下是书中的一些建议:

  1. 使用 wiki 或其余手段管理本身的知识,这样在须要的时候它们就会本身冒出来;

  2. 优化当前情境,避免情景切换形成注意力转移和时间浪费,咱们的大脑没法很好地支持情境切换;

  3. 避免因电子邮件、推送消息、屏幕切换等分心,将注意力集中在当前屏幕的当前焦点;

  4. 有效地组织任务,使用记事贴保存外部信息,而不是动态的刷新头脑;

  5. 积极地管理干扰:如制定会议和可打断的时间段、安排邮件处理时间等;

  6. 保存情境堆栈:当本身被打扰时,将必要的信息记录下来,而不是在回归情境时从新回忆;

  7. 布局工做空间,扩大情境保存空间。

可是,有时咱们也须要转移注意力以浸泡本身的意识,给本身以思惟发散的时间来得到更多的创造力。

超越专家

咱们须要执行力和决心,摒弃「不做为」,步步为营、不断为下一个目标努力。在成为专家以后,也要保持一个新手的头脑,须要像小孩同样拥有无穷的好奇心,充满问题和惊讶。咱们须要不断评估本身,不要让过去的智慧使得本身看不到眼前的现实。

相关文章
相关标签/搜索