程序员的思维修炼

 

2014-06-09

  • 第 1 章 绪论
    • 软件并不是在集成开发环境(IDE)或其他工具上设计出来的,它是在我们的大脑中想象和创造出来的。
    • 程序员需要不断地学习——不仅仅是学习新技术,还包括应用的问题域、用户社区的奇思妙想、同事的古怪习惯、行业的八卦新闻和项目演进的重要特征,我们必须学习学习再学习,持续不断地学习,然后把学习成果应用到解决日常遇到的一切新旧问题上。
    • 但学习能力、批判性的思考能力和创造力——所有这些扩展思维的能力,都取决于你自己。没有人教你这些东西,你必须自己学习。我们往往错误地看待老师和学生的关系:不光是老师在教,学生也要学。学习完全取决于你自己。
    • 1.1 再提“实用”
      • 实用主义(pragmatism)的本质就是做对你有用的事情。
      • 切忌随波逐流。 Only dead fish go with the flow.
      • 不要盲目地听从任何建议,包括我的建议。你可以用开放的思维来阅读本书,尝试执行一些建议,再判断哪些对你有用。
      • 随着不断成长和适应,人们需要改变自己的习惯和方法。生命中没有什么是恒久不变的,只有死鱼才随波逐流,尝试改变自己。
    • 1.2 关注情境
      • 万事万物都是相互联系的:自然界、社会系统、你内心的想法、计算机的逻辑——所有事物构成了一个庞大的相互联系的现实世界。没有什么事物是孤立存在的,一切都是系统和更大的情境的一部分。
      • 一切都是互相关联的。Everything is interconnected. #EIC
      • 例如,你可能把一棵树看作一个单独、离散的对象,立在地面。但事实上,一棵树至少是两个主要系统的连接点:树叶和空气的处理循环与根和泥土的处理循环。树不是静止的,也不是孤立的。更有趣的是,几乎没有人只是系统的一个观察者,不论你是否意识到,很可能你就是这个系统的一部分。
      • 诀窍 1:始终关注情境。
    • 1.3 所有人都关注这些技能
      • 有些东西是基础的、各领域相通的。There’s something fundamental here.
  • 第 2 章 从新手到专家的历程
    • #+BEGIN_QUOTE 制造问题的思维方式无法用来解决问题。 ——阿尔伯特·爱因斯坦 #+END_QUOTE
    • 2.1 新手与专家
      • 使工作看起来很轻松
      • 专家通常很难把他们的行为恰如其分地解释清楚,他们的很多行为是如此地熟练以至于已经变成无意识的了。他们的大量经验都是通过大脑的非语言、无意识区域存储的,这让我们难以观察,而专家则难以表述。
      • 清晰表述专业技能十分困难。 It’s hard to articulate expertise.
      • 只是他们认识世界的方式、解决问题的方法、运用的思维模型等都和普通人显著不同。
      • 新手和专家有着根本区别,他们看待世界的方式不同,反应也不同。
    • 2.2 德雷福斯模型的 5 个阶段
      • 对于所有的事情,你既不是“专家”也不是“新手”,你只是处于某个特定技能领域中的某个水平阶段。
      • 这里提到的经验,指的是通过实施这项技术促进了思维的改变。举个反例,可能一个开发人员声称拥有十年的经验,但实际上只是一年的经验重复了九次,那么这就不算是经验。 #十年经验
      • 新手不是特别想要学习,他们只是想实现一个立竿见影的目标。他们不知道如何应付错误,所以出错的时候,他们非常容易慌乱。
      • 但是,如果给新手提供与情境无关的规则去参照,他们就会变得能干起来。也就是说,需要这种形式的规则:“当 X 发生时,执行 Y。”换言之,需要一份指令清单。
      • 你可以设立更多的规则去解释,然后再用更多的规则去解释刚设立的规则,没有一个实际的界限约定你需要说得多明白。这种现象被称为无限递归(infinite regression)。因此,你必须明确中止反复解释。
      • 规则只能让你启程,不会让你走得更远。
      • 高级新手能够开始多多少少地摆脱固定的规则。他们可以独自尝试任务,但仍难以解决问题。
      • 高级新手不想要全局思维。 Advanced beginners don’t want the big picture.
      • 从业者现在能够建立问题域的概念模型,并有效地使用它们。他们可以独立解决自己遇到的问题,并开始考虑如何解决新的问题——那些他们之前没有遇到的问题。他们开始寻求和运用专家的意见,并有效利用。
      • 与更高水平者追随下意识反应不同,胜任者会探寻和解决问题,他们的工作更多是基于谨慎的计划和过去的经验。如果没有更多的经验,在解决问题时,他们将难以确定关注哪些细节。
      • 胜任者能够解决问题。 Competents can troubleshoot.
      • 精通水平的从业者需要全局思维。他们将围绕这个技术,寻找并想了解更大的概念框架。对于过于简单化的信息,他们会非常沮丧。
      • 精通者能够自我纠正。 Proficient practitioners can self-correct.
      • 在德雷福斯模型中,处于精通水平的从业人员有一项重大突破:他们能够纠正以往不好的工作表现。他们会反思以前是如何做的,并修改其做法,期望下一次表现得更好。到这个阶段,自我改进才会出现。 同时,他们会学习他人的经验。作为精通者,他能够阅读案例研究,倾听有关失败项目的流言蜚语,观察别人怎么做,从故事中认真学习,即使他没有亲自参与。 伴随向他人学习的能力而来的,是理解和运用格言经验之谈(maxim)的能力,这些经验之谈犹如谚言或格言,是可以应用于当前情境的基本原理。
      • 处于精通水平的人员知道什么地方有可能出错,或者更确切地说,什么地方非常有可能出错。他们具有经验和判断力,能够理解这句格言在情境中意味着什么。事实证明,理解情境是成为专家的关键。 精通者有足够的经验,他们知道下一步会发生什么,如果没有发生又需要改变什么。他们非常明确哪些计划需要取消,而应该采取什么行动。
      • 专家是各个领域知识和信息的主要来源。他们总是不断地寻找更好的方法和方式去做事。他们有丰富的经验,可以在恰当的情境中选取和应用这些经验。他们著书、写文章、做巡回演讲。
      • 专家凭直觉工作。 Experts work from intuition.
      • 专家知道哪些是无关紧要的细节,哪些是非常重要的细节。也许不是有意识的,但是专家知道应该关注哪些细节,可以放心地忽略哪些细节。专家非常擅长做有针对性的特征匹配。
    • 2.3 现实中的德雷福斯模型:赛马和赛羊
      • 当你在某领域不是很擅长时,你更可能认为自己是这方面的专家。
      • 规则断送专家。 Rules ruin experts.
      • 直觉是专家的工具,但公司往往轻视它,因为他们错误地认为,直觉“不科学”或者“不可重复”。
      • 这通常被称为消极怠工或者恶意服从,也就是说,员工只做他们工作范围内的事情——不多也不少,严格按照规矩办事。
      • 没有一个具有专门技能的人在现实世界中完全按照规矩做事,这样做显然效率低下。
      • 诀窍 2:新手使用规则,专家使用直觉。 #诀窍
      • 当然,从新手到专家的过程涉及的不仅仅是规则和直觉。在你提升技能水平的过程中,有许多方面会发生改变。最重要的三个变化如下。 从依赖规则向依赖直觉转变。 观念的改变,问题已不再是一个相关度等同的所有单元的集合体,而是一个完整和独特的整体,其中只有某些单元是相关的。 最后,从问题的旁观者转变为问题涉及的系统本身的一部分。
      • “执行他们需要做的任务并根据需求学习新任务,但是从来没有对任务环境获得更广泛的、概念上的理解。
      • 新手尽管能力差但是信心十足,而专家在情况异常时会变得愈发谨慎。专家会更多地自我怀疑。
      • 诀窍 3:知道你不知道什么。 #诀窍
      • 如果足够幸运在团队里拥有一名专家,你需要照顾他,为他考虑。同样,你需要照顾少量新手、大量高级新手和少数但精干的胜任者和精通者。
      • 专家并不总是最好的老师。教学是一门技能,你在某个领域是专家,这并不能保证你可以把它教给别人。
      • 直觉和模式匹配能力超载了显性知识。 Intuition and pattern matching replace explicit knowledge.
    • 2.4 有效地使用德雷福斯模型
      • 而且需要辛勤工作——只是在某领域工作十年是不够的。你需要实践。根据著名认知科学家 Dr. K. Anderson Ericsson 的说法,积极的实践需要四个条件。 需要一个明确定义的任务。 任务需要有适当难度——有挑战性但可行。 任务环境可以提供大量反馈,以便于你采取行动。 提供重复犯错和纠正错误的机会。
      • 一旦你成了某个领域的专家,在别的领域成为专家就会变得更容易。至少你已经有了现成的获取知识的技能和模型构建的能力。
      • 诀窍 4:通过观察和模仿来学习。 #诀窍
      • 这和被称为 Shu Ha Ri 的武术训练周期有异曲同工之妙。 在 Shu 阶段,学生模仿老师教授的技术,原模原样。在 Ha 阶段,学生必须思考其中的意义和目的,以达到更深的理解。Ri 意味着超越,不再是一名学生,已经具有了自己的创新。
      • 诀窍 5:保持实践以维持专家水平。 #诀窍
    • 2.5 警惕工具陷阱
      • 规则无法告诉你在某种情况下应该采取的最合适行为或者正确路线。它们充其量也就是“自行车的辅助轮”——可以帮助启动,但是却限制并大大妨碍了以后的表现。
      • 针对新手创建一套工作方法,对经验丰富的团队成员来说,你会建立一个恶劣的工作环境,他们会直接离开你的团队或组织。
      • 阐明太多细节会适得其反。这会引发一种称为无限倒退(infinite regress)的问题:一旦你详细解释了一系列假设,你就提前暴露了本应简单提出的下一个层次的假设。如此下去,只会带来恶性循环。
      • 就算 Eclipse 能提供给 Bob 和 Alice 巨大的生产力,它也有可能会毁掉 Carol 和 Ted。后者宁愿选择 IntelliJ 或者 TextMate 或者 vi。
      • 语言表达如果过于口号化,它就会变得微不足道,并最终完全失去意义
      • 诀窍 6:如果你需要创造力、直觉或者独创能力,避免使用形式方法。 #诀窍
      • 不要屈服于工具或者模型的虚假权威。没有什么可以替代思考。
    • 2.6 再一次考虑情境
      • 新手需要与情境无关的规则,而专家使用与情境相关的直觉。
      • 在系统思维中,如面向对象的编程,往往是最让人感兴趣的不是事物本身,而是事物之间的联系。这些联系有助于形成情境,而正是情境让这些事物各不相同。
    • 2.7 日常的德雷福斯模型
      • 一种规格并非处处适用。 One size does not fit all.
      • 随着时间推移,你的个人学习和成长所需要的东西会改变。当然,在团队中你同样需要先考虑他人的技能水平,然后再判断自己该如何倾听、响应他们的意见。
      • 新手需要快速成功和与情境无关的规则。你无法指望他们独自处理新情况。在一个给定的问题空间内,他们会停下来思考所有事情,不论相关与否。他们不把自己看做系统的一部分,所以没有意识到他们施加的影响——不论是积极的还是消极的。提供给他们所需的帮助而非全貌,否则,那只会把他们弄糊涂了。
      • 在另一端,专家需要获得全貌;不要用约束性、官僚的规则妨碍他们做出自己的判断。你需要从他们的专业判断中获益。请记住,不论怎样他们认为自己是系统的一部分,并将这些事情当作自己的事情来做,他们的投入超出你的想象。
      • 理想情况下,你希望团队里混合各种层次技能水平:拥有一个全部是专家的团队也存在它的难处。当所有人在考虑森林的时候,你也需要一些人来关注一棵棵大树。
      • 诀窍 7:学习如何学习的技能。 #诀窍
    • 3.2 随时(24×7)记录想法
      • Fisher Space 钢笔
      • 诀窍 8:捕获所有的想法以从中获益更多。 #诀窍
      • Moleskine 记事本
      • 每个人都有好点子。 Everyone has good ideas.
      • 每个人——不论教育背景、经济状况如何,不论日常工作是什么,不论年龄大小——都有好想法。但是在这么多拥有好想法的人里面,只有少数人在努力跟踪它们。而其中,又只有更少数人会努力付诸行动。随后,仅有少之又少的人有能力将好想法成功实现。
    • 3.3 L 型和 R 型的特征
      • 诀窍 9:综合学习与分析学习并重。 #诀窍
    • 3.4 R 型的崛起
      • 商品化意味着美学品味的竞争。 Commoditization means you compete on aesthetics.
      • 一旦你接受了某种固化形象,你的行为就会受到与这种固化形象相关联的行为的影响。
    • 3.5 R 型看森林,L 型看树木
      • 这项实验说明了一个事实:如果你想发现全局、整体的模式,你需要 R 型;如果你需要分析部分和细节,你需要 L 型。对于我们大多数人来说,这种层次的专长就是这样区别的。R 型看森林,L 型看树木。
    • 3.6 DIY 脑部手术和神经可塑性
      • 诀窍 11:重新连线大脑,坚信这一点并不断实践。 #诀窍
      • 神经可塑性(大脑的可塑本质)也意味着你能够学习的最大容量或者你可以获得的技能数量不是固定的。没有上限,只要你相信这一点。根据斯坦福大学研究心理学家、Mindset: The New Psychology of Success [Dwe08]的作者卡罗尔·德韦克的说法,那些不相信自己能增长智力的学生的确做不到。而那些相信自己大脑可塑性的学生则能够很容易提高能力。
      • 思想使然。 Thinking makes it so.
      • 想做一名更好的程序员吗?那就多编码,深思熟虑,专注实践。想学习一门外语吗?那就投入进去,不停地说,用它思考。大脑会很快意识到并调整自己为这种新用途提供更多方便。
    • 第 4 章 利用右脑
      • #+BEGIN_QUOTE 人应该努力学习洞察和培养自己内心深处的灵光一现,这远远胜于外面流光溢彩的整个世界。然而,人总会下意识地抛弃自己特有的想法,仅仅因为那是他自己的想法。 ——拉尔夫·瓦尔多·爱默生(1803—1882) #+END_QUOTE
      • 如果你感到惧怕,不想尝试某些东西,那么这些恰恰就是你应该首先尝试的。
      • 4.1 启动感观输入
        • 大脑总是渴望接受这种额外的、新奇的刺激。大脑擅于持续适应变化的环境。
      • 4.2 用右脑画画
        • 绘画即是观察。Drawing is really about seeing.
        • 这是一个符号,表示真实事物的简易速记。但是,很多时候你不需要这种陈旧的符号,你需要的是洞察真实的事物,比如在绘画,或者访谈用户收集其需求时。
      • 4.3 促成 R 型到 L 型的转换
        • 诀窍 13:R 型开路,L 型紧跟。 #诀窍
        • 如果想法过早地受到束缚,那么创造力就会被扼杀。
        • 与此类似,如果你还没有全局的概念就试图记忆细节,那么学习就会陷入僵局。
        • 解决问题时,学会轻松面对不确定的事情。进行创造时,坦然面对荒谬和不切实际的东西。学习过程中,不要太迫于学会和记忆,首先只是适应它。试着先理解其意思,掌握主旨思想。
        • 坦然面对不确定意味着坦然面对一些不完整、未完成的事物。你应该避免追求完美的冲动想法。
        • “完美主义是压迫者的声音,是人们的敌人。它会束缚你的想法,毁掉你的生命,同时它也会妨碍你创建较差的草稿初案。我认为完美主义基于一种强迫性的想法:如果你足够细致,每件事情都做得很好,那你就不会失败。但事实是,无论怎么做你都有可能会失败,可是很多人即使不太仔细也会做得比你好,而且其间也会拥有更多欢乐。”
      • 4.4 收获 R 型线索
        • 许多想法是无法用语言表达的。Many ideas are not verbalizable.
        • 晨写是早晨要做的第一件事——在喝咖啡之前、在收听交通广播之前、在洗澡之前、在送孩子上学之前、在遛狗之前。 至少写三页,手写,不需要键盘、电脑。 不要审查删减你写的东西。不论是优秀的还是陈腐的,只管写下来。 坚持天天写。 #写作
        • 这种方法为什么会起作用?我认为这是因为晨写让毫无防备的大脑倾倒想法。早上刚起床时,你还没有像你想的那样清醒。潜意识仍然占主角。你还没有提起所有防备,也还未适应有限的现实世界。你可以直接连通 R 型,至少一小会儿。
        • 养成一种收集思维大卵石的习惯。一旦有了积累,造墙的过程就会很容易。 这是一种好习惯,应该培养。
        • 你是否注意到伟大的想法或者领悟可能会在最出乎意料的时候降临?可能是洗澡时,除草时,刷盘子时或者做其他一些枯燥、琐碎的工作时。 这是因为 L 型有点厌倦了这种常规的任务,走了神,这才得以让 R 型自由地展示自己的发现。
        • 著名数学家庞加莱使用一种类似的方法作为解题技巧。每当遇到一道困难、复杂的问题时,他就会把所有已知的、与此相关的东西都写在纸上(在后面的章节中我会谈到一种类似的东西,参见 6.8 节)。这么做可以揭露出许多问题。看着这些问题,庞加莱会立刻解决其中简单的问题。
        • 诀窍 16:离开键盘去解决难题。 #诀窍
      • 4.5 收获模式
        • 研究表明,一个英语单词中的字母按何种顺序排列不是很重要,重要的是首末字母是正确的。其余的字母可以完全打乱,但你仍然可以很容易就读懂它。这是因为人类大脑不是靠读取每一个字母来理解,而是把单词作为一个整体来理解。
        • 源代码的阅读次数远远多于它的编写次数,所以通常值得花一些工夫把代码变得适合人类阅读。换句话说,我们应该使代码中的较大模式更容易被看到。
        • 括号的放置也形成了一种可视化的模式,这也是为什么有人长期执着地争论,一定要坚持在那些使用花括号的语言中遵守一种特定形式的括号位置。他们不是为了争论而争论,而是因为模式匹配影响他们的感知。
        • 请努力使用一致的排版提示来辅助可视化知觉。编译器也许不在意,但是我们的确在意。
        • 如果你没有看到这些模式的价值,但是团队里的专家们意识到了,那么请遵循他们。记住,这不是一种浪费时间的愚蠢修饰,而是一种重要的交流工具。
        • 很多时候你难以看清摆在面前的事情,因为你已经习惯于通过某种特定的方式来看待模式。我们往往会遵循老套子,即陷入特定的思维模式和习惯的思维方式。努力从完全不同的角度看待问题,这是获取洞察力的诀窍。
        • 拥有创造力和问题解决能力的关键在于寻找思考问题的不同方式。
        • 把问题倒过来。Turn the problem around.
        • 不要努力预防难以发现的 bug,努力找到三四种会主动引起 bug 的方式。这样,你可以发现到底会发生什么。在用户界面设计时或许也可以尝试同样的方法:不要努力去想完美的格式或者流程,先做一个最差的设计方案。这将帮助你意识到什么是真正重要的。 #BUG
        • 诀窍 17:改变解决问题的角度。 #诀窍
        • 这像别的什么东西吗? 不做任何改变,坚持始终如一。 关上门,从外面听。 错误是一种潜在的提示。 #BUG
    • 第 5 章 调试你的大脑
      • #+BEGIN_QUOTE 我从来都不想成为怪人,但别人都认为我想。 ——弗兰克·扎帕,美国作曲家、音乐家、电影导演 #+END_QUOTE
      • 直觉是伟大的,除了当它不伟大的时候。
      • 认知偏见:思维如何被误导。 时代影响:同代人如何影响你。 个性倾向:个性如何影响思维。 硬件故障:大脑较老区域如何压制较聪明的区域。
      • 5.1 了解认知偏见
        • Wikipedia 列举了大约 90 种常见认知偏见。
        • 看到相关性并不等同于确定了因果性。
        • 黑天鹅现象警示我们不要把未观察到的或者罕见的事件认定为不可能。
        • 诀窍 19:适应不确定性。 #诀窍
        • 总有一些元素是不确定的,这也不是坏事。不停地探索这个问题,但如果还没准备好的话,不要着急确定细节。要适应你不知道的事实。
        • 诀窍 20:信任记录而不是记忆,每一次思维的输出都是一次输入。 #诀窍
      • 5.2 认清时代影响
        • 但是,一切都不是静态的。若干年前形成的偏见可能和现在的就不同。不过与你的同龄人相比,你们的偏见可能有很多相似之处,而和比你稍年长或者年轻的人相比,你们的偏见则会大不相同。
        • 一些人会以忍受老板的辱骂为代价维持工作的稳定性。另一些人则会在感觉到一丝敌意后就立马打包走人。那些加班到深夜的人无法理解那些下午 5 点高高兴兴下班、回家与家人团聚的人,反过来也是一样。
        • 你是否曾经想过为什么会珍视你所珍视的东西?是父母灌输给你的吗?或者是对父母的一种反抗?你是否曾经坐下来,认真思考自己到底是要成为自由主义者、保守主义者、自由意志主义者还是无政府主义者?成为工作狂还是懒鬼?
        • 每一代人都会对前一代人的缺点做出反应,随着时间的推移,就会形成一种重复模式。
        • 不是所有人都像我一样看待世界。
        • 不是所有人都认同你根深蒂固的价值观,这也不意味着你是对的或者他们是错的。
        • 很可能你天生就会喜欢你这一代人所钟爱的做事方式和价值观。但是请认识到这种影响来源于何处。可能你的极端个人主义不是你独有的特质。可能你羡慕别人和期望自己拥有的特质不是来自于深思或者逻辑推理,而只是因为你出生在那个时代。
        • 当你激烈地支持或者赞成一个观点时请记住这一点。你提出的论据是逻辑性的,还是情感作怪,或者只是因为熟悉?在特定的情境中论据成立吗?你是否真的考虑过别人的看法?旁观者清,所以你需要从正反两个方面看待问题。
        • 诀窍 21:从多个角度看待问题。 #诀窍
        • 要想避免你所处时代的特有偏见,最好的方法是保持多样性。
      • 5.3 了解个性倾向
        • 感觉型的人强调可行性和事实,完全基于当时的细节
        • 直觉型的人非常富有想象力,喜欢比喻,创新力强,能够看到多种可能性——生活总是在下一个拐角等着我们。
        • 大多数公司通过表扬和认可奖励团队,但这并不一定适合所有性格类型。特别是对外向型起作用的奖励可能并不适用于所有程序员。
        • 别人的性格缺陷肯定与你不同。
        • 诀窍 22:尊重不同人的不同性格。 #诀窍
      • 5.4 找出硬件问题
        • 诀窍 23:像高级动物一样行动,请做深呼吸,而不要张口嘶鸣。 #诀窍
      • 5.5 现在我不知道该思考什么
        • 如果你认为自己已经明确了一些事情,那么试着解释一下它的反面。这有助于避免之前提到的表面上的谬论。
        • 为了避免一厢情愿、盲目乐观的想法,记住任何一个决定都是一种权衡。不是没有免费的午餐。凡事总有两面性,仔细权衡——积极和消极的两面——有助于确保你更全面地评估形势。
    • 第 6 章 主动学习
      • 在当今技术和文化环境下,学习能力可能是成功的最重要因素。
      • 6.1 学习是什么……不是什么
        • 技术本身并不重要,持续学习才是最重要的。
        • 单调枯燥的“复印机”似的培训之类的低质量教育活动。
        • 教育(Education)来自于拉丁文 educare,字面意思是“被引出”,即引导出某样东西。我发现一件非常有趣的事情,当我们想到教育时,通常并不考虑它这个词源的含义——从学习者那里引导出一些东西。 相反,更常见的看法是把教育当作学习者被动接受的事情——灌输,而不是引导。这种模型在公司培训中尤其流行,称之为羊浸式培训。
        • 学习不是强加于你的,而是需要你主动做的事情。 仅仅掌握知识,而不去实践,没有用。 随机的方法,没有目标和反馈,往往会导致随机的结果。
        • “假设有人原本去找他邻居要火,结果发现邻居那儿很暖和,于是他就继续呆在那边取暖。这就好比是,某人去向别人学习知识,却没有意识到他应该点燃自己的火焰、他自己的智慧,而只是很高兴地着迷于他人的演讲,老师的话只是触发了联想思维,就好比只是让他的两颊泛起红晕,只是让他四肢感到温暖,但是,虽然笼罩在智慧的温暖光茫下,他内心的阴冷昏暗却没有被驱散。” ——普卢塔赫,希腊历史学家、传记作家和评论家
        • 大脑构建的模型、为构建模型所提出的问题和你的日常经验和实践对你的业绩更加重要,它们才能提高你的竞争力和专长。仅仅掌握知识是不够的。
      • 6.2 瞄准 SMART 目标
        • 如何知道你何时完成?这一直是我最喜欢问的一个问题。为了努力实现目标任务,不管采用什么方法,你必须能够度量它。可度量的与具体的相辅相成。很难度量笼统抽象的事物,但是很容易度量具体和详细的事物,只要使用确切的数字即可。如果你认为无法度量自己的目标任务,那么很可能它还不够具体。
        • 你不必看清你去往何处。不必看清你的目的地和沿途的一切。你只需要看清面前的一两米即可。
        • 从你现在所处的情况着眼,让每一个目标都可实现。
      • 6.3 建立一个务实的投资计划
        • 把技术和才干看作一个知识投资组合。也就是说,你学习的技术和掌握的知识都变成你投资组合的一部分。
        • 记住艾森豪威尔将军对我们的建议:作计划比计划本身重要得多。正如我们马上将探讨的,计划是会变的,不过,与目标保持一致非常重要。
        • 知识投资和金融投资的一个主要区别是所有知识投资都有些价值。即使你从来不会在工作中使用某项技术,它也会影响你思考和解决问题的方式。因此,你学习的任何东西都有价值,只是有可能不是直接的、有物质回报的或和当前工作相关的价值。也许它会有助于开发 R 型思维或者改善 R 型到 L 型的切换。
        • 知识投资也是一样。你需要定期投资最低限度的时间量。养成一种习惯,如果需要的话。躲到你的家庭办公室里去或者走进有无线网络的咖啡厅。并非每期学习都同样富有成效,但是只要定期安排学习,长期来看一定会成功。如果你一直在等待空闲时间或者等待灵感的突现,那么它永远都不会发生。
      • 6.4 使用你的原生学习模式
        • 斯滕伯格认为智力分为三部分,一部分是元级别的成分,负责总体管理思维过程;一部分是基于表现的成分,负责执行任务、建立关联等;最后一部分是知识获取成分,负责吸收新信息。每一部分都有自己的作用,彼此独立,各负其责。斯滕伯格指出,标准的 IQ 测试并不一定能衡量出智力的总分。他举例说那些测试得高分的人可能不善于在现实中解决问题,相反,那些善于解决问题的人在测试中反而很差。
      • 6.8 使用思维导图
        • 虽然思维导图听起来非常基本、初级,但它有一些微妙的属性。它利用了你的眼睛扫描和阅读一张纸的方式。通过一种线性文字或者大纲所不能的方式,空间提示可以向你传达信息,因为颜色和符号的使用增加了表达的丰富性。当你打算添加一条新信息、一个新想法或者领悟到思维导图时,你要面对这样一个问题:这属于哪一块?你必须评估想法之间的关系,不仅仅是想法本身,这是一项非常具有启迪作用的活动。
      • 6.9 利用文档的真正力量
        • 如果文档没有提供价值,就不要记录。为了文档而写文档是浪费时间。
      • 6.10 以教代学
        • 学习某项事物的最简单和有效的方法是尝试教别人。
        • 另一种有用的办法是尝试向一个孩子或者你所在领域之外的人解释你的东西。诀窍就是用他们能理解的话语进行解释。这是一个向你的 Edna 大婶解释你的工作的好机会,也是一个练习从听众角度观察问题并创建隐喻的好机会,这些隐喻有助于解释、阐明你的工作。你可能会在这个过程中惊奇地发现一些新的收获和领悟。
        • 没有什么比一大堆聪明人给你一字一句地挑毛病、帮你理清思路更有效果。这是对一般而言的教学的真正回报,它澄清了你的理解,揭示了你的很多潜在假设。
        • 诀窍 32:观察,实践,教学。 #诀窍
    • 第 7 章 积累经验
      • 仅仅依靠“实践”并不能保证成功,你必须从实践中有所收获,但是面对一些常见的障碍,我们很难做到这一点。你又无法强迫它,过度努力地尝试可能和不去尝试一样糟糕(甚至更差)。
      • 7.2 利用现有知识
        • 当面对一个棘手的问题时,你可以采用几种经典的方法。首先,能否把问题分成若干个更小的、更易于管理的部分?这种功能分解对软件开发人员非常实用:把事物分成大脑足以容纳的几部分。另一种流行的方法是想一想你之前解决过的类似问题。这个问题与那一个相似吗?你能使用类似的解决方案吗?还是用另一种方案解决这个新问题?
        • 通过类似的方式,派珀特的学生能够利用现有的、心领神会的知识(健身操、社会交往、语言,等等),以此了解乌龟的微观世界和学习新的编程技能。
        • 诀窍 34:从相似点中学习,从差异中忘却 #诀窍
      • 7.3 正确对待实践中的失败
        • 调试意味着解决问题,这些问题一般是我们自己制造的。我们找出过失、错误、疏忽,然后改正。价值在于从错误中学习,派珀特总结得好:“错误有益于我们,因为它们让我们思索到底发生了什么,知道什么地方错了,然后通过理解,纠正它。”
        • 很少有问题只存在唯一的最佳答案。
      • 7.4 了解内在诀窍
        • 不要把精力放在纠正一个一个的细节上,只需要具有意识。接受事实是第一步,只要意识到它即可。不要做出判断,不要急于拿出方案,不要指责。
      • 7.5 压力扼杀认知
        • 当面对时间压力时,人最没有创造力。
        • 允许失败会促进成功。你无需主动犯错误,只是一旦犯了,那也没什么。这听起来有点违反直觉,但是一旦你实践这种想法,就非常有意义。
        • 另一方面,如果失败是有代价的,就不会允许实验。没有风险,也没有收获,只有僵硬的思维,就像冲到汽车前面的鹿,等待着一场不可避免的、血腥的事故。
      • 7.6 想象超越感观
        • 如果你参加一个会议或者聚会,周围全是更高技能的人,那么你的能力就会提升。也许你可以更清楚地表达或者更好地证明自己的观点。或者你甚至有了自己的观点。
        • 传奇爵士乐吉他手派特·麦席尼(Pat Metheny)让这个想法更进了一步,他建议:“让自己始终成为乐队的最差乐手。如果你是最好的,你需要换一个乐队。我认为这对几乎所有事情都奏效。”
        • 观察别人的行为,激励你也做同样的行为。
        • 习惯“成功”的感觉非常重要,值得先假冒一次。也就说,你需要人为地创造条件感受一下,为了体验一下这种近似的成功感,不论需要何种脚手架,你都应配置。
        • “尝试会失败,认知会弥补。”
        • 成为专家。不要只是假装,要真正地扮演专家的角色。注意这么做会如何改变你的行为。
    • 第 8 章 控制注意力
      • 当今不缺少信息。而知识才揭示了信息的意义。
      • 你针对信息花费时间、注意力和技巧,并从中获得了知识。
      • 8.3 管理知识
        • 每本书都成为他意识的一小部分,但可能并不是整本书,因为我们绝大多数人都没有百科全书般的记忆力。一旦你读过一次,记得去什么地方找到对应的细节就足够了。
        • 爱因斯坦也深谙此道。据称他曾被问到一英里有多少英尺,他回答说,他不会在头脑中填满能轻易找到的东西。这就是参考书籍的用处,这是一种有效使用资源的方式。
        • 一旦有地方存储一些具体的信息,你就会注意到新的相关数据会突然从某处冒出来。这个现象类似于感官调整。
        • 一旦你有了地方来存放某类想法,你就会得到更多这类想法。
      • 8.4 优化当前情境
        • 科学家认为,试图把注意力同时放在几件事情上,意味着你在每件事情上都会处理得很差。
        • 我最喜欢的便携式写作工具之一,就是我的夏普 Zaurus。在它的生命即将走到尽头时,我去掉了它里面所有的东西,只剩 vi 编辑器。我卸掉了无线网卡,仅使用 CF 存储卡同步。此时的设备使我很少分心。事实上除了写作没有别的功能。没有游戏,没有电子邮件,没有网络——只有你写作的章节和文字。这是很艰苦的,但很有效。
        • 在 Mac 上可以使用 Think!屏蔽焦点以外的所有程序,或者是 DeskTopple,它可以隐藏你的桌面图标,替换你的墙纸,并定时自动隐藏应用程序的窗口。
        • 能够不访问邮箱就发送电子邮件是一个巨大的优势。
        • 当你有一个想法时,最好把它放在适合的地方,无论是待办事项清单还是电子邮件,然后回到你正在做的事情上。
        • 的艺术》(Getting Things Done: The Art of Stress-Free Productivity)[All02],简称 GTD,是一个非常受欢迎的图书/方法/信仰,旨在帮助你组织、排序并有效地完成工作。
    • 第 9 章 超越专家
      • #+BEGIN_QUOTE 真正的发现之旅不在于追求新大陆,而在于拥有新的视野。 ——马塞尔·普鲁斯特 #+END_QUOTE
      • 9.1 有效的改变
        • 请记住老习惯依然存在,如果你又回到了以前的某个习惯,不要太责怪自己。大脑就是这样工作的。只要承认失误即可,按照新的想法继续前进。当然老习惯肯定会再次发生,但是要意识到它的出现,并重新回到正确的道路上去。不论是要改变学习习惯,戒烟还是减肥,都是一样的道理。
        • 改变虽然非常困难,但是它最终会屈服于持久的坚持。
        • 制定一段时间的计划,然后努力实现。跟踪你的进展,当你感觉做得不够时重新审视你的成果。
        • “不作为”是敌人,而“错误”不是
        • 在一种新行为变成习惯之前通常需要至少三周的时间,或许更长。给它足够的机会。
        • 开始时目标设低一些。当你实现时奖励自己一下,再设立下一个小步骤。一步一个脚印,脑子里记住你的最终目标,但不要试图把所有步骤都想明白。只关注下一步,一旦你到达这一步,再继续为实现下一个目标而努力。
      • 9.2 明天上午做什么
        • #+BEGIN_QUOTE 不管你能做什么,或者期望自己能做什么,现在就开始做。勇敢可以给人智慧、力量和神奇。现在就开始做吧。 ——歌德 #+END_QUOTE
        • 开始承担责任,不要害怕问“为什么”,也不要害怕问“你怎么知道的”或者“我怎么知道的”,同样要大方地回答“我目前还不知道”。
        • 挑两件帮助你维持情境、免受干扰的事情,立即实施。
        • 创建一个实用投资计划,设定 SMART 目标。
        • 弄清楚你在所属专业领域中所处的位置(从新手到专家)和你期望的位置。保证诚实。你需要更多的诀窍还是更多的情境?更多规则还是更多直觉?
        • 实践。某段代码遇到问题了吗?尝试用五种不同的方式编写。
        • 允许犯更多错误——错误是许可的,要从中学习教训。
        • 携带一个笔记本(最好不带横线)。涂鸦,做思维导图,记笔记。让你的
        • 思想自由地流动。
        • 打开心扉接收美感和其他的感官输入。不论是你的房间、桌面还是代码,
        • 关注它们是多么地赏心悦目。
        • 开始在私人 wiki 上记录你感兴趣的事情。
        • 开始写博客。为你读过的书写评论。阅读更多书,你会有更多可写的东西。使用 SQ3R 和思维导图。
        • 让散步成为你每天生活的一部分。
        • 启动一个读书小组。
        • 再拿一个显示器,开始使用虚拟桌面。
        • 回顾每章的“实践单元”,尝试去做。
      • 9.3 超越专家
        • 对于专家来说最致命的弱点是像专家一样行动。一旦你相信自己的专业水平,你就会对其他的可能性视而不见。你停止了好奇心。你可能开始抵制所属领域的改变,担心在你花费了很多努力才得以精通的主题上失去权威。你自己的判断和看法不再支持你,而是囚禁你。
        • 你需要像小孩一样拥有无穷的好奇心,充满问题和惊讶。
        • 处理学习方面的事情,不要先入为主,不要存在事先的判断或者固定的看法。要像小孩子一样看待事物的真实面貌。 哇,这很酷。我想知道它到底是怎么工作的?它是什么?
        • 认识你自己,认识当前时刻,认识你所处的情境。我认为失败的最大原因就是我们往往让事情自由发展。
        • 达芬奇在 600 年前抱怨说:“人们看却没有看见,听却没有听见,吃却没有味觉,接触却没有触觉,说话却没有思考。”
        • 维梅尔鼓励女孩像他一样看待世界:充满了复杂和丰富的细节。这是我们都在面对的挑战——完全看清世界,不断看清世界,和我们自己。