淘先锋技术网

首页 1 2 3 4 5 6 7

这几天闲着无聊,在实验室看起了Andy Hunt的《程序员的思维修炼:开发认知潜能的九堂课》,讲这本书之前我觉得有必要先讲讲本书的作者。

    Andy Hunt,敏捷开发权威人士,敏捷宣言首倡者之一,著名IT图书出版公司Pragmatic Programmers创始人。除本书外,他还与人合著有多本获奖图书,深受读者欢迎,包括《高效程序员的45个习惯——敏捷开发修炼之道》,《程序员修炼之道——从小工到专家》等。

    从简介中可以看出作者是敏捷开发的领军人物,上面介绍的两本书,我想学习软件工程或是研究敏捷开发的人士想必都知道吧。不说了,开始讲讲第一二章所学到的内容了。

    随着社会各个相关团体的复杂交互影响和社会的持续变化,有两项技能应是当前最重要的:

1.沟通能力。

2.学习和思考的能力。

    软件行业正在逐步提高沟通能力。特别是敏捷开发[1],强调了团队成员之间、最终客户和开发团队之间的沟通交流。现在越来越多的人也意识到简单、有效

的沟通非常的重要。相比之下,提高学习和思考能力要更难一些。

    程序员需要不断地学习——不仅仅是学习新技术,还包括应用的问题域、用户社区的奇思妙想、同事的古怪习惯、行业的八卦新闻和项目演进的重要特征,我们必须学习学习再学习,持续不断地学习,然后把学习成果应用到解决日常遇到的一切新旧问题上。也许,这些听起来都相当的容易,但是学习能力、批判性的思考能力和创造力——所有这些扩展思维的能力,都取决于你自己。没有人教你这些东西,你必须学习。我们往往错误地看待老师和学生的关系:不光是老师在教,学生也要在学。学习完全取决于你自己。

    人们不断的学习学习,都希望自己能成为专家,技能获取邻域的德雷福斯模型是研究如何超越新手层次、如何不断精通技术的有效方法。我们将在下面的内容中探讨德雷福斯模型,并特别关注成为一名专家的关键要素:应用你自己的实践经验、理解情境和利用直觉。

    在德雷福斯模型中,从新手到专家要经历五个阶段(1.新手,2.高级新手,3.胜任者,4.精通者,5.专家)。

    阶段1:新手

    有定义可知,新手在该项技能邻域经验很少或者根本没有经验。这里提到的经验,指的是通过实施这项技术促进了思维的改变。举个反例,可能一个开发人员声称拥有十年的经验,但实际上只是一年的经验重复了九次,那么这就不算是经验。

    新手非常在乎他们能否成功。没有太多经验指导他们,他们不知道自己的行为是对是错。新手不是特别想要学习,他们只是想实现一个立竿见影的目标。他们不知道如何应付错误,所以出错的时候,他们非常容易慌乱。但是,如果给新手提供与情境(新手与专家的重要区别)无关的规则参照,他们就会变得能干起来。也就是说,需要这种形式的规则:“当X发生时,执行Y。”换言之,需要一份详细的指令清单。新手所面临的问题是,对于某种情境,不知道哪条规则是最相关的。当一些意想不到的事情发生时,他们就会不知所措。

    阶段2:高级新手

    一旦经过新手的历练,人们开始以高级新手的角度看待问题。高级新手能够开始多多少少地摆脱固定的规则。他们就可以独自尝试任务,但仍难以解决问题。他们想要快速获取信息,他们不想某个问题上寻根究底,或者重新温习一遍基础知识。

    阶段3:胜任者

    在第三阶段,从业者现在能够建立问题域的概念模型,并有效地使用它们。他们可以独立解决自己遇到的问题,并开始考虑如何解决新的问题——那些他们之前没遇到的问题。他们开始寻求和运用专家的意见,并有效利用。与更高水平者追随下意识不同,胜任者会探寻和解决问题,他们的工作更多是基于谨慎的计划和过去的经验。如果没有更多的经验,在解决问题时,他们将难以确定关注哪些细节。

    阶段4:精通者

    精通水平的从业者需要全局思维。他们将围绕这个技术,寻找并想了解更大的概念框架。对于过于简单化的信息,他们会非常的沮丧。在德雷福斯模型中,处于精通水平的从业人员有一项重大的突破:他们能够纠正以往不好的工作表现。他们会反思以前是如何做的,并修改其做法,期望下一次表现得更好。到了这一阶段,自我改进才会出现。同时,他们会学习他人的经验。作为精通者,他能够阅读案例研究,倾听有关失败项目的流言蜚语,观察别人怎么做,从故事中认真学习,即使他们没有亲自参与。

    阶段5:专家

    专家是各个邻域知识和信息的主要来源。他们总是不断地寻找更好的方法和方式做事。他们有丰富的经验,可以在恰当的情境中选取和应用这些经验。他们著书、写文章、做巡回演讲。专家知道哪些是无关紧要的细节,哪些是非常重要的细节。也许不是有意识的,但是专家知道应该关注哪些细节,可以放心地忽略哪些细节。专家非常擅长做有针对性的特征匹配。

   从新手到专家的过程涉及的不仅仅是规则和直觉。在你提升技能水平的过程中,有许多方面会发生改变(可见下图)。最重要的三个变化是:

    1.从依赖规则向依赖直觉转变。

    2.观念的改变,问题已不再是一个相关度等同的所有单元的集合体,而是一个完整和独特的整体,其中只有某些单元是相关的。

    3.最后,从问题的旁观者转变为问题涉及的系统本身的一部分。

                                                                                      image

    可悲的是,研究似乎表明,大多数人的大多数技能,在他们生命的大多数时间里,从来没有高于第二阶段高级新手,“执行他们需要做的任务并根据需求学习新任务,但是从来没有对任务环境获得更广泛的,概念上的理解。”

    此外,元认知能力,或者自我认知的能力,往往在较高的技能层次中才会具有。不幸的是,这意味着处于较低技能层次的从业者会明显高估他们自己的能力——有研究表明高出50%。正确自我评估的唯一办法就是提高个人技能层次,这反过来又会提高元认知能力。你可以把这种现象称为二阶不胜任:不知道自己不知道多少。新手尽管能力差但是信心十足,而专家在情况异常时会变得愈发谨慎。专家会更多的自我怀疑。

    那么,你想成为专家吗?你需要大约投入大约十年的努力,不论哪个邻域。研究人员已经研究了下棋、音乐作曲、绘画、钢琴演奏、游泳、网球和其他技能。几乎在每种情况下,从莫扎特到甲壳虫乐队,你会明显发现在成为世界级的专家之前至少需要十年的辛勤工作。而且需要辛勤工作——只是在某个邻域工作十年是不够的。你需要实践,积极实践需要四个条件。

    1.需要一个明确定义的任务。

    2.任务需要有适当难度——有挑战性但可行。

    3.任务环境可以提供大量反馈,以便于你采取行动。

    4.提供犯错误和纠正错误的机会。

    但是,有一些好消息。一旦你成了某个邻域的专家,在别的邻域成为专家就会变得更容易。至少你已经有了现成的获取知识的技能和模型构建的能力。

    从德雷福斯模型学到的最重要的收获之一就是,认识到新手需要与情境无关的规则,而专家使用与情境相关的直觉。在系统思维中,如面向对象的编程,往往是事物之间的联系最让人感兴趣,而不是事物的本身。这些联系有助于形成情境,而正是情境让这些事物各不相同。在日常的德雷福斯模型的应用中,首先,请记住,无论是对你自己或对他人,一种规则并非处处适用。正如从模型中看到的,你的需求取决于你所处的技能水平。随着时间推移,你的个人学习和成长所需的东西会改变。新手需要快速成功和情境无关的规则。你无法指望他们能独自处理新的情况。

    所学习到的诀窍:

    1.始终关注情境。

    2.新手使用规则,专家使用直觉。

    3.知道你不知道什么。

    4.人们往往是通过观察和模仿来学习的,实时上,如果你有孩子,你可能已经注意到他们很少照你所说的去做,却总是模仿你的所作所为。

    5.对于形式模型的过度依赖往往会鼓励羊群行为[2]而贬低个人创造力。

[1]敏捷方法:敏捷方法在很多重要的方面都与传统的基于计划的方法不同,最显著的就是摆脱了死板的规则,丢弃了陈旧的日程表,注重实时的反馈。在本书中会经常提到敏捷方法,因为很多敏捷思想和实践都是与良好的认知习惯相融合。

[2]羊群行为:也称“羊群效应”或“从众心理”,指人们具有与他人保持一致,和他人做相同事情的本性。

转载于:https://www.cnblogs.com/shuanghong/archive/2011/07/13/2105302.html