程序员的等级以及成长实践

来源:http://www.the5fire.com/programmer-level-and-growing-pracitice.html

这篇依然是《程序员的思维修炼》的笔记, 前面 已经说过这是一本值得精读的书,需要一点一点的消化,吸收。就像书里讲的一样。

文章标题是《程序员的等级以及成长实践》,这里的等级其实是说书中介绍的德雷福斯模型的五个阶段。相比于之前经常说的程序员的三个境界:手中有剑,心中无剑;手中无剑,心中有剑;手中无剑,心中也无剑。这个模型更为具体且易于实践一些,在之后的学习工作中可以拿来参考。

德雷福斯模型五阶段

  • 新手
  • 高级新手
  • 胜任者
  • 精通者
  • 专家

这五个阶段看字面意思可以很好的明白,所谓 新手 就是指刚入门的同学,对要做的东西,和要用的东西没有太多的概念。一个很实际的例子就是刚开始学后端开发的前端程序员,对于服务器端的东西没有太多的概念,该如何入手做服务端项目毫无头绪,该从哪里开始学起也没有头绪。这就是新手,需要有人给出个1、2、3,然后才能走下去,不然就是在迷茫中纠结,在纠结中退缩。这里说有人给出1、2、3来,不是一定是现实中的人,也可以是网上的帖子,或者一篇blog。自己找食吃对新手来说尤其重要,这意味着以后的消化能力怎么样。

所谓 高级新手 ,是指已经入了门的同学,他知道门里都有些什么东西。因此当他遇到技术问题的时候,能够去寻找解决的方法,找到一个方法之后会立马开始干,而不会去思考这个方案是怎么回事。一个很实际的例子就是,经常有人在群里问,说我要完成读写文件的操作或者说发送邮件的功能,我看了有这个函数/接口,怎么始终不能成功呢。这个问题的本质在于他只是看到了有这么个api,然后就开始写代码尝试,而没有去理解这个api具体怎么做的,比如前置条件,后置条件,效率等。

这个阶段的同学迫切于解决眼前的问题,而不会深入理解解决方案和优劣。遇到问题,然后沉下心来思考,探索方案的可行性,而不是通过尝试的结果来观察,应该是这个阶段的同学需要考虑的。另外跳出当前面对的技术问题,从宏观的角度来看整个项目也是应该去做并且实践的。

所谓 胜任者 ,是指能够独挡一面的同学,这类人能够独立解决问题,有足够的主动性,能够基于过去的经验来解决以前遇到过的以及没有遇到过的问题。胜任者能够建立问题域的概念模型(书上原话,我猜意思是对过往的问题进行分类整理),并且有效的运行它来解决新的问题。

再说 精通者 ,有足够丰富的经验,并且能快速的学习别人的经验,同时在工作中能够不断的进行自我矫正。对于项目有着更好的把握,知道什么情况下可能出问题,能够有效的预见到风险点。

最后是 专家 ,作为最顶级的存在,专家做事往往是凭直觉的,这些直觉来自于对自己从业多年项目经验、处理问题和风险的经验总结。直觉无法转化为有效的指导规则,没有固定的场景和方案。这类人往往被称作布道师,对各个领域的知识和信息非常了解,是各领域知识和信息的来源。

写完了这个五个模型,思考一些自己平时的工作,你处于什么样的一个阶段呢?我自己觉得我还是处在一只手吊在 胜任者 的路上,还有很长的路要走。从十年成就一个专家的理论来看,要想成为专家是需要在对应领域坚持实践十年的,但光是坚持是没用的,低水平的重复一百年也不能升级到专家。书中总结道,绝大多数的人始终无法超于 高级新手 这一阶段。怎么突破这一状态呢,下面接着总结下书中提到的从新手到专家的实践。

成长实践--新手到专家

书中有一个提示很重要,那就是——没有实践就没有技能。针对任何一个行业都有效。因此积极的实践尤其重要,那怎么样的实践算是积极的实践呢?书中有提到一些方法:

1. 一个明确定义的任务
2. 任务有难度但可行
3. 任务环境能够提供大量的反馈,以便采取行动
4. 提供重复犯错和纠正错误的机会

无论是从哪个阶段升级到哪个阶段,上面的这些步骤都不可省略,说白了就是不断的超越自己。但问题在于大多数人都不知道自己处在什么位置,怎么超越。因此观察和思考就变得尤其重要:观察自己身边的人,尤其是那些自己觉得是大神的人;思考自己正在做的项目或者已经完成的项目,觉得那些地方又不爽的或者不太好的,再次寻找最佳方案。

书中给出小号手的经验:模仿、吸收、创新。针对于有参照物的情况下,这是最佳的方案,但是在没有参照物的情况下,如何不断提升就需要思考了。或者更加实际一些就是在模仿的同时要思考,思考自己的行为和大神的有何不同,然后总结出来,吸收转化为自己的,而不是一味模仿。

成长的实践虽然看起来简单,就像“每天进步一点点”这个口号一样,但是坚持一年、两年甚至十年,有谁能轻松做到呢?

posted @ 2013-11-29 18:41  Martin2  阅读(249)  评论(0编辑  收藏  举报