手头的这本书是"Pragmatic Thinking and Learning: Refactor Your Wetware" 直译过来就是"实用主义的思考与学习:重构你的思维过程" 中文版被译作为"程序员的思维修炼-开发认知潜能的九堂课".
这本书首先让我想到的是另外一本讲开发者思维方式的书:"系统化思维导论",不过很可惜温伯格的那本书的中文版被翻译得简直不知所云,糟糕至极.而且这本书除了中间换汤不换药炒了一下银年纪念版之外,并没有重新翻译,实在可惜.一本书能够遇到一个合适的出版社,译者太不容易了.
回到这本"重构你的思维",这本书并没有产出什么新的东西,而是把一些更适合开发者的理论重新组织了起来,而价值就在于这种具体情景的分析和在组织能力.书中提到的很多内容是具有普适性的,在"冬吴相对论"中也经常被提及.下面一起回顾一下:
Dreyfus成长模型
新手
新手并不是特别想要学习,他们只想实现一个立竿见影的目标;他们不知道如何应付错误,所以出错的时候,他们非常慌乱;
他们迫切需要一个新手指南去按部就班的去完成一个目标.所以SOP是新手成长的捷径.但是新手指南只能让你启程,不会让你走的更远.
高级新手
能够多多少少打破规则,可以独立的尝试任务但是难以解决问题.
他们想快速获取信息,并不像深究背后的机制,只想快速的拓宽技能;
比如我们学习某种新语言的时候,有一个阶段会快速了解API去实现更多的功能,解决更多的问题,不想过早的深入到底层机制刨根问底;实际上,没有足够的实践,也难以做深入的研究.
高级新手这一阶段是在拓展广度,看不深没有关系,先建立起全局思维;
胜任者
胜任者可以独立解决自己遇到的问题,并开始考虑如何解决新问题.他们开始寻求和运用专家的意见,并有效的利用.他们是团队的好人,可以指导新手,也不经常骚扰专家.这一阶段还没有足够的能力反思和自我纠正.
精通者
精通者具有全局思维,他们探索这个技能相关的更大的概念框架,如果信息过于简化,他们会非常沮丧.处于精通水平的从业人员有一项重大的突破:他们能够纠正以往不好的工作表现.他们会反思以前是怎么做的,并修改其做法,期望下一次表现的更好.到了这个阶段,自我改进才会出现.
精通者需要足够的经验,他们非常明确知道哪些计划需要取消,应该采取什么行动,可以有效的运用设计模式;
专家
专家是各个领域知识和信息的主要来源.他们总是不断的在寻找更好的方法和方式去做事.
十年成就专家
只是在一个领域十年是不够的,还要有积极的实践,什么样是积极的实践?
1.目标明确
2.目标有难度且可触及
3.实现目标的过程有大量反馈便于调整优化
4.提供犯错和纠错的机会
一个好消息是一旦你成为某一个领域的专家,在别的领域成为专家就会变得容易.至少有现成的知识获取能力和模型构建能力.
保持实践维持并提高水平.
经典理论回顾
自我认知能力
自我认知能力往往在较高的技能层次中才有,正确自我评估的唯一方法就是提高个人的技能层次,这反过来会提高自我认知能力.新手虽然能力差但是信心十足,而专家在情况异常的时候就会变得非常谨慎,专家会更多的自我怀疑.
我们总是难以开始
我们会遇到各种阻力,这种阻力表现形式五花八门:挥之不去的自我怀疑,漫无边际的拖延,各种边缘的问题阻碍你去开始行动.比如技术博客,一旦开始写,就不要停下来,不要为技术问题而分心,先写下来.可能内容杂乱,饮食男女,但是不乏能够改变世界的敏锐领悟和思想雏形.早晨自由书写可以在一个比较轻松的状态把思考的结果记录下来.还有一种方法就是自由写,随时记录你的想法和思考的材料.有了材料随时可以开始,随时可以展开深入.
不需要记住
信任记录而不是记忆,每一次思维的输出都是一次输入.不要把很容易轻易找到的东西放在脑子里面.
如何阅读
相比于任何经验式的学习方法,阅读是效率最低的学习方法.
阅读需要更主动一点,而不是拿起一本书就开始下功夫.SQ3R阅读方法:
Survey 扫描目录和每一章,得出总体看法或者概念 印象
Question 提出记录所有问题
Read 阅读全部内容
Recite 复述 总结做笔记 用自己的话来描述
Review 回顾 重读扩展笔记 讨论
目标
如果你不知道去往何处,那么你必须多加小心,因为你很可能无法到达那里.
随机的方法,没有目标和反馈,往往会导致随机的结果.
目标制定的原则
[1] Specific 具体
[2] Measurable 可度量
[3] Achievable 可实现
[4] Relevant 相关
[5] Time-boxed 时间可控
脑子里面记住你的最终目标,但不要试图把所有的步骤都想明白.只关注下一步,一旦达到下一步,再继续为实现下一个目标而努力.
在实践过程中
从错误中学习的积极心态
平均需要20分钟返回到原来的状态
在信息很容易获取的时候,要注意控制注意力