#新年觉醒Day2#《程序员的思维修炼》:德雷福斯模型

作者写有另外一本书:程序员的修炼之道,副标题是:从小工到专家( From Journeyman to Master)。书中给出了方方面面的建议,涉及到的领域知识较多,在先前的职业生涯里,给我不少启发。而在《程序员的思维修炼》一书第二章中,从另一角度对“从小工到专家”这一成长过程加以剖析,并且是可参考的例子。

什么是新手,什么是专家?

新手需要规则,而专家使用直觉。

如同练剑,新手必须依赖明确的指引,一招一式不可错差分毫;而专家,如同巫师一般,草木皆可为兵,挥洒自如,行云流水。从新手到专家,并非一蹴而就,而是中间经历了多个阶段。

新手跟专家的区别,不仅在于做事的成果,事实上,他们看待世界,解决问题的角度都是有根本不同的。如果从脑科学的角度看,应该说,在特定领域,专家跟新手之间,是用完全不同的大脑皮层在感知和解决问题。

专家能够更自然的获知,哪些细节是可以忽略,而哪些细节是必须重视的。新手很大的困难在于无法对自身的行为作出衡量,处于新手阶段的他们,只能够根据外在的反馈来知晓自己是对是错,因此,新手需要更多的指引,更多的规则。相反,对专家施以规则的限制,哪怕规则是他们自己制定的,都会严重降低他们的表现水平。

德雷福斯模型的五个阶段

  1. 无经验的新手。
    作者定义经验:通过实施这项技术,促进了思维的改变。并举例到,“可能一个开发人员声称拥有十年的经验,但实际上可能是一年的经验重复了九次,那么这就不算是经验”。颇有警醒之处。

对于无经验的新手,需要更多的情境无关的规则指南。当然,规则只能帮你迈出第一步,接下来的,才是征途满满。

  1. 高级新手
    这个阶段,人们根据过去的经验,快速获取信息,但是只见一木,难见森林。处于高级新手阶段的人,对全局状况并不感冒,他们更多关注局部的细节。
    多数人在多数领域,实际上是处于高级新手的阶段。刚刚因为熟悉而摆脱了一点规则的束缚,但是远远还没有到可以行动自如的境地。

  2. 胜任者
    通过实践,高级新手会走向下一个阶段,即胜任者。他们可以开始独立解决问题,构建特定领域的概念体系,并能够通过计划,取得不少成效。他们可以利用专家的意见以及研究的成果,促进自己目标的达成。但是,处于这个阶段的人,对于自身的反思跟纠正仍然是不足的,仍然需要继续的实践跟积累。

  3. 精通者
    这个阶段的人们,会更加清醒认识到自己所遇到的问题,并能够进行自省,知晓过去的作为有哪些是不当的,并进而作出修正。他们从别人的经验之中学习,更能够将自身代入到问题场景之中,不比亲自经历,就可以得到别人的智慧。

这不由得让我想起现在我所处的团队遇到的问题。在电商行业,有个问题是永远避不开的:库存。在2015年夏季的时候,虽然我们知道很多团队因为积压了太多的库存导致无法正常经营而破产,但是,我们仍然只是知道而已,并没有从中得到足够的教训,差一点就重蹈覆辙。按照德雷福斯模型来做分析,实际上我们所处的阶段还太低,人类的感知能力中,会特别清晰的区分他人 跟自我,别人的案例,对我们这样的新兵蛋子来说,只是听过,知晓,但还不足以供我们决策时参考。今天刚刚又清理了一堆先前遗留的库存,读到上面这部分,不由得感慨万千。

模型并不完美,但是存在的最大好处,在于可以作为分析框架,知晓自己所处的位置。而今知道仍然不过是处于最多算是高级新手的阶段, 不必多废话,继续实践,继续进化就好。

精通者更能够触类旁通。对于不同场景的熟悉,使得他们对自身的评判更加客观,观察别人的时候,也能够捕获到关键的细节所在。通过思考和反馈,精通者更能理解场景。

“曾经有一位开发人员刚看了GoF的书,并热情的想开始使用设计模式...... 他设法把23个设计模式中的17个用在他那段不幸的代码片段里,终于被人发现”

  1. 专家

专家依据直觉工作,并且虽然 他们也会犯错,但是往往,他们是对的。
依据直觉工作,没有什么稀奇,关键在于,他们的直觉如何才能是可靠的。

书中的后续章节会对直觉这一主题进行更深入的探讨。这也是我一直感兴趣的一个话题,如何能够形成可信赖 直觉?

专家依赖场景。通过多年的实践,实现了两个系统之间的转换。对于新手而言需要用到分析推理能力的场景,专家的表现甚至是可以用肌肉记忆来完成的, 比如在钢琴演奏领域。经过多年的实践跟练习,解决相应场景问题的方案,已经内化到他们的神经系统里面,而可以不假思索的作出反应。

同时,专家对于自己的局限跟表现是有所自觉的,他们能够“知道自己不知道”,并且准确的作出自我评估。他们看待问题的方式是整体的。同样的问题,他们看到更多的联系。在某些时刻,专家甚至会比新手更加谨慎,更多地自我怀疑,而不自知的新手,则表现的更加信心满满。作者称之为:二阶不胜任----不知道自己不知道多少。想起苏格拉底所说:神的意图是,我的智慧之处,在于我知晓自己一无所知,因为别人连这一点都不知道。

知之为知之,不知为不知。知其不知,是为知也。

这个模型将会怎么指引我的成长之路呢?

刻意练习

生命短暂,而求知之路漫漫。
在开始自学编程之前,我反反复复读了几遍的一篇文章,叫做:How to teach yourself programming in ten years time,如何用十年时间自学编程。 作者问道:为何人们总是匆匆忙忙?市面上充斥着大把书籍,三天学会C语言,十天学会Ruby,二十天精通MySQL,却不知道,如果要真正的精通一门技艺,通常需要十年的刻意练习才能达到。

Dr Anderson Ecicsson对不同领域的专家级表现进行了研究发现,几乎在任何一个领域,要想成为世界级的专家都需要长达十年时间的努力。还有一个可能更为人知的时间:一万个小时。从新手到专家,需要一万个小时的刻意练习的时间。

勤奋,重复工作,是不够的。你需要积极的实践,即,刻意练习。主要有四个方面:

  • 任务的定义需要明确。
  • 任务难度需要有挑战性,但是可行,刚好落在你的练习区。
  • 任务环境是可以提供大量的反馈的,便于改正。
  • 提供重复犯错跟纠正错误的机会。

如此,稳步进行这种实践10年,就可以达成专家级的表现了。写到这里,不由得怀念做程序员的那些生涯了。

你可能感兴趣的:(#新年觉醒Day2#《程序员的思维修炼》:德雷福斯模型)