程序员思维修炼

文章目录
  1. 1. 摘抄
    1. 1.1. 新手->高级新手->胜任者->精通者->专家
    2. 1.2. 参考资料

.

摘抄

软件是在头脑中创建的 Software is created in your head

牢记每个人是不同的,切忌随波逐流 Only dead fish go with the flow

关注情境

万物都是相关的,每个事物都是多个系统的交汇点

专家,工作看起来很轻松(眉头紧缩的演奏家和轻松的演奏家)

书的结构

  1. 从新手到专家的历程(德雷福斯模型 Dreyfus model)
  2. 认识大脑(软件开发中最重要的工具)
  3. 正确使用大脑(直觉是专家的基本特征)
  4. 调试大脑(避免出错的直觉)
  5. 积极学习(学习如何学习)
  6. 积累经验
  7. 控制注意力(优化你当前的情境)
  8. 超越专家
  9. 实践单元

新手->高级新手->胜任者->精通者->专家

警告:德雷福斯模型针对的是学习技能,大多数是实践类技能,而非认知类技能。当然包括国际象棋大师等类别。

新手需要(明确的,与情境无关的)指令清单 Novices need recipes

新手缺乏经验,经验是指通过实施这项技能促进了思维的改变。

高级新手可以多多少少的摆脱固定的规则,能够形成一些总体原则,但不是全貌。高级新手不想要全局思维。(大多数人都是高级新手)

胜任者能够解决问题。

精通者需要全局思维。精通者能够自我纠正。 Proficient practitioners can self-correct. 精通者能够处理意外情况。

专家凭直觉工作。 Experts work from intuition

专家知道哪些是无关紧要的细节,哪些是非常重要的细节,也许不是有意识的,但是专家知道应该关注哪些细节。专家非常擅长做有针对性的特征匹配。

让专家指定规则,新手按照规则行动可以提高新手的表现。但是让专家自己按照规则行动却会降低表现。

规则会断送专家。Rules ruin experts. [DD79论文]

专家的直觉和模式匹配能力超越了显性知识。Intuitioni and pattern matching replace explicit knowledge.

技能提升中有3种现象:

  • 从依赖规则向依赖直觉转变
  • 观念的改变:问题不再是一个相关度等同的所有单元的集合体,而是一个完整和独特的整体,其中只有某些单元是相关的(wxy:组块和解耦)
  • 从问题的旁观者变为问题涉及的系统本身的一部分

专家: 直觉 关注相关方面 系统的一部分

新手: 规则 考虑各个方面 旁观者

如果你有孩子,你会发现他们很少照你说的做,却总是模仿你的所作所为

保持实践以维持专家水平

学习技能的3个阶段:1.模仿 2.吸收 3.创新

参考资料