热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

德雷福斯技能获取模型与自我定位

在程序员社区中,大家喜欢以“菜鸟”、“大虾”相称,言语间已经定位了彼此的“功力等级”。不过,这些都是一些比较模糊的定义,没有严谨的标准来帮助开发人员们衡量自己的能力水平。为了解决这个难题,引入了技能评估体系德雷福斯模型,把能力水平分为新手、高级新手、胜任者、精通者、专家等5个层次,每一阶段都有相应的判断标准,而且研究表

在程序员社区中,大家喜欢以“菜鸟”、“大虾”相称,言语间已经定位了彼此的“功力等级”。不过,这些都是一些比较模糊的定义,没有严谨的标准来帮助开发人员们衡量自己的能力水平。为了解决这个难题,引入了技能评估体系德雷福斯模型,把能力水平分为新手、高级新手、胜任者、精通者、专家等5个层次,每一阶段都有相应的判断标准,而且研究表明:“大多数人都是高级新手”!这些内容会帮助开发人员更好地评估和反省自身能力,有助于进一步提高。

新手

  • 新手在该领域很少或根本没有经验
  • 新手非常在乎他们能否成功。没有太多经验指导他们,不知道自己的行为是对是错
  • 如果给新手提供与情景无关的规则去参照,他们就会变得能干起来

新手是每个开始学习任何技能的人一开始的阶段,包括未入门的接近外行水平的人。这一阶段的人,经验很少或者根本就没有,而所谓的经验,指的是,通过实践这项技术促进了思维的改变。明白到这点是很重要的,因为很多人以为,经验就是指资历(单纯时间而言),其实并不是这样,就好像,一个软件开发人员号称他有十年的经验,但其实每天都在重复做一件事,并没有任何改进,而且自己本身对于自己的职业也没有进一步的认识,那么,这样的经验就算是100年,其实也就相当于别人的1年。别说什么煤油翁的故事,很抱歉,像是软件开发这领域,技术的更新是很快的,甚至在我写这篇文章的时候,在外国某个实验室里可能就已经有新的东西,像是语言或者其他东西出来了,只是我们没有用到而已(尤其是中国这边,技术的更新与外面脱节很多)。当然,很多人对于这个“促进思维的改变”很好奇,什么是“促进思维的改变”?所谓的思维的改变,就好像你从面向过程的编程向面向对象编程这方面转变,那么,你的思维一定会发生转变,因为你的思维相比以前,已经向更高的抽象这方面发展,要是进一步学习动态语言,就更是如此。所谓,思维的转变一定会发生的,因为这是你在实践中所体会到的,所领悟到的,甚至是别人从没有发现过的新的用法。

说了那么多有关于经验的介绍,那么,什么是新手呢?如何定义一个新手,其实很简单,就是新手面对问题的态度。是的,这是非常简单的判断方法,因为 经验的差距,使得新手在面对问题,尤其是突发问题的表现,明显是与在新手上面更高的层次是有区别的。那么,新手在面对问题的时候,会怎么做呢?就是举手无措!是的,新手害怕面对问题,因为他们不认为自己能够解决问题,以为自己的能力不足,所以,不敢主动去解决问题,更多是向更高层次的人求助(好吧,我之前就是这样,在一个陌生的领域遇到一个问题,结果自己就慌了,因为自己根本就不知道怎么办,就算找到问题的症结所在,但是还是不知道要怎么办)。不仅是这样,新手更喜欢指令性的命令,什么是指令性的命令呢?想想当我们开始煮菜的时候,跟着菜谱学做菜的时候,我们是不是严格按照菜谱上一条一条执行的呢?像是该加多少面粉啊,改在什么时候加多少水啊,或者该用多少温度加温多久啊。。。等等,但是一旦最后煮出来的菜并不是菜谱上的那个样子和味道,我们就会慌了,怎么回事?我明明跟着菜谱上的指令严格来做的啊?如果是新手以上的级别,是可以找出问题的,甚至在一开始就已经发现问题,像是专家,就已经一开始就在不知不觉中将问题解决了(是的,不知不觉,因为他们很少会犯低级错误,甚至这种特性已经是他们潜意识中就已经在避免的)。但是新手不行啊,他们需要明确的解决问题的指令,像是看看煤气有没有开这个脑残的提示他们也会去做的,因为这时他们已经失去了思考,完全交给了所谓的权威。

新手还非常在乎成功,他们非常渴求能够马上将当前的目标完成。这个症结之所以存在,也是因为他们缺乏经验,因为 他们害怕面对问题,而快速成功意味着不用遇到太多甚至是没有问题。他们从没有想过这个方法到底对还是错,只是想要知道这个方法能否成功而已,而我们知道,在软件开发这方面,方法能够奏效并不代表这个方法就是适合的。

所以,新手就是无法根据当前发生问题的根点思考出问题的症结所在,并进而想出解决问题的方法出来。他们之所以会表现出这样的行为,就是因为他们的经验太少或者无法根据当前的情境将问题转化为自己以前解决过的问题类型,因为他们缺乏抽象的能力,就是将问题抽象成一个模型,然后,在遇到类似的问题时能够马上反应过来。是的,这个能力实在是太过了,因为真的很难,但是新手以上的级别就能做到,因为他们已经通过自己大量实践将这个能力掌握了,在每次解决问题的时候都会将这个问题的症结和解决方法记录进自己的“数据库”里,然后根据情境进行匹配。所以,要想摆脱新手这个级别,关键还是多实践,多思考,多总结,这样就能通过积累而发生质的变化。

高级新手

  • 他们可以独自尝试任务,但仍难以解决问题
  • 他们想要快速获取信息。他们不想在此刻寻根究底或重新温习一遍基础知识
  • 能够根据过去的经验,逐步在正确的情景中采纳建议,但比较吃力
  • 他们没有全面的理解,而且的确不想有

高级新手就是比新手更上的一个层次,这个层次已经具有一定的经验,并且自我解决问题的能力已经得到大幅提升,具有初步的情境匹配的能力。但是,高级新手之所以还有“新手”这两个字,就是因为他们对于情境的处理能力还是不足的。高级新手已经能够单独解决任务了,是的,他们已经不需要像新手那样战战兢兢的,他们在遇到问题的时候,能够根据自己过去的经验寻找解决问题的方法,这时的他们就会表现出一个很明显区别于新手的特点:就是他们不像新手那样,会将文档从头看到尾,他们是会选择快速的查找相关的方法,因为他们知道,解决这个问题只需要这个方法就行,但是从来不会去追根刨底,为什么是这个方法。但是,解决问题的基础依然是当前的问题与自己过去解决过的实在太相似了,如果是表面毫不相关的问题,那么,他们依然还会陷入迷茫中。这是因为他们提出情境的能力仍旧存在问题,因此只能记住具体的问题类型而没有发现到问题之间的相同点,进而用相同的方解决。而且,他们还看不到情境的延伸,是的,一个情境是会延伸的,如果它与实际的问题连在一块,那么,你就会发现,一个情境的背后是无数小情境,解决大的情境是很难的,但是解决一个小情境还是很简单的,这就是一般解决大情境的方法。但是高级新手是不会看到的,就像我们经常遇到的,我们无法将一个庞大的问题肢解,我们需要更高层次的人来为我们肢解,然后告诉我们先解决哪一个。

胜任者

  • 能够建立问题域的概念模型,并有效的使用他们
  • 开始寻求和运用专家的意见,并有效利用
  • 这一水平的人通常被认为“有主动性”和“足智多谋”
  • 既可以指导新手,也不会经常骚扰专家

要达到胜任者,还是需要很大的努力,因为胜任者在团队中担当的任务非常大,甚至可以说是团队的核心。胜任者的具体表现是什么呢?胜任者不仅能够解决问题,还能发现新的问题,是的,他们能够从目前的问题的解决中发现新的问题并且将它切实的解决掉。这种能力是因为他们过去强大的经验所致,他们知道,这样的问题用这样的方法,会有什么副作用,而我们又要怎样来解决这个副作用。他们在遇到问题的时候能够将问题层层肢解并且针对每个部分提出相应的解决计划,;所以,之所以说他们是团队的核心,就是因为一个团队的方案啊,计划啊,基本上都是由他们提出的(很多人会问,更上面的人呢?这是后面要讲的,因为你要知道,一个团队大部分情况下,是不需要胜任者以上的级别的)。但是,这时的胜任者就是一个中转点,因为他们能够与更上面的人沟通,又能统帅下面的新手们,所以,这种人一般都是领导者级别的。但是,胜任者在情境上的处理液并不是很成熟,他们只是因为处理过的经验的积累以及严谨的思考使得他们能够解决任何复杂的问题,但是他们还是不能关注一些情境的细节,甚至是选择忽略,如果说忽略这个细节也能解决问题而且还不会发生什么不好的副作用,他们是会忽略的。

精通者

  • 需要全局思维。他们将围绕这个技术,寻找并想了解更大的概念框架
  • 他们能够纠正以往不好的工作表现,自我改进开始出现
  • 他们会学习别人的经验
  • 拥有理解和运用格言经验之谈的能力。这些经验之谈,是可以应用于当前情景的基本原理
  • 有足够的经验,知道下一步会发生什么,如果没有发生又需要改变什么
  • 可以有效的运用软件模式
  • 可以充分利用思考和反馈

精通者的一个明显的问题就是他们对于他们所处的技术领域具有全局思维,他们围绕着自己的技术领域,积极寻找更大的概念框架,他们更喜欢从他人身上学习,就算只是听别人讲自己的失败经验,他们也能够从中受益,因为他们已经能够充分理解情境了。他们明白当前的情境是怎样的,情境的细节他们也能把握,甚至在解决问题的时候就已经将这个细节包含进去。他们能够运用计算机的所谓的格言经验(所谓的格言经验,就是我们在学习的时候经常会在一些大师的作品中看到的,一些类似于聊家常的经验,如:“测试一起可能出错的东西”,但是对于新手,他根本就不知道要测试什么),因为他们知道,这样的格言适合什么的情境,因为他们对情境的理解非常充分。他们也能充分运用任何当前技术的任何复杂的技术比如说,新手的杀手,设计模式,一旦用不好就会出现问题,就算用了,也会存在有没有必要的问题,但是精通者就能运用自如,因为他非常清楚自己的问题所处的情境到底是怎样的。精通者还有一个更重要的特点,这个特点也是精通者能够成为专家的关键,就是他们能够通过有效的反馈和思考来不断调整自己或者不断进步。反馈和思考是非常重要的,这是掌握任何技能所必须的能力。

专家

  • 他们有丰富的经验,可以在恰当的情景中选取和应用这些经验
  • 专家根据直接工作,而不需要理由
  • 专家知道哪些是无关紧要的细节,哪些是非常重要的细节

专家就真的是各个行业的魔法师或者规则的制定者。他们永远都在寻找更好的解决方法,就算是一个小问题,他们也在努力研究怎样更加优美的解决。当然,这样自然是不用说的,因为他们已经是这个行业的最高者,自然必须拥有这个能力。但是,判断一个人是否是专家,还得靠他是怎样解决问题的。专家解决问题更多是根据他们的直觉,是的,就是他们的直觉,他们会觉得,这里会存在问题,而且这样做就能姐解决,但是你问他为什么会想到,他可能就想不到答案,因为这就好像是一看到这个问题就知道问题的答案一样,就好像你一说出来的就是家乡的方言一样,如果问你,为什么会说方言,你能答得出来。这就是一个完全内化的阶段,他们将所有情境解决这个情境的方法完全内化了,并不是看到情境就想到方法,而是情境本来就和方法连在一块,就像我们解数学题一样,问题本身就是答案。所以,成为专家的关键,就是锻炼自己的直觉,将情境和解决情境的办法连在一块。这可是一个非常漫长的过程,当然,如果你真的非常有天赋,那就另当别论,所以,我们还是要老老实实从新手开始积累实践经验吧。

本文地址:http://www.nowamagic.net/librarys/veda/detail/2246,欢迎访问原出处。


推荐阅读
author-avatar
漫步乡间2012
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有