程序员的思维修炼(Pragmatic Thinking and Learning - Refactor Your Wetware)

Table of Contents

https://book.douban.com/subject/5372651/

笔记本导出 程序员的思维修炼:开发认知潜能的九堂课 (图灵程序设计丛书 6) 亨特(Andy Hunt)

1. revision 1

软件并不是在集成开发环境(IDE)或其他工具上设计出来的,它是在我们的大脑中想象和创造出来的。 软件是在头脑中创建的。 Software is created in your head.

切忌随波逐流。 Only dead fish go with the flow.

由于现实世界的相关性,小的事物可能会有意想不到的巨大影响。这种不成比例的影响作用是非线性系统的标志,也许你并未注意到,现实世界毫无疑问是非线性的。

一切都是互相关联的。 Everything is interconnected.

有些东西是基础的、各领域相通的。 There's something funda mental here.

专家通常很难把他们的行为恰如其分地解释清楚,他们的很多行为是如此地熟练以至于已经变成无意识的了。他们的大量经验都是通过大脑的非语言、无意识区域存储的,这让我们难以观察,而专家则难以表述。 清晰表述专业技能十分困难。 It's hard to articulate expertise.

让我们来看一看从新手到专家所经历的5个阶段。

  • 新手需要指令清单。 Novices need recipes.
  • 高级新手不想要全局思维。 Advanced beginners don't want the big picture.
  • 胜任者能够解决问题。 Competents can troubleshoot.
  • 精通者能够自我纠正。 Proficient practitioners can self-correct.
  • 专家凭直觉工作。 Eaperts work from intuition.

大多数人都是高级新手。 Most people are advanced beginners.

而且需要辛勤工作——只是在某领域工作十年是不够的。你需要实践。根据著名认知科学家Dr. K. Anderson Ericsson的说法,积极的实践需要四个条件。

  • 需要一个明确定义的任务。
  • 任务需要有适当难度——有挑战性但可行。
  • 任务环境可以提供大量反馈,以便于你采取行动。
  • 提供重复犯错和纠正错误的机会。 稳步做这种实践十年,你就会达到目标。

在程序员和其项目经理或者项目架构师的身上可以看到非常类似的问题。程序员对负责架构、需求甚至业务流程的相关人员的反馈要么根本没有,要么被严词拒绝,要么干脆被大家遗忘在脑后。程序员经常实现一些他们明知道是错误的东西,忽略了明显的警告信号,这非常类似于上例中的护士行为。敏捷方法有助于促进所有团队成员的反馈并有效利用,但这只是成功的一半。

这两个CPU对应着大脑中两种不同的处理方式。我们把1号CPU的线性处理风格称为线性模式,或简称L模式。我们把2号CPU的异步、综合处理风格称为富模式,简称R模式。 这两种模式你都需要:R型对直觉、问题解决和创造性非常重要。L型让你细致工作并实现目标。每一种模式都有助于大脑的工作,如果想获得最佳性能,需要两种模式协同工作。

R型不能直接控制。 R-mode isn't directly controllable. 这是因为R型是异步的。它作为后台进程运行,处理过去的输入,努力挖掘你需要的信息。因而它要浏览的信息非常多。 R型在存储输入方面非常卖力。事实上,可能你的每一次经历,不论多么平淡乏味,都会被存储。但是它不一定被索引。大脑把它存储起来(好比存储到硬盘里),但是不会建立一个指向它的指针或者索引.

L型处理令人感到舒适、熟悉而轻松。L型提供以下9种能力。 语言能力 使用词语来命名、描述和定义。 分析能力 有理有节分析事情。 符号能力 用符号表示事物。 抽象能力 抽取小部分信息(本质),并用其表示事物整体。 时间能力 遵时循序。 推理能力 基于理智和事实得到结论。 数字能力 使用数字计数。 逻辑能力 基于逻辑(定理、明确的论点)得出结论。 线性思维能力 按照关联、依序推演问题和思考,经常会得出收敛性结论。

R型是非语言的,它可以获取语言但是不能创建语言。它喜欢综合学习:集合事物形成整体。它总是如实地反应事物,从这一点来说,它非常具体实在,至少目前是。它使用类比来评价事物之间的关系。它喜欢听好听的,而且不愿意为守时而费心。它不受理性的约束,因为它不需要基于原因或者已知事实来处理输入——因而,它完全愿意暂时不作任何判断。 R型绝对是注重整体的,总是希望一次就能看到事物整体,感知整体的模式和结构。它具有空间性,喜欢弄清楚事物之间的空间关系,部分如何形成整体。最重要的是,它是直觉性的、跳越性的思维,通常基于不完整的模式、直觉、感觉或者视觉影像来做判断。 但是总的来说,这种模式令人感到不那么舒服。这些特点似乎更适合艺术家和其他奇才(weirdo)。而不是工程师,也不是我们

我们需要更多地使用R型,因为R型能够提供直觉,这是成为一名专家所迫切需要的。没有它,我们就不能成为专家。

神经可塑性(大脑的可塑本质)也意味着你能够学习的最大容量或者你可以获得的技能数量不是固定的。没有上限,只要你相信这一点。根据斯坦福大学研究心理学家、Mindset: The New Psychology of Success [Dwe08]的作者卡罗尔·德韦克的说法,那些不相信自己能增长智力的学生的确做不到。而那些相信自己大脑可塑性的学生则能够很容易提高能力。

人应该努力学习洞察和培养自己内心深处的灵光一现,这远远胜于外面流光溢彩的整个世界。然而,人总会下意识地抛弃自己特有的想法,仅仅因为那是他自己的想法。 ——拉尔夫·瓦尔多·爱默生(1803—1882),美国散文家、思想家、诗人

如果L型占用了这条总线,就会阻碍R型干活。有趣的是,很多常见的休闲活动都能够激活R型并停止L型的占用:听音乐、绘画、静思、慢跑、针线活、攀岩,等等。 为了访问R型,必须给大脑分配一个会被语言性、分析性的L型拒绝的工作。

思维的两种方式天生就是一起工作的。例如,首先运用类比方法来解决关联性、理论性的问题,然后运用分析法来验证你的想法。不过请记住,这不是单向旅途,你需要回到R型以保持思维的流畅。R型是源头,你要给它自由、无限的空间。

酒醉写作,酒醒修改

事实上,你有很多出色的技能和想法是无法用语言表达的。如前面所说(第3章,认识你的大脑),你能够识别数以千计的面孔,但是当你尝试去描述一张面孔——配偶的、父母的或者子女的——不论精确与否,你都无法用语言来形容它。

我们似乎有一种文化倾向,那就是本末倒置:首先努力地获取信息,然后希望以后再用到它。这是大多数正规教育和公司培训的基础。但是现实世界不是这样运转的。例如,假设你在上舞蹈课,结果发现在真正开始跳舞之前你必须得通过“舞蹈技能”的测试。当我这样说的时候,听起来很荒谬是吗?西蒙·派珀特(Seymour Papert)也是这样认为的。

派珀特和瑞士著名心理学家让·皮亚杰(Jean Piaget)认为,真正的学习——对你有用的学习——来自实践和认知,而不是外部的教学活动或者死记硬背。他们的方法称为构造主义:我们通过构造而学习,而不是学习来构造。

这是运用内在诀窍的关键要素:不要把精力放在纠正一个一个的细节上,只需要具有意识。接受事实是第一步,只要意识到它即可。不要做出判断,不要急于拿出方案,不要指责。 你需要尝试培养非判断性的意识:不要想着来纠正,但是在出错时要知道,然后再采取行动纠正。

当大脑受到压力,它会主动停止一些思考,眼界会缩小,不再考虑可能的选择。更糟糕的是,你把R型完全拒之门外:L型主导一切。当你认为时间至关重要时,R型根本没有机会工作。 你的搜索引擎、创造力和聪明才智也是这样。正如我们之前提到的滑雪教练或者贝司老师,由于他们释放了一连串的口头指令,你的思维也会被冻结。R型同样被拒之门外了。

好问题是没有答案的。它不是一个需要拧紧的螺栓,而是一颗种下的种子,由它可以收获一片思想的绿洲。

我们不能同时关注太多不同的东西,因为当你的注意力从一个事物转移到另一事物上时,你需要切换情境。不幸的是,我们的大脑硬件无法很好地支持情境切换。需要平均20分钟返回到原来的工作状态。 It takes twenty minutes to reload context.

我最喜欢的便携式写作工具之一,就是我的夏普Zaurus。在它的生命即将走到尽头时,我去掉了它里面所有的东西,只剩vi编辑器。我卸掉了无线网卡,仅使用CF存储卡同步。此时的设备使我很少分心。事实上除了写作没有别的功能。没有游戏,没有电子邮件,没有网络——只有你写作的章节和文字。这是很艰苦的,但很有效。

你在处理电子邮件方面比自己想象的更有控制力,这取决于你查看和回复电子邮件的频率。下面是一些尝试:在一天中限定具体的、预定的时间来处理电子邮件——但可能不是每天的第一件事。设定一个时间,查看并对电子邮件排序,并且设定它的时间。在设定时间后进入真正的工作。

请记住危险不在于做了错事,而在于根本没去做事情。不要害怕犯错误。

对于专家来说最致命的弱点是像专家一样行动。一旦你相信自己的专业水平,你就会对其他的可能性视而不见。你停止了好奇心。你可能开始抵制所属领域的改变,担心在你花费了很多努力才得以精通的主题上失去权威。你自己的判断和看法不再支持你,而是囚禁你。

认识你自己,认识当前时刻,认识你所处的情境。我认为失败的最大原因就是我们往往让事情自由发展。除非我们意识到一些新的属性,否则我们就会过时了。达芬奇在600年前抱怨说:“人们看却没有看见,听却没有听见,吃却没有味觉,接触却没有触觉,说话却没有思考。”我们一直在这样做:我们嘲笑快餐却并没有认真品尝它,我们听用户或者赞助商告诉我们他们在产品中到底想要什么,但是我们没有听到。我们看却没有看见。我们以为我们已经知道了。

2. 第二章 从新手到专家的历程

如果仔细阅读以上这些问题,你可能已经注意到这些问题听起来是那么地熟悉。请允许我稍微修改一下这些问题,以反映我们软件开发的职业特征。程序员往往认为自己是一种工具,从而漠视工作。他们只是执行训练有素的分析师的指令,人们不期望他们对项目的设计和架构有所创见。由于薪酬等级的不平等,专家级程序员争先恐后地离开一线编码工作,通过管理、教学或者巡回演讲赚更多的钱。软件工程教育开始受到质疑。很多人认为正规的实践模式是最好的教育方法。这种对正规方法和工具的过度依赖削弱了实践中真正经验的作用。最后,他们忽视了真正的目标——项目结果。无论采用何种过程和方法,无论谁参与项目,结果是什么?项目成功了吗?在不断进步吗?还是相反?嗯,这样听起来更熟悉一点。事实上,这些都是我们行业目前面临的严重问题。

新手需要快速成功和与情境无关的规则。你无法指望他们独自处理新情况。在一个给定的问题空间内,他们会停下来思考所有事情,不论相关与否。他们不把自己看做系统的一部分,所以没有意识到他们施加的影响——不论是积极的还是消极的。提供给他们所需的帮助而非全貌,否则,那只会把他们弄糊涂了。在另一端,专家需要获得全貌;不要用约束性、官僚的规则妨碍他们做出自己的判断。你需要从他们的专业判断中获益。请记住,不论怎样他们认为自己是系统的一部分,并将这些事情当作自己的事情来做,他们的投入超出你的想象。

3. 第三章 认识你的大脑

双 CPU模式 1号 CPU可能你最熟悉:它主要负责线性、逻辑思维和语言处理。它就像传统的冯诺依曼式的 CPU,按步就班地处理指令。 1号 CPU相对缓慢,使用了大脑中相对较少的一部分资源。它采用了一个“空闲循环”的程序运行。如果 1号 CPU没有处理任何其他指令,它就只会生成一个语言的内部流。这就是你大脑中的那个微弱声音 ①。但是, 2号 CPU则有很大不同。不再是采用线性、按步执行的方式,而更像是一个神奇的数字信号处理器。它就是大脑中的 Google:把它想成一个超级正则表达式的搜索引擎,负责处理搜索和模式匹配。像 Google一样,它可能会抓住不明显相关的匹配模式。当你“思考”其他事情时,它可以去寻找搜索,然后异步地返回结果集——可能数天之后了。由于 2号 CPU不做任何语言处理,这意味着它的结果也不是言语可以表达的。请注意这两个 CPU共享通往内存核心的总线,每次只有一个 CPU可以访问内存。这意味着如果 1号 CPU占用总线, 2号 CPU则无法获取内存执行搜索。同样,如果 2号 CPU在进行一个高优先级的搜索, 1号 CPU也无法访问内存。它们互相干扰。这两个 CPU对应着大脑中两种不同的处理方式。我们把 1号 CPU的线性处理风格称为线性模式,或简称 L模式。我们把 2号 CPU的异步、综合处理风格称为富模式,简称 R模式。两个 CPU提供了 L型和 R型处理模式。 Two CPUs provide R-mode and L-mode.这两种模式你都需要: R型对直觉、问题解决和创造性非常重要。 L型让你细致工作并实现目标。每一种模式都有助于大脑的工作,如果想获得最佳性能,需要两种模式协同工作。下面让我们研究一下这些重要认知模式的细节。

长期以来,人们认为记忆有些类似于闪存,它是通过具有实体暂留性的神经元来录制。事实上,记忆由一个执行循环体主动维护着。即便是在易失性静态 RAM中,只要加电数据就可维持。事实上,大脑没有静态 RAM,而是具有动态 RAM, RAM需要不断刷新,否则数据就会消失。这就是说,甚至连骑自行车也不是想当然可以做的事情。你可能忘掉一切。无论曾经有过多么痛苦或美好的经历,你都可能丢失。因此,大脑不是软件。软件不会老化,不会退化。但是,大脑必须刷新,必须使用,否则就会丢失记忆。如果大脑停止运行,它就忘记了一切。

但是,毕加索 ①曾说过一句著名的话:“计算机一无是处,它们只能给你答案。”发表如此异端的言论,他有何依据呢?如果“答案”是无用的,那么这就意味着问题更重要。事实上,那种对事物截然相反的看法正是 R型思维的一个标志。对于我们这些 L型思维根深蒂固的人来说, R型特点听起来有一些奇怪、不协调甚至非常不舒服。

R型是非语言的,它可以获取语言但是不能创建语言。它喜欢综合学习:集合事物形成整体。它总是如实地反应事物,从这一点来说,它非常具体实在,至少目前是。它使用类比来评价事物之间的关系。它喜欢听好听的,而且不愿意为守时而费心。它不受理性的约束,因为它不需要基于原因或者已知事实来处理输入——因而,它完全愿意暂时不作任何判断。 R型绝对是注重整体的,总是希望一次就能看到事物整体,感知整体的模式和结构。它具有空间性,喜欢弄清楚事物之间的空间关系,部分如何形成整体。最重要的是,它是直觉性的、跳越性的思维,通常基于不完整的模式、直觉、感觉或者视觉影像来做判断。但是总的来说,这种模式令人感到不那么舒服。这些特点似乎更适合艺术家和其他奇才( weirdo)。而不是工程师,也不是我们 ①。

如果你是困在笼子里的实验室动物,你永远都不会产生新的脑细胞。如果你是困在斗室里的程序员,你永远都不会产生新的脑细胞。相反,如果处于一个丰富的环境中,里面充满了需要学习、观察和交互的事物,你就会产生大量新脑细胞和新的神经联系。几十年来,科学家被人造环境(无菌实验室笼子)误导了,因为人造环境只会产生人造数据,这再次证明情境是关键。你的工作环境需要提供丰富的感观机会,否则它真的会损坏大脑。

你可以给大脑重新连线。想要在某些领域得到更多能力?你可以重塑自己。你可以重新改造大脑的各个领域来执行不同功能。你可以把更多的神经元和内部连接用于特定技能。你可以根据自己的需要构建大脑。先别太兴奋,请把手术刀和钳子收好,有更简单的方法来做脑部手术。我们不需要工具。直到最近,人们还相信大脑的功能和内部“关联”从我们一出生就固定了。也就是说,大脑的各个局部区域根据确定的规则执行相应的功能。一部分皮层处理视觉输入,另一部分处理味觉,等等。这也意味着你所具有的做事能力和智力在出生时基本就确定了,没有另外的训练或者开发可以使你超越这个极限。幸运的是,对我们和以后的人们来说这是错误的。

不是只有信念有助于重组大脑,其实在大脑中也存在竞争——争夺脑皮层地盘。你持续使用和实践的技能会逐渐占据统治地位,这样一来,大脑里就会有更多的部位被关联起来。同时,较少使用的技能会失去阵地。“不使用就会失去”,这句话用在这里可谓恰如其分,因为大脑会把更多的资源用于你做得最多的事情。可能这就是音乐家不断练习音阶的原因,这类似于刷新动态 RAM。想做一名更好的程序员吗?那就多编码,深思熟虑,专注实践。想学习一门外语吗?那就投入进去,不停地说,用它思考。大脑会很快意识到并调整自己为这种新用途提供更多方便。

4. 第四章 利用右脑

小学教育工作者很早就知道,多感官的反馈是增强理解和记忆非常有效的方法。这是一项相当成熟的教学技术。这可能就是为什么你读小学时曾被强迫制作丑陋的古罗马透视画或者庞贝 ③的纸质塑像。

大脑总是渴望接受这种额外的、新奇的刺激。大脑擅于持续适应变化的环境。因此,要定期改变环境,满足你的大脑。任何一种感官的参与都可能是有益的,你可以牵着狗漫步在沙沙作响的树叶上,打开窗户感受一下今天的天气(事实上是呼吸一下新鲜的空气),或者只是走进休息室、健身房(那里的空气可能稍差,不过锻炼对提高大脑性能同样非常有用)。

这就成了捡了芝麻丢了西瓜。你不能忽略思维模式的任何一面:你需要两者协调一致。你需要让 R型打头阵,然后转到 L型去“生产”出来。诀窍 13 R型开路, L型紧跟。思维的两种方式天生就是一起工作的。例如,首先运用类比方法来解决关联性、理论性的问题,然后运用分析法来验证你的想法。不过请记住,这不是单向旅途,你需要回到 R型以保持思维的流畅。 R型是源头,你要给它自由、无限的空间。

尤其对于博客来说,这种工具本身就可能阻碍你写作。例如,如果你是用第三方的 web服务写博客(如 TypePad或者 Blogspot),离线时你会写吗?或者如果灵感突现时你恰好不能上网,这会不会成为你不写下来的理由呢?如果你是用自己的博客软件写作,你花在调整软件或者设计博客上的时间是不是比创建新文章还要多?虽然没必要做反对新技术的顽固派,但将东西写在纸上确实是几千年来一直都很管用的。将想法首先捕捉到纸上,然后再输入到博客中,这样做其实更迅捷。一旦开始写作,一定要注意坚持不懈。不要为技术问题而分心。不必担心有些话是不是还需要润色,先把它们都写下来。那些著名的信件都是被精心保存下来的,你的呢?你有备份吗?一旦写了博文,除了 Google缓存你还在其他地方存档了吗?

我第一次听说这种技术是在一本写作教材里(参见 The Artist’ s Way[ Cam02]),因为它是作家惯用的技术。但是让我惊讶的是,现在流行的 MBA项目和其他高级管理课程中也提到了这种技术。下面就是规则。晨写是早晨要做的第一件事——在喝咖啡之前、在收听交通广播之前、在洗澡之前、在送孩子上学之前、在遛狗之前。至少写三页,手写,不需要键盘、电脑。不要审查删减你写的东西。不论是优秀的还是陈腐的,只管写下来。坚持天天写。如果不知道自己该写什么也没关系。一位参加这种培训课程的高管曾经强烈抱怨这种练习完全是浪费时间。他抗拒式地写了三页“我不知道写什么,废话,废话”。这也不错。因为一段时间之后,他注意到别的东西开始出现在他的晨写中。市场计划,产品方向,解决方案,创新方法。他克服了最初的抗拒,发现这是一种获取想法的有效方法。这种方法为什么会起作用?我认为这是因为晨写让毫无防备的大脑倾倒想法。早上刚起床时,你还没有像你想的那样清醒。潜意识仍然占主角。你还没有提起所有防备,也还未适应有限的现实世界。你可以直接连通 R型,至少一小会儿。

使用武术来提高注意力 June Kim告诉我们这样一则经历:“在开始练习武术之后,我感觉到我的注意力持续时间和控制能力(比如在糟糕的环境下集中注意力)都有了提高。我一直在向软件开发人员和其他知识工作者推荐我的实践经验。它就是气功,它既有武术的一面,也包含太极、冥想和呼吸的方面。“我已经从一个开始练习的朋友那里看到了显而易见的变化。用不了一个月,你就能明显感受到这种差别。他告诉我他现在可以更容易地集中注意力,生活质量也提高了。”瑜伽、冥想、呼吸技术和武术都会影响大脑处理信息的方式。我们是复杂的系统,正如我们已经认同系统思考的观念,这意味着一切都是关联的。甚至一种特殊的呼吸方式,也会显著影响你的思维方式。

5. 第五章 调试你的大脑

在你出生时,世界上的任何事情都是平凡的,都是世界运转的天然组成部分。当你在十五岁到三十五岁之间时,世界上创造出的任何事物都是新鲜的、令人振奋的、革命性的,你可能以此为职业。三十五岁之后创造出的任何事物都是有悖于事物的自然顺序的。——道格拉斯•亚当斯,《怀疑的鲑鱼》

在手写书信的过去,用于亲笔写信的时间和等待寄出(等待邮递员)所造成的不可避免的延迟使得更显冷静的新大脑皮层可以进行干预,并提醒你这或许不是一个好主意。但是互联网的时间绕过了新大脑皮层,将我们的原始反应暴露无遗。它允许你充分发泄你的最初本能反应,不论是通过电子邮件、博客评论还是即时消息。虽然这种快速、暴力的响应适用于应对丛林中的捕食者,但是对于与同事、用户或者卖方合作项目却没什么帮助(当然,可能有助于应对掠夺型的卖方)。

6. 第六章 主动学习

在这里, SMART代表具体的、可度量的、可实现的、相关的和时间可控的( Specific, Measurable, Achievable, Relevant, and Time-boxed)。对于任何目标(减肥、炒老板鱿鱼、征服世界等),你都需要制定一个计划,定出一系列帮助你实现目标的任务( objective)。每一个任务都应该具有 SMART特性。

使阅读更有效的办法是更主动一点,而不是随便捡起一本书来开始埋头苦读。广为使用的好方法为数不少,我们来仔细研究其中一个,但是与其功效类似的方法还有很多。这项学习一本书或其他印刷品的方法称为 SQ3R,是该方法具体步骤的首字母缩写 ①。调查( Survey):扫描目录和每章总结,得出总体看法。问题( Question):记录所有问题。阅读( Read):阅读全部内容。复述( Recite):总结,做笔记,用自己的话来描述。回顾( Review):重读,扩展笔记,与同事讨论。

7. 第七章 积累经验

但是寻找类似点也有坏处。你学习了一门新语言,概念与你的上一门语言相关。这就是为什么多少年来我看到如此多的 C + +代码看起来像 C,如此多的 Java代码看起来像 C + +,如此多的 Ruby代码看起来像 Java,等等。这是从一套技能到下一套技能的正常过渡。危险就在于没有完成过渡和坚持混合的方式,当你没有完全接受新技能而是处于过渡状态中时,新老方式被混杂在一起,这时就有危险。你需要学多少就得忘多少。例如,从赶马车到开汽车,从打字员到使用计算机,从过程式编程到面向对象编程,从桌面的单应用到云计算。每一种转化,新的方式从根本上与旧的不同。既然是彻底不同,你就必须放弃旧的方式。

从相似点中学习,从差异中忘却。另一个危险是你对以前“相似”问题的理解可能是完全错误的。例如,当尝试学习一门函数式编程语言时,如 Erlang或者 Haskell,很多你之前学习的编程知识会阻碍你的学习。从所有顶用的方面来看,它们与传统的过程式语言不同。失败潜伏在每一个角落。这是一件好事,我们马上就会看到。

内在诀窍理论提供了解决方法:避免向学生传授一长串指令,而是教学生一种意识,并使用这种意识来纠正学习表现。意识是一种超越新手层次的重要工具。例如,在《音乐的内在诀窍》[ GG86]一书中,作者提到了一个教贝司手的故事。作者曾经用类似那位滑雪教练的方式教学:手臂保持这种姿势,头这样歪,身体这样倾斜,现在放心弹吧。当然,可怜的学生看起来像是僵硬的饼干。因此,这位音乐老师又尝试了其他办法。他让学生按自然状态演奏,但是引导他认真观察自己演奏的每一个方面——感觉如何,姿势如何,哪些乐章困难,等等。然后,无需解释,他纠正了学生的姿势和指法,并手把手指导了几个小节。指令是一样的:观察所有方面,现在感觉如何?开始演奏吧。每到这时,他的学生在这种意识练习之后都会表现出极大的进步。知道即可。 Just be aware.这是运用内在诀窍的关键要素:不要把精力放在纠正一个一个的细节上,只需要具有意识。接受事实是第一步,只要意识到它即可。不要做出判断,不要急于拿出方案,不要指责。你需要尝试培养非判断性的意识:不要想着来纠正,但是在出错时要知道,然后再采取行动纠正。

不仅仅是调试,收集需求也是一样的——特别是有现存系统参与时。杰拉尔德•温伯格认为,当你与客户交谈时,大多数客户都会在五分钟内告诉你他们最严重的问题和解决方案 ④。倾听客户的心声非常重要,不要把你的注意力放在苦苦追求酷的方案上。你可以随后再展开思维风暴,但是首先要充分了解。 ④参见《咨询的奥秘》( The Secrets of Consulting)[ Wei85]。内在诀窍的理念关注反馈,以此增长专业知识。培养,然后倾听经验的内在声音。只有运用倾听才会起作用。倾听、倾听、倾听。遗憾的是,这并不总是那么容易,正如我们马上要看到的。

当大脑受到压力,它会主动停止一些思考,眼界会缩小,不再考虑可能的选择。更糟糕的是,你把 R型完全拒之门外: L型主导一切。当你认为时间至关重要时, R型根本没有机会工作。你的搜索引擎、创造力和聪明才智也是这样。正如我们之前提到的滑雪教练或者贝司老师,由于他们释放了一连串的口头指令,你的思维也会被冻结。 R型同样被拒之门外了。

习惯“成功”的感觉非常重要,值得先假冒一次。也就说,你需要人为地创造条件感受一下,为了体验一下这种近似的成功感,不论需要何种脚手架,你都应配置。诀窍 38让大脑为成功形成惯例。游泳者的体验方法是:在身上绑一根绳子,被拖着在水中快速前进 ⑦。游泳者在凭借自己的能力达到这个速度之前,可以体验一下感觉。这不仅仅是一种慷慨的好意,在这次体验之后,游泳者的表现会显著提高。 ⑦感谢琼•金姆提供的示例。你可以尝试另外的方法。如果愿意,你可以使用负面脚手架,或者说不用脚手架。也就是人为加大客观条件的难度。然后当你真正尝试时,它就会显得很简单。跑步者可以在脚上绑上重物或者跑过齐腰深的积雪。 Ruby程序员可以用 C + +做一段开发。 C + +类似于把脚踝上绑上重物,在此之后,动态语言就显得非常容易了。

8. 第八章 控制注意力

你可能常常对自己说:“我很想去做,但我没有时间。”或工作中出现了新任务,而你认为自己只是苦于没有足够的时间来处理它。时间不是真正的问题。正如在前面所指出的(见 6. 3节),时间是你自己分配的。并不是我们没有时间了,而是我们注意力不够。与其说你没有时间,不如更准确地说你没有带宽。当你的带宽——你的注意力资源——过载时你将会错过某些事情。你无法学习,无法适当地开展工作,你的家人也许会开始认为你得了脑瘤或其他疾病。

在当今的数字文化中,这属于被称为认知超载的一种更大的、非常危险的现象。多种压力的混合,太多的多任务处理,太多分心的事,而且经常有大量新的数据待处理。科学家认为,试图把注意力同时放在几件事情上,意味着你在每件事情上都会处理得很差 ③。

例如,我做了一些定制,只需几个按键我就可以给地址簿中的人发送一个一句话邮件。表面上看来,这似乎没什么大不了的。但是,能够不访问邮箱就发送电子邮件是一个巨大的优势。比如你正在处理某项工作,突然想到必须要发送一封电子邮件给某人。也许你正在调试程序,并且意识到将会在午餐约会中迟到。你按下几个键,发送邮件,然后再回到调试。现在将这件事与通常的经历作一下比较。你正在调试,并且意识到必须发送一封电子邮件。你的情境切换到邮件处理程序上,把它打开,开始发送邮件,同时发现了收件箱中多了几封新邮件,这时干扰就出现了。你将会很快被新的邮件吸引,并失去了调试的思路。情境破坏了。

9. 第九章 超越专家

当你决心改变时,大脑并不是一定会与我们合作。虽然你有学习的意愿,但你的大脑一直在努力保持事情精简。就像一位过度积极的管家,如果大脑认为这项改变不值得付出感情、无关生死存亡,它就会轻视,就像我们之前提到的早上开车上班的例子。因此,你必须说服你的大脑,这项改变非常重要。你必须关心这件事情。现在请你注意……改变总是比看起来要困难得多——这是一个事实,而不仅仅是忠告。根深蒂固的老习惯在大脑中形成了一条神经高速公路,而且不会主动消失。你可以在旁边建立新的神经高速公路,走不同的路线,抄近道,但是过去的高速公路仍然存在。它们总是在那里等你回来,重新依赖它们。实践可能不会十全十美,但是却可以保持长久。

请记住老习惯依然存在,如果你又回到了以前的某个习惯,不要太责怪自己。大脑就是这样工作的。只要承认失误即可,按照新的想法继续前进。当然老习惯肯定会再次发生,但是要意识到它的出现,并重新回到正确的道路上去。不论是要改变学习习惯,戒烟还是减肥,都是一样的道理。