程序员如何管理好自己的思维.docx
《程序员如何管理好自己的思维.docx》由会员分享,可在线阅读,更多相关《程序员如何管理好自己的思维.docx(19页珍藏版)》请在冰豆网上搜索。
程序员如何管理好自己的思维
程序员如何管理好自己的思维?
好问题是没有答案的。
它不是一个需要拧紧的螺栓,而是一颗种下的种子,由它可以收获一片思想的绿洲。
——约翰•安东尼•查尔迪(JohnAnthonyCiardi,1916—1986),美国诗人和评论家
毫无疑问,我们生活在信息丰富的时代。
但往往过犹不及,过多的信息却导致了知识和注意力的匮乏。
置身于应接不暇的信息中,很容易失去思考的重心。
与其游荡在信息的高速公路中,不如主动地管理你的思维。
与第6章中的方法相同,你需要更加主动地管理思维,必须能够将重点放在你所需要的信息上,过滤掉身边大量的无用信息,在恰当的时候获取到恰当的信息。
既不会被无关紧要的细节所迷惑,也不会错失任何微妙的线索。
在本书的这部分,我们将沿着以下三点研究如何更好地管理你的思维。
增强注意力
管理你的知识
优化当前情境
注意力表现为关注感兴趣的领域。
你可以仅关注相当少的事情,让在此之外的,事件和见解逃脱你的注意。
当前情境下许多事情都会争夺你的注意力,有些是值得关注的,而大部分是无关的。
我们将会研究增强注意力的方法。
有时候,我们将“信息”和“知识”这两个词互换使用,但实际上它们是不同的事物。
信息是在特定情境下的原始数据。
例如,微软公司花费了10亿美元收购了一些公司只是一条信息,当今不缺少信息。
而知识才揭示了信息的意义。
你针对信息花费时间、注意力和技巧,并从中获得了知识。
再看微软的收购行动,我们分析得出这将改变市场的格局,将提供更多的机会,并影响其他厂商的知识。
我们将会研究一个更好的方式来组织你的深谋远虑。
情境,超出了本书之前的使用范围,它是指你此刻正在关注的事物的集合。
比如,你正在调试一个程序,所有的变量、对象关联关系等构成了当前的情境。
把它看作某一特定时刻你正处理的信息的“工作组”。
理解这三个互相关联的主题将会帮助你更高效地管理思维。
第一件要做的事就是专心。
提高注意力
早在2000年我还在做有关实用编程演讲的时候,我听说了一个很奇怪的新闻故事。
在宾夕法尼亚州的达比市,一名老妇人走在前往杂货店的路上,一个年轻人跑过来并猛地撞上了这位妇人,然后跑开了。
老妇人担心被抢劫,于是很快检查了随身的钱包和贵重物品。
虽然受到了惊吓,但她的状态还好,于是继续走向杂货店。
她在店中和几个人交谈,并买了奥利奥饼干和一份报纸,然后离开了。
但当她回到家中,她的女儿马上尖叫起来,她看到妈妈的脖子上插着一把牛排餐刀。
太令人惊奇了,人竟然可以在分心的情况下忽视这么严重的事情。
在担心被抢劫的情形下,这位老妇人都没有注意到她脖子被刺伤的疼痛。
如果你都可以忽视掉如此明显的事情——比如插在你脖子上的刀——那么想想你身边还会有其他什么事情从你的注意力中逃脱。
注意力短缺
你的注意力是供不应求的。
每天有那么多的事情都争相获取你的注意,而你仅仅能关注其中的一部分。
在多处理器系统中有一个众所周知的设计问题:
如果不小心,就会导致某个CPU花费所有的运行周期与其他的CPU协调任务,但实际没有做任何工作。
同样,人们会很容易毫无意义地分散注意力,结果没有什么事情获得了我们充分的注意,我们也没有做任何有效的事情。
也不总是外部的事物在争夺你的注意力。
例如,在4.2节中我们看到的,L型模式的CPU有一种“空闲循环”程序。
如果没有更紧迫的事情值得你去注意,闲置循环将会停留在一些低等级的困扰或不紧急的问题上,如“午饭吃什么”,或重放某个交通意外或争吵。
这当然干扰了R型处理,你就又回到了使用半个大脑工作的状态。
你可能常常对自己说:
“我很想去做,但我没有时间。
”或工作中出现了新任务,而你认为自己只是苦于没有足够的时间来处理它。
时间不是真正的问题。
正如在前面所指出的(见6.3节),时间是你自己分配的。
并不是我们没有时间了,而是我们注意力不够。
与其说你没有时间,不如更准确地说你没有带宽。
当你的带宽——你的注意力资源——过载时你将会错过某些事情。
你无法学习,无法适当地开展工作,你的家人也许会开始认为你得了脑瘤或其他疾病。
如果你注意——真正集中注意力——你就可以完成很了不起的事情。
保罗•格拉汉姆(PaulGraham)在他的HackersandPainters:
BigIdeasfromtheComputerAge[Gra04]一书中提到:
“一个海军飞行员在夜间以每小时224公里的速度在甲板上着陆一架18吨重的飞机,可能比一个普通少年切下一片硬面包圈更加安全。
”
我可以很容易地回忆起当我十几岁的时候,我耐心地站在烤面包机前脑中闪过的念头。
这念头与英国松饼、百吉饼、面包、果酱和我面前忙碌的机器都无关。
少年的心很容易走神,而且随着年龄增长也不见得有所改善。
另一方面,飞行员是真正特别专注的。
在那种情形下,片刻的犹豫不决或错误,将导致壮烈地死去。
我们需要培养在没有任何危险的情况下,也能如此集中注意力的能力。
放松的、集中的注意力
下面尝试一件简单的事情。
坐下来待一会儿,不要想你昨天犯的错误或担心明天可能出现的问题。
着眼于现在,此时此刻的这一瞬间。
没有任何分心。
没有任何自言自语。
我就在这等着。
这并不容易,不是吗?
大部分冥想、瑜珈以及类似的练习都是为了这个相同的目标:
缓和大脑里L型嘈杂的声音所带来的痛苦,生活在此刻,不要将你的精力不必要地分散,因为内心中喋喋不休的杂事会击倒我们。
《公共科学图书馆—生物学》(PublicLibraryofScience-Biology)中发表的一份研究报告显示,冥想的训练可以提高人的注意力。
他们的测试衡量了在同时面对多种虚拟场合、多种刺激下,个体分配认知资源的状态。
听起来好像日常在办公室中一样……
得到大量冥想培训的人,胜过只接受了极少培训的人。
但最有趣的是,没有人在测试时冥想。
正如文章的结论:
“因此结果表明,密集的心理训练可以持久并显著地改善人们在相互竞争的刺激下,对注意力资源的有效分配,甚至人们并没有主动利用他们学到的技术。
”
换言之,在一天中你可以随时集中注意力,而不只是当你冥思或明确“注意”的时刻。
这是一个巨大的收益:
就好像通过体育锻炼,能获得更强、更长久的健康。
如果你想在一天中更有效地支配你的“注意力资源”,那么就需要学习一些基本的冥想技巧。
如何冥想
从世俗到宗教,有很多形式的冥想技术。
在这里研究一个行之有效的特定形式,它源于佛教传统,但你并不需要是一个佛教徒或做其他任何特别的事就可以有效利用它。
你想要的不是走神或入睡或放松或考虑巨大的奥秘(GreatMystery)或任何类似的事情(对于这些特别活动还有其他形式的冥想)。
相反,你想要的是沉浸到一种宽松的思维状态中,在这里你可以意识到自己和你的情境,不用做出任何判断和回应。
这就是所谓的内观冥想。
那一刻你意识到某些事情,但是没有额外的思考。
顺其自然。
在这种风格的冥想里,你需要做的“所有”事情就是注意自己的呼吸。
这不像听起来那么容易,但它的确有不需要任何道具或其他特殊设备的优点。
以下是具体步骤。
寻找一个安静的地方,摆脱干扰或中断。
这个可能是最难的一步。
舒适、清醒地坐着,挺直背。
让你的身体放松下来,就像一个玩具娃娃。
花点时间感受体内的任何紧张情绪,将其释放。
闭上眼睛,将注意力集中在呼吸——空气进入和离开你身体的这一点上。
注意呼吸节奏,吸气的长短和质量,吸气后屏气的短暂间歇,呼气的质量,呼气后屏气的短暂间歇。
不要试图去改变它,只是感受。
将思维集中于呼吸。
不要说话。
不要描述你的呼吸或其他任何想法。
不要与自己交谈。
这是另一个困难的部分。
你可能会发现自己在思考一些问题或在与自己交谈。
每当你注意力游荡开去,就要抛弃这些想法,轻轻将注意力回到呼吸上。
即使你的思维经常游荡,这个练习能使你发现自己的注意力在游荡,并且每次都能使自己回来,这对你是很有帮助的。
正如4.2节中的绘图练习,你需要停止自言自语。
在本例中,请你把注意力明确地放在呼吸上。
在绘图练习中,你努力阻止头脑中出现任何词语。
在本项练习中,词语可以出现——但你只需将其释放。
只要意识到即可,不去思考或作决定。
语言、感觉、想法以及其他任何东西来到时,你都不需要理睬它们,让注意力回到呼吸上。
进行这项练习时有一点非常重要:
不要睡觉。
你需要放松自己的身体和平静你的思维,但是要保持清醒,事实上,你要非常清醒地专注在呼吸上。
经过一段时间的练习后,你可以主动尝试控制自己的呼吸。
分段呼吸的方法是,将呼吸看作空气经过三个独立的仓库:
腹部
胸部和胸腔
胸部的最上部和锁骨(但不包括喉咙)
充分将体内气体呼出。
在吸气时,首先充满腹部,稍稍地停留,然后充满胸部,最后向上充满至锁骨。
保持你的喉咙打开,下颚放松。
不要紧张。
短暂停顿,然后正常呼出。
短暂停顿,然后重复上面的动作。
你也可以转换方法,自然吸气,然后以分段方式呼气,或两者都做。
在任何情况下,都要保持呼吸的意识,感受空气在你的肺中,并让其他的想法自然溜走。
当然,如果上述任何操纵呼吸的活动让你焦虑、气短或有任何的不舒服,请立即恢复自然呼吸。
没有人在对你的表现打分,做适合你的事,不要做得过火。
开始先尝试几分钟(比如三分钟)。
许多人在研究冥想的益处。
最近,研究人员发现,即使是孩子——中学生——也可以受益。
学生们参加了为期一年的学习,结果发现他们提高了保持平静警觉状态的能力,改善了有关情商的技能(自我控制、自我反省/意识、灵活的情绪反应),并提高了学习成绩。
对于坐着呼吸来说这是个不错的投资回报。
冥想听起来好像没什么意义。
但实际上意义重大。
我强烈建议你尝试片刻,因为专注是一种重要的技能。
实践单元
定期做冥想。
开始时,每天选取几个容易想起的时刻进行三次深度放松的“冥想”呼吸练习,例如,在起床时,在午餐、晚餐时,或参加会议之前。
最好在每天的同一时刻,尝试持续20分钟的冥想练习。
你能够开始平静内心的想法了吗?
在阅读下面的章节前尝试做这件事……
你必须立即停止阅读并尝试这件事,否则在阅读时你将会呼吸不适,将不能专注于下一节内容——非常奇怪的内容——有关如何主动地分散注意力。
通过分散注意力来集中注意力
有些问题的解决需要较少意识的参与。
这导致了一个有趣的问题。
怎样才算是“起作用”了?
当你将某些东西腌制12小时的时候,你是在“烹饪”吗?
当你闲坐着思考问题的时候,你是在“工作”吗?
是的,这就是答案。
创造力不是按照考勤钟来运转的,并且在压力下也一般不产生结果。
事实上,情况刚好相反:
你必须有意识地忘掉问题,让问题在思维中浸泡一会。
DoingNothing:
AHistoryofLoafers,Loungers,Slackers,andBumsinAmerica[Lut06]一书的作者汤姆•卢茨(TomLutz)说过:
“显然,对于许多人来说,创造过程中有大量时间你只是坐着而什么都没做。
”但是要澄清一下,这不是指没有做任何事情,指的是没做某些事。
在后工业化社会,这导致了一个问题。
这种关键的“思维时间”在大多数企业中一般是得不到批准和报酬的。
现在对程序员(或其他知识工作者)有一种普遍的误解,如果你没有在键盘上打字,你就没有在工作。
只有在你有一些待处理的数据时,才会把工作转移到无意识状态。
你首先需要在头脑中“填满”你知道的事实。
卢茨接着说,每个人都有自己的“浸泡”方式,也就是让他们思想发酵的方法(例如,我喜欢通过修剪草坪的方式)。
我们曾谈论R型如何获得运行的机会,但是有一个相关的想法来自意识的“多草稿”模型。
在《意识的解释》(ConsciousnessExplained)[Den93]一书中,丹尼尔•丹尼特(DanielDennett)博士提出了一种有趣的意识模型。
在任何特定时刻,你的头脑中包含了事件、想法、计划等多个粗略的草稿。
丹尼特将“意识”定义为某一时刻下,头脑中占有最多脑细胞或处理活动的某个草稿。
将多个草稿看作萦绕在头脑中的不同萤火虫云。
大部分萤火虫都自由地闪烁,荧光形成了云。
当几个云同步闪耀时,它们其实相当于接管了大脑片刻,这就是意识。
假设你的感官注意到了一些新的事件。
丹尼特博士说:
“一旦大脑的某些局部特定部分观察到了一些事件,该信息内容就不需要再发送给大脑其他主要部分做筛选……这些局部空间短暂的分布式内容选取是有特定时间和特定部位的,但是在它们工作时大脑并没有意识到信息的内容。
”
拖延与浸泡
怎么区分你是在浸泡思想还是在拖延、浪费时间呢?
我总是把拖延称为“做纸娃娃”。
一个密友(姓名保密)第二天有一门重要的考试,但是前一天晚上,她并不学习,而是坐在沙发上剪纸娃娃。
当时这在我看来就是典型的耗费时间:
一个无关的非生产性的活动阻碍了你需要做的真正工作。
但也许我错了。
也许这不是拖延。
这是一个高级触觉练习,也许是她浸泡思想的方法。
她通过了测验并以优异成绩毕业。
如果某个任务你真的不想做,那么任何分散注意力的努力都很可能只是耗费时间。
如果你仍然有兴趣,但感觉“困难”,那么思想其实是在继续发酵,这当然没问题。
换句话说,认知尚未达到意识的水平。
他继续说:
“这种内容流,由于它的多样性而像是一篇记叙文;任何时候在大脑中的各个地方都有多个叙事片段的‘草稿’处在不同阶段的编辑状态中。
”这种由草稿到草稿的流形成了我们所认为的叙述。
丹尼特的理论是对所谓的笛卡儿剧场(CartesianTheater)模式的一个非常有趣的替代。
在笛卡儿剧场的模式下,假设大脑存在一个意识中心,它指导大脑的活动以及你的行动。
这有点像播放意识流的电影屏幕。
但是,事实可能并非如此。
多草案的理论支持更分散的处理模型,这更符合目前的研究。
没有单一源头或执行监控器来控制这些大脑部位。
相反,此刻被共同激活的任意区域形成了你的意识。
这使得意识具有一种颠倒、自组织甚至可能突然出现的属性。
让我们再回到浸泡的想法,尽可能去接受它,你需要时间让这多个草案发酵、渗透和发展。
其中某一个想法将是“当前式”,并成为意识的内容,但是这并不意味着所有其他草案将被丢弃或被认为是无关的。
你听说过顾问的“三法则”吗?
一般情况下,如果你不能想出计划可能出错的三种方式,或想出一个问题的三种不同解决方法,那么你的思考还不充分。
你可以把“三法则”应用到多草稿模型上,让至少三个可选择的想法来发酵并形成意识。
它们已经存在,只需让它们生长和成熟。
是的,这可能仅仅意味着坐着并无所作为。
把脚翘在桌子上,一边吃着香脆的点心一边哼唱着小曲。
那么,现在你该怎么做?
正如你需要从R型转换为L型模式来更好地学习,你也需要更加积极地处理知识。
实践单元
你最喜欢的浸泡思想方式是什么?
你尝试过别的吗?
你曾批评过别人在思考浸泡上花时间吗?
你现在会有所改变吗?
你有没有因为浸泡思想而被批评?
下一次再发生这种情况时,你将如何应对?
管理知识
现在是时候来处理你的想法、见解、原始信息和知识,并把这些混乱的东西变成一些卓越的东西了。
但是这一次,你所需要的不是你的大脑。
你需要增强你的处理能力。
这些主题都是什么?
它们为什么写出来这么有趣?
让我来解释一下……
开发外部信息处理系统
正如我在3.2节所说的,你需要随时随地做好准备捕捉信息。
但是,一旦你捕捉到它,不能只让它呆在那里,这对你没有任何用处。
你需要处理这些材料:
组织它,发展它,合并不同的材料,并将整体的想法提炼和划分为更具体的想法。
你需要一个地方来存放想法,在这里你可以更有效地利用它们。
基于现代科技,我建议你使用某种超链接性质的信息空间,可以很容易进行自我组织和重构。
但在深入细节之前,让我解释一下为什么这是如此重要。
这不是一种单纯的文书活动。
据有关分布式认知的研究表明,大脑之外的思维支持工具会成为你思维头脑的一部分。
不但大脑本身很神奇,我们还可以通过提供一些关键的外部支持为它增压。
美国前总统托马斯•杰斐逊一生拥有过大约1万本书,是一个书迷,这些书的主题丰富多彩,从政治哲学到音乐、农业及葡萄酒酿造。
每本书都成为他意识的一小部分,但可能并不是整本书,因为我们绝大多数人都没有百科全书般的记忆力。
一旦你读过一次,记得去什么地方找到对应的细节就足够了。
爱因斯坦也深谙此道。
据称他曾被问到一英里有多少英尺,他回答说,他不会在头脑中填满能轻易找到的东西。
这就是参考书籍的用处,这是一种有效使用资源的方式。
你自己的藏书,你的笔记,甚至是你喜爱的IDE和编程语言都构成了外部信息处理系统的一部分,它是在你实际大脑之外的思维内存或处理组件。
作为程序员和知识工作者,我们可能比大多数人更依赖于计算机去建立更多的外部信息系统。
当然,并非所有基于计算机的工具都合适。
对于浸泡、分类和发展想法,我发现一种最有效的工具就是个人的wiki。
事实上,正如我们将看到的,通过wiki组织你的伟大想法,你会得到更多的伟大想法。
使用wiki
传统的wiki(Wiki-Wiki-Web的简写)是一种网站,它允许任何人使用普通的网络浏览器编辑每个网页。
在每一页面的底部都有一个链接标示“编辑此页”(EditThisPage),如图8-1所示。
点击那个链接,网页内容就会出现在一个HTML文本编辑界面中。
然后,你可以编辑网页,并点击“保存”按钮,你更改的部分就出现在该网页上。
Wiki标记通常比原始HTML简单。
例如,你可以使用*字符创建一个列表项、带下划线的斜体,及诸如此类的属性,如图8-2所示。
最重要的是,能够链接到其他网页去。
首先通过使用WikiWord创建一个新网页的链接。
一个WiKiWord是由两个或两个以上单词组成(单词首字母大写,中间无空格)的。
一旦你将一个WikiWord放置在网页上,就会自动关联到对应名字的wiki页面上。
如果该网页尚不存在,那么在第一次点击时,你会看到一个空白页,并有机会来填写它,这使得创建新页面非常容易和顺手。
但传统的wiki是基于Web的,而且把编辑模式和显示模式分开了。
无论出于何种原因,如果你需要wiki是一个基于Web的应用程序,那么这是一个不错的主意。
但是对于本节的内容来说,你可能需要在技术上稍加改变。
你可以使用采用自己喜欢的编辑器来实现的wiki——一种wiki编辑模式。
这使你的编辑器环境中有WikiWord超文本链接和语法着色或高亮显示。
我曾经在vi、XEmacs和TextMate中使用过这种功能,效果良好。
wiki感觉就像一个文本的思维导图(讲到这里,你很可能会使用思维导图帮助明确和增强wiki的章节)。
我最成功的wiki实验是搭建一个PDA作为与电脑同步的wiki。
我使用的是夏普Zaurus系列,一种袖珍PDA(拇指键盘,运行Linux操作系统)。
我安装了vi编辑器,写了一些宏,使它可以实现超链接遍历和语法高亮等。
然后,我可以使用源代码版本控制工具CVS同步wiki的文件。
其结果是,这种便携式的口袋wiki可以进行版本控制并与我的台式机和笔记本电脑同步。
无论在哪,我都随身携带wiki。
我可以建立和增添记录,写文章或写书(包括本书),等等。
而写这本书时,我逐渐从Zaurus转移到iPodTouch,它使我拥有了一个定制的基于Ruby的Web服务器,提供了一种更传统的、使用同步wiki数据库的、基于Web的wiki。
你可能想要在你的笔记本电脑或PDA上做同样的事情,使你在办公室以外也可以处理wiki。
目前有许多可供选择的wiki应用。
可登录http:
//en.wikipedia/.org/wiki/Personal_Wiki查看最新的列表。
这一做法的真正妙处在于,一旦有地方存储一些具体的信息,你就会注意到新的相关数据会突然从某处冒出来。
这个现象类似于感官调整。
例如,如果我告诉你在派对上寻找红色的东西,你会突然发现红色无处不在。
同样的事情也会在新机型的车上发生。
你调整了注意力,因而在你之前没有关注的地方,突然间,要寻找的事物就会出现在你面前。
有了wiki,当你有一个随意的想法后,可以把它写下来放在你的主页上,因为这时你不知道还能对它做些什么。
一段时间以后,你有了第二个相关的想法,而现在你可以将这两个想法放在一起,存储在新的一页中。
现在突然更多的相关想法出现了,因为你有一个地方来存放它,而你的思维也会非常乐意帮忙。
一旦你有了地方来存放某类想法,你就会得到更多这类想法。
无论是wiki还是在纸上写的日志,也无论是便签还是鞋盒,对于特定主题领域或项目的相关想法,有一个地方来存放它们就是外部信息系统的主要优点。
例如,看看图8-3所示的屏幕截图。
这个显示了我个人的wiki格式,网页的标题出现在每个页面的上方,然后是一些指向到其他wiki页面(如待办事项)的链接。
WikiWord链接到相同名称的网页,以蓝色高亮显示,和通常的网页网址一样。
当我第一次找到一个关于食用莴苣的巧妙方法后,就建立了名为LettucePrinciple的网页。
我听到一则有关妙语“解冻鸡”的笑话,我认为可能有用,所以将它记录在ThawTheChicken中。
然后,美国宇航局由于数量单位不匹配的编程错误损失了价值1亿2千5百万美元的卫星,所以我在MarsLander中将这件事记录下来。
既然我有了这么多漂浮不定的想法,我就建了一个名为SpeechNotes的列表,作为演讲素材的积累。
我放上了ConwaysLaw、LawofDemeter、OilSpill和其他已经使用过的材料,还有一些新的想法,例如ProjectTerroir。
现在LettucePrinciple有了归宿,有了放置类似主题的地方,所以我把它加到了列表里。
我曾经在RubyConf做的一个有关技术改造的演讲中和博客中引用过它。
列表增长到几百项,这并不好。
我开始整理wiki并清理东西了。
我制定了不同的清单,如博客帖子、即将举行的演讲、基本的故事和研究,等等。
一篇文章可能参考六七篇网页,一本书的大纲可能引用20多个。
但是wiki的好处不仅仅在于这样的组织性。
将一些笔记从原来的形式抄写到wiki中(或整理到同一个wiki上),这有助于大脑吸收这些资料。
就如同抄写会议或课堂上的笔记,这样做提供了第二次深入接触材料的机会,并能使大脑神经更强烈地感受这些信息。
你越是接触它,越可能会发现原来你没有注意到的材料间的关系和模型。
再次,你可以对一些较有意思的信息重构思维导图,以获得更深入的理解,并将其写回wiki。
你会更积极地寻找模式。
但你需要保持对当前工作的注意力,不分心。
在下一节中,我们将看到原因。
优化当前情境
情境,我们在这里指的意思是,加载到你的短期记忆里的有关你手头工作的信息集合。
用计算机术语说,就是换到内存里的正在使用的页面集合。
计算机都有一种超越我们思维结构的独特优势,它们能轻松自然地交换情境。
我们的大脑不具有这样的能力。
如果有事物中断我们,打破我们的工作流,或导致我们分散了注意力,那将一切思路恢复到原状是相当昂贵的。
我们把“将一切思路恢复到原状”称为情境切换。
我们要看看为什么你需要不惜一切代价避免这种切换,以及如何避免分心并较好地管理中断。
情境切换
你有多少可支配的注意力?
也就是说,当前有多少事情需要你的注意,在任何特定的时间点上你总共可以关注多少东西?
该比率是相当令人伤心的。
你并不能像你想象的那