注:此文有大量原文引用,但并无牟利目的,如涉及版权问题,请通知本人下架。另禁止转载。
[格式]
原文摘录
我的批注
第一章 绪 论
软件产品
处于应用、用户、规则和硬件的合力之下。这些因素总是在不断变化,迫使软件产品也随之改变。”
软件并不是一成不变的。
软件行业
正在逐步提高沟通能力。特别是敏捷方法(见注解栏),强调了团队成员之间、最终客户和开发团队之间的沟通交流。
所以程序员的沟通能力也很重要。
第二章 从新手到专家的历程
德雷福斯模型
(Dreyfus model of skill acquisition),将一个技能的学习程度类比成阶梯式的模型。由上而下分成:专家、精通者、胜任者、高级新手、新手五个等级。
早在 20世纪 70年代,德雷福斯兄弟(休伯特和斯图尔特)就开始研究人类如何获取和掌握技能。
阶段 1:新手
可能一个开发人员声称拥有十年的经验,但实际上只是一年的经验重复了九次,那么这就不算是经验。
但是,如果给新手提供与情境无关的规则
去参照,他们就会变得能干起来。
新手需要规则。
然后再用更多的规则去解释刚设立的规则,没有一个实际的界限约定你需要说得多明白。这种现象被称为无限递归( infinite regression)。因此,你必须明确中止反复解释。
规则的副作用。解释太多,会增加理解成本。
规则只能让你启程,不会让你走得更远。
规则无法告诉你在某种情况下应该采取的最合适行为或者正确路线。它们充其量也就是“自行车的辅助轮”——可以帮助启动,但是却限制并大大妨碍了以后的表现。
阶段 2:高级新手
高级新手能够多多少少的摆脱固定的规则,他们可以独自尝试任务,但仍然难以解决问题。
高级新手不想要全局思维。 Advanced beginners don’t want the big picture.
研究似乎表明,大多数人的大多数技能,在他们生命的大多数时间里,从来没有高于第二阶段高级新手。
阶段3:胜任者
处于这一水平的人通常被认为“有主动性”和“足智多谋”。他们往往在团队中发挥领导作用(无论是否有正式的头衔)
阶段4:精通者
处于精通水平的从业人员有一项重大突破:他们能够纠正以往不好的工作表现。他们会反思以前是如何做的,并修改其做法,期望下一次表现得更好。
自我反思、自我察觉、自我进步。
但处于精通阶段的人更像是初级专家,而不是高级胜任者。
敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。但是基于以往表现进行自我纠正,只在较高的技能水平上才能实现。
所以敏捷开发还是对开发者的自身能力有一定的要求的。
敏捷开发是非常有效的工具,但它不适用于一个完全由新手和高级新手组成的团队。
阶段5:专家
根据统计,专家的数量很少,大概占总人数的1%~5%。
而如果专家被强制遵从那些规则操作,他们的工作就会变得效率低下。
专家通常很难把他们的行为恰如其分地解释清楚,他们的很多行为是如此地熟练以至于已经变成无意识的了。他们的大量经验都是通过大脑的非语言、无意识区域存储的,这让我们难以观察,而专家则难以表述。
所以专家未必是个好老师或者好作者。
清晰表述专业技能十分困难。 It’ s hard to articulate expertise.
这样就会为一些东西的失传感到可惜。毕竟乔布斯再怎么带徒弟都不会完全教会他。
当团队需要结对或者寻找指导老师时,你可以尝试选用和受训者技能水平相近的老师。
直接让 CTO 带你有时候并不是一件好事。
专家根据直觉
工作,而不需要理由。
新手使用规则,专家使用直觉。
认识到新手需要与情境无关的规则,而专家使用与情境相关的直觉。
这不是说新手没有任何直觉或者胜任者根本不能识别模式,但是专家的直觉和识别模式的能力已经超越了他们显性的知识。
内在诀窍书籍的作者们建议你把自己想象成专家。他们注意到,仅仅告诉学生去“模仿”所在领域的名人就足够提高他们的水平了,毕竟我们是天生的模仿者。
那么想象自己成功被证明是一种达到成功的有效方法。你可以提高你的表现——不论是演奏小提琴、调试代码还是设计新的架构——通过想象你已经成功地做到了这些。
如果你的周围全是高技能的人,你就会增长自己的技能水平。一部分原因是来自于对他们实践和方法的观察和运用,还有一部分是来自于对自己大脑的调节,使其在更高水平上工作。你有一个被称为镜像神经元的天然机制来帮助你:观察别人的行为,激励你也做同样的行为。
宁做凤尾不做鸡头。
考虑一下,任何对开发指定严格规则的方法或企业文化,会对团队里的专家产生什么影响呢?这将拖累其业绩表现下降到新手的水平。公司失去了他们所擅长的所有竞争优势。
在1968年,根据Exploratory Experimental Studies Comparing Online and Offline [Sac68],当时的程序员生产力差异已经达到了10∶1。自那时起,这种差距不断扩大。
虽然差异这么大,但是一个团队还是得搭配的错落有致。
理想情况下,你希望团队里混合各种层次技能水平:拥有一个全部是专家的团队也存在它的难处。当所有人在考虑森林的时候,你也需要一些人来关注一棵棵大树。
但是,有一些好消息。一旦你成了某个领域的专家,在别的领域成为专家就会变得更容易。至少你已经有了现成的获取知识的技能和模型构建的能力。
专家的负面
新手的大脑有很多可能性,但是专家心里只有很少。——铃木
对于专家来说最致命的弱点是像专家一样行动。一旦你相信自己的专业水平,你就会对其他的可能性视而不见。你停止了好奇心。
这些年来我看到很多这样的例子。人们在某些语言上投入很大,比如Java或者C++①。他们取得了认证,并且背诵了摞起来四五米厚的有关API和工具的书籍。然后,一些新的编程语言出现,让他们写更简洁、更直观的代码,更彻底的测试,更容易实现的并发,等等。但是他们完全拒绝这些新语言。他们会花费更多精力来讽刺新语言而不是严肃地评估对它们的需求。
达芬奇在600年前抱怨说:“人们看却没有看见,听却没有听见,吃却没有味觉,接触却没有触觉,说话却没有思考。”
自由的代价是永远提高警惕。——约翰•菲尔波特•柯伦的名言, 1790年永远提高警惕不仅是自由的代价,也是意识的代价。
一旦你启动自动驾驶,你就不会转向了。
小结
人群分布:
积极的实践需要四个条件。需要一个明确定义的任务。任务需要有适当难度——有挑战性但可行。任务环境可以提供大量反馈,以便于你采取行动。提供重复犯错和纠正错误的机会。
第三章 认识你的大脑
1、大脑的 L 型和 R 型
大脑的配置为双CPU,单主机总线设计。
1号CPU
可能你最熟悉:它主要负责线性、逻辑思维和语言处理。它就像传统的冯诺依曼式的CPU,按步就班地处理指令。1号CPU相对缓慢,使用了大脑中相对较少的一部分资源。它采用了一个“空闲循环”的程序运行。如果1号CPU没有处理任何其他指令,它就只会生成一个语言的内部流。这就是你大脑中的那个微弱声音。
但是,2号CPU
则有很大不同。不再是采用线性、按步执行的方式,而更像是一个神奇的数字信号处理器。它就是大脑中的Google:把它想成一个超级正则表达式的搜索引擎,负责处理搜索和模式匹配。像Google一样,它可能会抓住不明显相关的匹配模式。当你“思考”其他事情时,它可以去寻找搜索,然后异步地返回结果集——可能数天之后了。由于2号CPU不做任何语言处理,这意味着它的结果也不是言语可以表达的。
两个CPU共享通往内存核心的总线,每次只有一个CPU可以访问内存。这意味着如果1号CPU占用总线,2号CPU则无法访问。
这两个CPU对应着大脑中两种不同的处理方式。我们把1号CPU的线性处理风格称为线性模式
,或简称L模式
。我们把2号CPU的异步、综合处理风格称为富模式
,简称R模式
。
R型不能直接控制。 R-mode isn’t directly controllable.
2、L & R 区别
(1) 细节 vs 整体
R型看森林,L型看树木。模式匹配是专家表现的一项关键能力。它帮助专家缩小选择范围,把精力集中到与问题相关的事物上。
如果你想发现全局、整体的模式,你需要R型;如果你需要分析部分和细节,你需要L型。
(2) 循规蹈矩 vs 颠覆创新
毕加索曾说过一句著名的话:“计算机一无是处,它们只能给你答案。”
如果“答案”是无用的,那么这就意味着问题更重要。事实上,那种对事物截然相反的看法正是R型思维的一个标志。对于我们这些L型思维根深蒂固的人来说,R型特点听起来有一些奇怪、不协调甚至非常不舒服。
R 型更具颠覆创新性。
问题比答案更重要。
古语云:“只有婴儿喜欢改变。”我们都是习惯造就的动物。
(3) 主动 vs 等待(邀请)
L 型是主动性的:当你集中注意力时, L 型就在工作。 R 型则不同,你不能命令它,只能邀请它。
一旦你集中目标,L型过程就会占据主角,而这不是你所期望的。相反,你需要培养一种非目标驱动的思维方式。
离开键盘去解决难题。
当我写代码久了,被困住了,真的需要及时的挣脱开工作环境,捋一捋思路,找找灵感。
3、杂项
真正想要了解一只青蛙,传统的解剖不是办法,更好的方式是构造一只青蛙。
不同意,有的系统太过复杂以至于根本无法构造,这样就只能基于数据统计分析了。
商品化意味着美学品味的竞争。 Commoditization means you compete on aesthetics.
不同意,商品化会导致美学品味届的的劣币驱逐良币。
艺术不是来自于创造本身,而是来自于选择,从几乎无限的可选项中进行选择。
同意,艺术创造的就是带着镣铐跳舞。如果没有这个镣铐,你反而不知道干啥。
第四章 利用右脑
人应该努力学习洞察和培养自己内心深处的灵光一现,这远远胜于外面流光溢彩的整个世界。然而,人总会下意识地抛弃自己特有的想法,仅仅因为那是他自己的想法。
——拉尔夫•瓦尔多•爱默生(1803—1882)
不要对自己的想法妄自菲薄不屑一顾呀。
1、增加感观体验以促进大脑的使用
例如,困在一个乏味的电话会议或者思考一个棘手的问题时,试着把玩一下回形针或者做某些触觉游戏就能缓解疲劳。
我们公司老大喜欢开会的时候手里拿个东西动来动去,比如笔的不断开合。
小学教育工作者很早就知道,多感官的反馈是增强理解和记忆非常有效的方法。这是一项相当成熟的教学技术。这可能就是为什么你读小学时曾被强迫制作丑陋的古罗马透视画或者庞贝的纸质塑像。
以前我的偏见就是,直截了当的教就是了,这样搞得花里胡哨的效率多低。其实我是被填鸭式教育给带坏了。
大脑总是渴望接受这种额外的、新奇的刺激。大脑擅于持续适应变化的环境。因此,要定期改变环境,满足你的大脑。
绘画即是观察。“Drawing” is really about seeing.
很多常见的休闲活动都能够激活R型并停止L型的占用:听音乐、绘画、静思、慢跑、针线活、攀岩,等等。
R型开路,L型紧跟。
酒醉写作,酒醒修改。
完成较差的草稿初案胜于永远也完不成的完美初稿。在她的Bird by Bird: Some Instructions on Writing and Life一书中,拉莫特解释了完美主义的危害。
2、L & R 协作
结对编程
一种使L型和R型协同工作的有趣方式是让另一个人使用另一类型。
3、L & R 会和之处 —— 隐喻
正如我们所看到的,L型和R型处理过程截然不同,但是在你的大脑中它们存在一个会合之处——一个创造力转化为新创意的地方。L型和R型在隐喻上(也就是创建类比的过程中)相通。“隐喻
,语言和意象共同的地基,是在左右脑半球之间,在潜意识和意识之间来回游弋的途径。”
你不能形容它,所以你只能比喻它。
现在,听到隐喻和类比,你可能会回想起小学时可怕的语文课。但是事实上,我们一直在使用隐喻。我们在计算机屏幕上所说的窗户(window)并不是真正的窗户。鼠标(mouse)也不是真的老鼠。硬盘上的文件夹(folder)也不是真的,回收站(trash)也不是真的垃圾桶。
隐喻和类比差不多。
极限编程
(见Extreme Programming Explained: Embrace Change)的最初发行版中提倡一种有趣的实践:系统隐喻。也就是说,任何软件系统应该能够通过一种适当的隐喻来描述。举例来说,薪酬系统可能被类比成一个邮局,有分布的邮箱、交付时间表等。而一个科学测量系统可能被看做是一个制造系统,有传送带、储存桶等。虽然所有的隐喻最终都会瓦解,但是在这之前我们抱有的想法应该是,一个足够丰富的隐喻有助于指导系统的设计和解决开发过程中出现的问题(这种想法类似于我们在《程序员修炼之道》中对系统不变量的讨论)。
能用隐喻描述的软件系统,才是考虑周到且方便让人理解的系统。
清晰的隐喻是一种强大的工具,但是我们总是不能正确把握它。Kent接着说:“为什么我们会用错隐喻?为什么add()相对的函数并不总是delete()?为什么我们向容器中insert()东西而不是add()?程序员们对隐喻的使用并不认真——表单(table)根本不像表单,线程(thread)不像线程,存储单元(memory cell)既不像存储也不像单元。”我们使用了如此多的隐喻,很多我们都没有察觉到(如窗口、鼠标,等等)。
隐喻就在你我身边。
不假思索地提出第一个隐喻是非常容易的,但是这往往不是你能用的最好的隐喻。
隐喻也需要深思熟虑。
幽默产生于在不同的想法中制造新奇的联系。这听上去可能有些荒唐,不过幽默往往就建立在识别关系并扭曲关系的基础之上。
幽默的技巧也会用到隐喻。
培养幽默感以建立更强大的隐喻。
4、R & 潜意识
另一种利用R型潜意识能力的简单方法就是书写
。
这种方法为什么会起作用?我认为这是因为晨写让毫无防备的大脑倾倒想法。早上刚起床时,你还没有像你想的那样清醒。潜意识仍然占主角。
爱迪生有一种有趣的习惯,正好可以看作是对晨写的改版。他打盹时手里拿着一个装满了滚珠的杯子。他知道当他逐渐入睡时,潜意识会接手他面临的问题并提供解决办法。当他熟睡时,滚珠会掉下来,撞击声就会把他叫醒。然后他就记下脑子里面的所有事情。
5、杂项
记住,源代码的阅读次数远远多于它的编写次数,所以通常值得花一些工夫把代码变得适合人类阅读。换句话说,我们应该使代码中的较大模式更容易被看到。
代码是给人看的,不是给机器看的。
记住,这不是一种浪费时间的愚蠢修饰,而是一种重要的交流工具。
不要努力去想完美的格式或者流程,先做一个最差的设计方案。这将帮助你意识到什么是真正重要的。
解决完美主义的最好方法就是先去尝试。
有想法的“角色扮演”也是一种最强大的工具。有想法却不受目的引导的角色扮演会帮助你建立联系、发现关系和获取洞察力。这有助于你改变思考角度。
例如,想象你自己是当前面临问题的一部分。假设你就是数据库查询或者网络数据包,当你厌倦了排队时,你会做什么?你会告诉谁?
其实跟上面说到的系统隐喻有异曲同工之妙,在思考构建隐喻的过程中,就能发现问题。
错误是一种潜在的提示。
第五章 调试你的大脑
“调试
”(debug)计算机的现代定义来自于一只真正的昆虫——一只蛾子掉进了Mark II Aiken Relay Calculator的一个继电器上。在运行一系列余弦回归测试时,操作员发现了一处错误,通过观察,他们找到了这只昆虫。操作人员移除了虫子,很负责任地把它订在日志手册上,这是真正意义上的调试机器——给计算机除虫。
debug的来源。有意思。
1、人脑的局限性
认知偏见:思维如何被误导。
时代影响:同代人如何影响你。
个性倾向:个性如何影响思维。
硬件故障:大脑较老区域如何压制较聪明的区域。
我们倾向于把别人的行为归因于他们的个性,而不去考虑行为发生时的情境。
我们是基于不完善的记忆和当时的情感状态来做出决策并解决问题。
人做出的所有决定都是自以为理性的感性决定。
当你激烈地支持或者赞成一个观点时请记住这一点。你提出的论据是逻辑性的,还是情感作怪,或者只是因为熟悉?在特定的情境中论据成立吗?你是否真的考虑过别人的看法?旁观者清,所以你需要从正反两个方面看待问题。
最后,为了避免一厢情愿、盲目乐观的想法,记住任何一个决定都是一种权衡。
科学研究很容易被误解,因为大多数人不善于统计分析学。最普遍的一个误解是把相关性说成因果关系。
看看有关居住在高压线下面的家庭白血病发病率更高的报告。新闻标题甚至会说高压线导致癌症。虽然这有可能,但是这种单一的关联性根本不能证明这个问题。其实还有许多别的潜在因素:高压线下面的房屋较便宜,因此这都是相对贫穷的家庭,也就影响了食品营养、卫生保健、早期检测等方面。看到相关性并不等同于确定了因果性。
请记住本杰明•迪斯雷利( Benjamin Disraeli)的观点:“世界上有 3 种谎言:谎言、该死的谎言和统计数据。”偏见会利用数据变得更加可信。
2、人是时代的产物
在你出生时,世界上的任何事情都是平凡的,都是世界运转的天然组成部分。当你在十五岁到三十五岁之间时,世界上创造出的任何事物都是新鲜的、令人振奋的、革命性的,你可能以此为职业。三十五岁之后创造出的任何事物都是有悖于事物的自然顺序的。
你是时代的产物——可能比你想象的程度还要高。你父母和同龄人(和你出生年份相近的人,上学和工作时的同伴……
要想避免你所处时代的特有偏见,最好的方法是保持多样性。
3、MBTI十六型人格测试
一种原型创建了其反面原型。 Archetypes create opposing archetypes.
MBTI
(Myers Briggs Type Indicator)性格评估测试是一种流行的构造理论,它将性格划为几种基本类型。它是基于卡尔•荣格(Carl Jung)的研究成果,将个性倾向分为四大轴线领域。
(1)外向(E)与内向(I)
百分之七十五的人偏于外向型,剩下百分之二十五的人则希望单独呆着。
外向:内向 = 3:1
这个比例我觉得,亚洲国家会比欧洲国家低
我是内向(I)
(2)感觉(S)与直觉(N)
感觉型的人强调可行性和事实,完全基于当时的细节。直觉型的人非常富有想象力,喜欢比喻,创新力强,能够看到多种可能性 。
感觉:直觉 = 3:1
我是直觉(N)
相信直觉,但是要验证。
我有时就是图直觉产出的爽,没有认真的去回溯、验证。
我们通过逻辑来证明,通过直觉去发现。——庞加莱
(3)思考( T)与情感( F)
你如何做决定?思考型的人基于规则。情感型的人除了考虑适当的规则之外,还会评估个人和情感的影响。
思考:情感 = 1:1
我是思考( T)
两种类型在人口中各占一半,不过在性别方面有些倾向,即较多女性是F型,男性则更多是T型。
(4)判断(J)与知觉(P)
如果你非常喜欢早下定论,你就是J型。J型直到做出结论才会感觉舒服。P型则是会在做出决定后感到不安。两种类型在人口中大约各占一半。
判断:知觉 = 1:1
我是判断(J)
(5)运用
我的 MBTI 测试结果为:INTJ
实际上你的MBTI类型代表的是你的默认设置。你随时可以选择不同的行为方式。
就像星座也是默认设置。
大多数公司通过表扬和认可奖励团队,但这并不一定适合所有性格类型。特别是对外向型起作用的奖励可能并不适用于所有程序员。
希望各位 HR 周知!
尊重不同人的不同性格。
最讨厌那些外向人用不可思议的神情问你,你是怎么一个人可以坐这么久的?或者说多出去啊,呆在家里不好,我好不好你知道个毛。
4、杂项
如果你不相信,看一看《自然》杂志最近的一篇报告,有关一个非常现代的问题——路怒症。在该研究中,衡量路怒症倾向的一个首要指标是汽车上个性化东西的数量:定制的车漆、贴花和保险杠标签等。更令人惊奇的是,保险杠标签的内容并不重要,数量最重要。例如,五个“拯救鲸鱼”的贴纸要比一个“有权携带武器”的贴纸显示出的危险更强烈。为什么?因为我们正在划定自己的领地。
在手写书信的过去,用于亲笔写信的时间和等待寄出(等待邮递员)所造成的不可避免的延迟使得更显冷静的新大脑皮层可以进行干预,并提醒你这或许不是一个好主意。但是互联网的时间绕过了新大脑皮层,将我们的原始反应暴露无遗。它允许你充分发泄你的最初本能反应,不论是通过电子邮件、博客评论还是即时消息。虽然这种快速、暴力的响应适用于应对丛林中的捕食者,但是对于与同事、用户或者卖方合作项目却没什么帮助(当然,可能有助于应对掠夺型的卖方)。当一阵激烈的情绪涌上心头的时候,你可能知道这种感觉,例如当老板发来一封傲慢的电子邮件或者粗鲁的司机突然让你下车。深深地呼气,摆脱变味的空气。深深地吸气。数到十。记住你是高级动物。让蜥蜴式的响应过去,请新大脑皮层来处理问题。
即时消息比电子邮件更容易激起原始本能的反应,要时刻告诫自己深呼吸,深思熟虑,让大脑皮层来处理问题。
微笑。有证据表明微笑和抗抑郁药物一样有效。
第六章 主动学习
1、关于教育
教育
(Education)来自于拉丁文educare,字面意思是“被引出”,即引导出某样东西。我发现一件非常有趣的事情,当我们想到教育时,通常并不考虑它这个词源的含义——从学习者那里引导出一些东西。
相反,更常见的看法是把教育当作学习者被动接受的事情——灌输,而不是引导。这种模型在公司培训中尤其流行,称之为羊浸式培训。
首先努力地获取信息,然后希望以后再用到它。这是大多数正规教育和公司培训的基础。
大脑不是一个用于填充的容器,而是一束需要点燃的火焰。——普卢塔赫[Mestrius Plutarchos(Plutarch),公元45 —125],希腊哲学家,阿波罗司祭
“假设有人原本去找他邻居要火,结果发现邻居那儿很暖和,于是他就继续呆在那边取暖。这就好比是,某人去向别人学习知识,却没有意识到他应该点燃自己的火焰、他自己的智慧,而只是很高兴地着迷于他人的演讲,老师的话只是触发了联想思维,就好比只是让他的两颊泛起红晕,只是让他四肢感到温暖,但是,虽然笼罩在智慧的温暖光茫下,他内心的阴冷昏暗却没有被驱散。”
就跟看很多成功学鸡汤一样,因为自己学到了什么,其实都是自我 YY。
2、关于学习
大脑构建的模型、为构建模型所提出的问题和你的日常经验和实践对你的业绩更加重要,它们才能提高你的竞争力和专长。仅仅掌握知识是不够的。
学习不光是拥有知识。
真正的学习——对你有用的学习——来自实践和认知,而不是外部的教学活动或者死记硬背。他们的方法称为构造主义:我们通过构造而学习,而不是学习来构造。
3、关于目标(计划)
记住艾森豪威尔将军对我们的建议:作计划比计划本身重要得多。
具体的首先,一个目标任务应该是具体的。也就是说,只说“我想学习Erlang”是不够的。应该把事情具体化,例如“我想要用Erlang编写一个可以动态生成内容的Web服务器”。
实践才是硬道理。
4、管理知识(技术)
你学习的技术和掌握的知识都变成你投资组合的一部分。就像任何投资一样——无论是金融还是艺术上的——都必须时刻进行管理。
知识投资
和金融投资
的一个主要区别是所有知识投资都有些价值。即使你从来不会在工作中使用某项技术,它也会影响你思考和解决问题的方式。因此,你学习的任何东西都有价值,只是有可能不是直接的、有物质回报的或和当前工作相关的价值。也许它会有助于开发R型思维或者改善R型到L型的切换。
像管理你的金融投资一样小心管理你的知识投资。
在金融领域,关键是积极投资。你不能只是守着你的资产。你必须主动地随时重新评估你的投资。
在金融领域,你需要采用成本平均法(dollar-cost averaging)。这意味着如果你定期购买股票,有时你会付出很多,有时你会收益很多。但是长期来看,这些差异互相抵消,一般最后你都会获得较好的回报。
知识也需要定投。
但是只要定期安排学习,长期来看一定会成功。如果你一直在等待空闲时间或者等待灵感的突现,那么它永远都不会发生。养成一种习惯。 Create a ritual.
5、学习者分类
历史上,很多教育家把学习者分为三大类:视觉型、听觉型和动觉型。视觉型学习者需要看到学习资料和老师。图片和图表对视觉型学习者都很有效,他们对肢体语言和面部表情也很敏感。听觉型学习者必须听到学习材料。讲座、研讨会和播客都很有效。他们对语气、语速和其他细节都很敏感。动觉型学习者通过活动和触摸来学习。他们需要亲身感受学习材料。特别是对运动、艺术和工艺等领域,你都需要通过动手来学习。
(1)视觉型
阅读是一种效率最低的学习方法。
书面的指令通常被认为是最无效的。 Written instruction is the least efficient. 因此,似乎我们最善于从观察中学习。我们都是天生的模仿者。
推荐方法1:组件阅读和学习小组
除了对学习本身有惊人的帮助,这还是增强团队凝聚力的一个好办法。大家一起学习,也可以互相学习,而且学得更有效。
其实看完书后看豆瓣书评也是一种小组间的交流。
推荐方法2:改进阅读方法
首先,带着问题审视你要看的书。
把各章节的标题改写成问题,这些都是你期望这本书回答的问题。
推荐方法3:写作
写作与阅读一样重要。
使用思维导图理清思路。
就像写文档的过程比文档本身更重要。
“写一部小说就像在黑夜里开车。你只能看到车灯照亮的部分,但是你却可以走完整个旅程。”
(2)听觉型
推荐方法1:聊天
和橡皮鸭聊天。
最后,你可以尝试教一个更大、更相关的听众。在本地用户组会议上发言,或者向简讯和杂志投稿。没有什么比一大堆聪明人给你一字一句地挑毛病、帮你理清思路更有效果。
推荐方法2:教学
另一种有用的办法是尝试向一个孩子或者你所在领域之外的人解释你的东西。
请记住医学院的口头禅:观察,实践,教学。
(3)动觉型
推荐方法1:玩与探索
玩耍
(play)的第一个意思是:非特定的、非目标导向的获取洞察力、看清隐藏关系的好办法。
玩耍的第二个意思引入了一种新奇的感觉,也就是乐趣。
探索就是在陌生的环境中“玩”。
一种高效有益的学习环境应该允许你安全地做三件事情:探索、创造和应用。
如果只是探索(玩),没有动脑,联想,应用。就是瞎玩。
同样适用于孩子的玩耍。大孩子带小孩子玩,发明有意思的新想法,他们聪明,但小孩子只知道跟在大孩子屁股后面,人云亦云。
但是,你必须为你自己、你的团队、你的公司建立一个安全的实践环境才可以去探索、创造和应用想法。你不会希望你的心脏手术医生动手之前说:“我今天准备尝试用左手开刀,看看效果如何。”
推荐方法2:手写
无论是笔记还是思维导图,手写是关键。例如,听讲座时做笔记真的能帮助我记忆讲座内容——即使我再也没有看过这些笔记。
触觉可以加深印象。
第七章 积累经验
很少有问题只存在唯一的最佳答案。
更甚,好问题是没有答案的。它不是一个需要拧紧的螺栓,而是一颗种下的种子,由它可以收获一片思想的绿洲。
从相似点中学习,从差异中忘却。
单元测试提供了一套细粒度的回归测试。你可以使用单元测试结果来比较不同的方案,把它们看做进展的重要指标④。不论做什么,我们都需要客观的反馈来衡量进展。这是我们的工作。
除了单元测试可以作为客观衡量工作进展的工具,常用的还有 github tickets。
自动化把一切联系在一起,确保那些琐碎的机能都以一种可靠、可重复的方式运行。
进一步说,持续化集成太重要了。
环境往往比个人因素更重要。当你种菜时,如果长得不好,你不会责怪菜。你会寻找其他理由。菜可能需要更多的肥料或者水,或者少晒太阳。你绝不会怪罪菜。一行禅师
太多程序员(包括我自己)往往在没有完全明白真正的错误是什么之前就着急修正它。匆忙地作出判断或者过早地进行修补。
不要动手做,而是要袖手旁观。 Don’t just do something; stand there.
所以写代码并不是8小时一直写的过程,而是先思考,再下手。中间可能还有反复。
内在诀窍系列书籍的中心思想用一句话就可以总结:“尝试会失败,认知会弥补。”也就是说,有意识的尝试通常都不会像简单认知那般有效。事实上,过度努力追求会导致失败。
不要跟代码杠上。
杰拉尔德•温伯格认为,**当你与客户交谈时,大多数客户都会在五分钟内告诉你他们最严重的问题和解决方案 **。倾听客户的心声非常重要,不要把你的注意力放在苦苦追求酷的方案上。你可以随后再展开思维风暴,但是首先要充分了解。
仅仅是最后期限的到来就会造成心理恐慌而导致失败。
你也许不同意对于压力的这种认识。你可能认为自己在面对最后期限时表现得非常有效率。特丽萨•阿马贝尔(Teresa Amabile)博士的研究表明,虽然这对L型活动可能有一定道理(但我高度怀疑这一点),但是对于创造力和R型活动却是一种灾难。
当面对时间压力时,人最没有创造力。这与人们的普遍认识恰恰相反。
这就是为什么要在周五结束一个项目迭代,也是为什么在经过时间混乱、惊慌失措的危急时刻之后需要一个整顿时间。请安排恢复时间以应对你的时间压力宿醉。
结束完一个有压力 deadline 的项目,请尽情狂欢下吧。
所有伟大的想法都在每天各种紧急事情的无情碾压下逐渐消融。
允许失败,你会走向成功。
如果某个想法没有进一步的动作也不会有什么成本。想一想单元测试的敏捷实践。这里,你可以自由地允许单元测试失败——甚至是鼓励失败。你从中有所收获,修改代码,继续前进。
单元测试就是失败引导成功。
很多感知是基于预测的,预测则基于情境和过去的经验,以至于当前的、实时的输入被抛在了后面。
一个经典的例子是,妻子换了新发型,丈夫根本没有注意到——丈夫所“看到”的内容基于过去的信息。这就是大脑的工作方式。 当然这不能作为犯错的理由。
惯性思维,传统观念,都是这个的产物,要警惕。
第八章 控制注意力
1、为什么要控制注意力
我们将“信息
”和“知识
”这两个词互换使用,但实际上它们是不同的事物。信息是在特定情境下的原始数据。例如,微软公司花费了10亿美元收购了一些公司只是一条信息,当今不缺少信息。而知识才揭示了信息的意义。你针对信息花费时间、注意力和技巧,并从中获得了知识。再看微软的收购行动,我们分析得出这将改变市场的格局,将提供更多的机会,并影响其他厂商的知识。我们将会研究一个更好的方式来组织你的深谋远虑。
而你认为自己只是苦于没有足够的时间来处理它。时间不是真正的问题。正如在前面所指出的,时间是你自己分配的。并不是我们没有时间了,而是我们注意力不够。与其说你没有时间,不如更准确地说你没有带宽。当你的带宽——你的注意力资源——过载时你将会错过某些事情。
一个海军飞行员在夜间以每小时224公里的速度在甲板上着陆一架18吨重的飞机,可能比一个普通少年切下一片硬面包圈更加安全。
2、关于冥想
L型模式的CPU有一种“空闲循环”程序。如果没有更紧迫的事情值得你去注意,闲置循环将会停留在一些低等级的困扰或不紧急的问题上,如“午饭吃什么”,或重放某个交通意外或争吵。这当然干扰了 R型处理,你就又回到了使用半个大脑工作的状态。
大部分冥想、瑜珈以及类似的练习都是为了这个相同的目标:缓和大脑里L型嘈杂的声音所带来的痛苦,生活在此刻,不要将你的精力不必要地分散,因为内心中喋喋不休的杂事会击倒我们。
一份研究报告显示,冥想的训练可以提高人的注意力。
力求放松的认知。
你要非常清醒地专注在呼吸上。
定期做冥想。开始时,每天选取几个容易想起的时刻进行三次深度放松的“冥想”呼吸练习,例如,在起床时,在午餐、晚餐时,或参加会议之前。最好在每天的同一时刻,尝试持续20分钟的冥想练习。
你必须有意识地忘掉问题,让问题在思维中浸泡一会。
显然,对于许多人来说,创造过程中有大量时间你只是坐着而什么都没做。”但是要澄清一下,这不是指没有做任何事情,指的是没做某些事。
不做任何事是为了接下来更有效率的做事。
在后工业化社会,这导致了一个问题。这种关键的“思维时间”在大多数企业中一般是得不到批准和报酬的。现在对程序员(或其他知识工作者)有一种普遍的误解,如果你没有在键盘上打字,你就没有在工作。
3、拖延与浸泡
拖延
与浸泡
怎么区分你是在浸泡思想还是在拖延、浪费时间呢?
听说过顾问的“三法则”吗?一般情况下,如果你不能想出计划可能出错的三种方式,或想出一个问题的三种不同解决方法,那么你的思考还不充分。
可以不用光想,搞个备忘录,列下如上三条你思考出的结果清单。
大脑之外的思维支持工具会成为你思维头脑的一部分。 External support is part of your mind.
善用备忘录或者思维导图等记录你的浸泡产出。
爱因斯坦也深谙此道。据称他曾被问到一英里有多少英尺,他回答说,他不会在头脑中填满能轻易找到的东西。这就是参考书籍的用处,这是一种有效使用资源的方式。
对于浸泡、分类和发展想法,我发现一种最有效的工具就是个人的wiki 。事实上,正如我们将看到的,通过wiki组织你的伟大想法,你会得到更多的伟大想法。
4、切换的代价
多任务处理对生产力会造成重大损失。一项研究发现,一般情况下,多任务处理将耗费你百分之二十至四十的生产力。这样,会将你的8小时工作日削减到5个小时。
切换需要成本。
需要平均20分钟返回到原来的工作状态。 It takes twenty minutes to reload context.
电脑不同,我们的大脑没有“保存栈”或“重新加载栈”的操作。
这就是为什么程序员一般讨厌被中断,特别是被非程序员打断。
看看英国的一项有争议的研究:如果你持续中断正在进行的任务,去检查电子邮件或者回复即时消息,你的有效智商会下降10分。相比之下,吸大麻烟卷导致下降的智商仅4分(见图8-4)。
我在团队里听说有人曾搞了“无邮件下午”或“无邮件日”,没有电子邮件,没有电话,没有打扰。开发人员称其为一周里最有效率的、最快乐的时间。
GTD
不要在头脑中保留清单艾伦提出另一个重要方面——维护外部信息处理系统。动态刷新头脑中的清单是相当昂贵的。
尽管去做
(英语:Getting Things Done / GTD
),是一种行为管理的方法,也是戴维·艾伦写的一本书的书名。
GTD的主要原则在于一个人需要通过记录的方式把头脑中的各种任务移出来。通过这样的方式,头脑可以不用塞满各种需要完成的事情,而集中精力在正在完成的事情。
负面作用是很可能沉溺于工具而耽误了事情本身。
手指月亮,重点不是手指,而是月亮。
提高进出情境的成本
Make the cost obvious.
我的办公室就设定成这样,有很多灯的开关,我到处走,并打开这些开关。我在工作时会花几分钟挑选一些有趣的音乐听。投入了体力,设置好一切,并让自己适应后,我不太可能为一些突发奇想跳起来,把一切关闭,离开,再回来,重复做这一切。一旦我设置好,我会持续工作一段时间。
就跟很多人看书前要先打扫房间、沐浴更衣、泡杯咖啡。除了维持一个舒适的学习环境,还有一点就是提高进出情境的成本了。
当提醒首次出现时,你知道自己被打断了。在打断起效之前,在你接电话或者回应门外的人之前,你有宝贵的几秒钟时间。在这段时间里,你需要为自己留下一些“面包屑”。也就是说,你要留下线索,以便在你返回这项任务时能够继续前进。例如,假设我在写一封电子邮件或者文章,正表达某些想法时,被打断了。我很快写下几个单词——不是完整的句子——只是提醒我自己当前的想法。这似乎很有用,关于这种线索准备的主题已经有很多研究成果了。
如果你的工作被打断,可以跟那个人说,等我1分钟,迅速的把大脑中的念头及时记录到备忘录中。
避免切换情境
使用多台显示器来避免情境切换。
在最先进的操作系统上你可以使用虚拟桌面切换器,允许你拥有很多不同的屏幕,你可以使用特殊键随意切换。