Contents

读书摘录-程序员的思维方式

Contents

2.2 德雷福斯模型的5个阶段

2017-01-24

但是,如果给新手提供与情境无关的规则去参照,他们就会变得能干起来。也就是说,需要这种形式的规则:“当X发生时,执行Y。”换言之,需要一份指令清单。 图2-2 玉米饼食谱,不过你知道需要烹饪多长时间吗 这就是呼叫中心的工作原理。你可以雇用一大批对当前技术没有很多经验的人,然后让他们按照一个决策树按部就班地执行下去。

3.3 L型和R型的特征

2017-02-06

事实上,综合是一项非常强大的学习技术,以至于麻省理工学院媒体实验室的尼葛洛庞蒂在Don’t Dissect the Frog, Build It [Neg94]中建议,真正想要了解一只青蛙,传统的解剖不是办法,更好的方式是构造一只青蛙。 也就是说,要求学生构造一个具有青蛙特征的生物。这是一种伟大的方式,可以真正了解到,什么使青蛙成之为青蛙,以及青蛙如何适应其特定环境。这是一个综合学习的绝佳例子。

4.4 收获R型线索

2017-02-08

这种方法为什么会起作用?我认为这是因为晨写让毫无防备的大脑倾倒想法。早上刚起床时,你还没有像你想的那样清醒。潜意识仍然占主角。你还没有提起所有防备,也还未适应有限的现实世界。你可以直接连通R型,至少一小会儿。

2017-02-08

你需要培养一种非目标驱动的思维方式。正如庞加莱所做,把一切都写在纸上(或者编辑器中,如果你必须得这么做的话),然后不去管它。不要试图思考。记住它,如布朗所说,不要关注它。只要简单地记住它。让事实和问题自由地搅和、浸泡(我们将在8.2节讨论这一话题)

4.5 收获模式

2017-02-08

“在开始练习武术之后,我感觉到我的注意力持续时间和控制能力(比如在糟糕的环境下集中注意力)都有了提高。我一直在向软件开发人员和其他知识工作者推荐我的实践经验。它就是气功,它既有武术的一面,也包含太极、冥想和呼吸的方面。

跑步应该也行的。

6.2 瞄准SMART目标

2017-03-05

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

6.3 建立一个务实的投资计划

2017-03-05

就像任何投资一样——无论是金融还是艺术上的——都必须时刻进行管理。 很多年来,戴维·托马斯(Dave Thomas)和我一直把实用投资计划作为咨询实践的一部分,在这里我简单地介绍一下这些内容。实用投资计划基于一种非常简单但是有效的理念:像管理你的金融投资一样小心管理你的知识投资。

6.4 使用你的原生学习模式

2017-03-05

很多教育家把学习者分为三大类:视觉型、听觉型和动觉型。 视觉型学习者需要看到学习资料和老师。图片和图表对视觉型学习者都很有效,他们对肢体语言和面部表情也很敏感。 听觉型学习者必须听到学习材料。讲座、研讨会和播客都很有效。他们对语气、语速和其他细节都很敏感。 动觉型学习者通过活动和触摸来学习。他们需要亲身感受学习材料。特别是对运动、艺术和 工艺等领域,你都需要通过动手来学习。

6.9 利用文档的真正力量

2017-03-05

创建低层次的设计文档,简单地反映代码的细节(几乎很快就会过时)对任何人都没有意义。但是其他形式的文档可能是有价值的,即使没有明确的读者。

6.10 以教代学

2017-03-05

为了省掉你的同事过来,我们建议你在桌子上摆一只黄色橡皮鸭作替身,当你遇到问题时,先和它 聊聊。 另一种有用的办法是尝试向一个孩子或者你所在领域之外的人解释你的东西。诀窍就是用他们能理解的话语进行解释。这是一个向你的Edna大婶解释你的工作的好机会,也是一个练习从听众角度观察问题并创建隐喻的好机会,这些隐喻有助于解释、阐明你的工作。你可能会在这个过程中惊奇地发现一些新的收获和领悟。

第7章 积累经验

2017-03-05

我们应该小心翼翼地从实践中获得智慧并适可而止,否则我们就会像不慎坐在热炉子上的猫一样,它再也不会坐在热炉子上——这还好,但是它也再也不会坐在冷炉子上。 ——马克·吐温

7.3 正确对待实践中的失败

2017-03-05

你可以在公司范围之外尝试,比如在家里做开源项目。这起码会减少产生负面结果的风险。但是仅仅这样不足以为你建立一个积极的学习环境。不论是在公司团队还是在黑夜里偷偷进行的独自实验,你都需要做到以下几点。

7.4 了解内在诀窍

2017-03-05

在采取纠正行动之前完全知道“这是什么”对于调试非常重要。太多程序员(包括我自己)往往在没有完全明白真正的错误是什么之前就着急修正它。匆忙地作出判断或者过早地进行修补。你需要首先完全明白系统的原理,然后再判断哪部分错了,最后提供解决方案。也就说,不要动手做,而是要袖手旁观。琼·金姆介绍下述方法来帮助大家充分了解。

8.2 通过分散注意力来集中注意力

2017-03-05

怎么区分你是在浸泡思想还是在拖延、浪费时间呢? 我总是把拖延称为“做纸娃娃”。一个密友(姓名保密)第二天有一门重要的考试,但是前一天晚上,她并不学习,而是坐在沙发上剪纸娃娃。当时这在我看来就是典型的耗费时间:一个无关的非生产性的活动阻碍了你需要做的真正工作。 但也许我错了。也许这不是拖延。这是一个高级触觉练习,也许是她浸泡思想的方法。她通过了测验并以优异成绩毕业。 如果某个任务你真的不想做,那么任何分散注意力的努力都很可能只是耗费时间。如果你仍然有兴趣,但感觉“困难”,那么思想其实是在继 续发酵,这当然没问题。

8.6 保持足够大的情境

2017-03-05

事实上,保持情境中任务相关的东西很有益处。不论你如何衡量生产力,仅仅多使用一台显示器就可以让你的生产力提升20%~30%。 这是为什么? 适合你的不是桌面隐喻,而是Frederick Brooks在几年前描述的拥挤的飞机座位隐喻。在一个大桌面上,你可以展开你的工作,看到你在做什么——同时看到所有的。在拥挤的飞机座位上,你没有足够的空间同时看两份以上的文档(或者文档的一部分)。你必须来回地切换文档。 我敢打赌,让你去Staples或者Office Depot等办公用品店寻找一张17英寸的办公桌,你找不到,因为这个尺寸实在是太小了。然而,大多数显示器都是17到21英寸。这点空间就是我们办公的地方。你不得不在活动窗口和应用程序之间切换,因为你无法在如此小的空间里保持足够的情境。 你知道Alt-Tab组合键(Mac上的Command-Tab)称为什么吗?情境切换。正如我们看到的,情景切换扼杀生产力。即使是类似使用Alt-Tab切换不同窗口的小动作也会花费时间、短期记忆力和精力。

2017-03-05

在最先进的操作系统上你可以使用虚拟桌面切换器,允许你拥有很多不同的屏幕,你可以使用特殊键随意切换。每一个屏幕都是独立的,称为工作空间。秘诀在于你如何在工作空间中分配应用。

9.2 明天上午做什么

2017-03-05

现在就开始吧!你选择开始做什么并不特别重要,重要的是主动尝试本书中提到的知识,这是你明天一大早要做的第一件事。 下面是对第一步的一些建议。 开始承担责任,不要害怕问“为什么”,也不要害怕问“你怎么知道的”或者“我怎么知道的”,同样要大方地回答“我目前还不知道”。 挑两件帮助你维持情境、免受干扰的事情,立即实施。 创建一个实用投资计划,设定SMART目标。 弄清楚你在所属专业领域中所处的位置(从新手到专家)和你期望的位置。保证诚实。你需要更多的诀窍还是更多的情境?更多规则还是更多直觉? 实践。某段代码遇到问题了吗?尝试用五种不同的方式编写。 允许犯更多错误——错误是许可的,要从中学习教训。 携带一个笔记本(最好不带横线)。涂鸦,做思维导图,记笔记。让你的思想自由地流动。 打开心扉接收美感和其他的感官输入。不论是 你的房间、桌面还是代码,关注它们是多么地赏心悦目。 开始在私人wiki上记录你感兴趣的事情。 开始写博客。为你读过的书写评论。阅读更多书,你会有更多可写的东西。使用SQ3R和思维导图。 让散步成为你每天生活的一部分。 启动一个读书小组。 再拿一个显示器,开始使用虚拟桌面。 回顾每章的“实践单元”,尝试去做。

9.3 超越专家

2017-03-05

达芬奇在600年前抱怨说:“人们看却没有看见,听却没有听见,吃却没有味觉,接触却没有触觉,说话却没有思考。”