按照所掌握的技能,程序员大概可以分为几类:
新手--开发领域的初学者,有一些计算机或语言的基本常识,也许接受过号称“专业”的基本的培训。
进阶--跨过了初学者的门槛,开始学会使用不同的角度看问题。逐步学会从迷雾中寻找方向,从混乱中提取规则。但仍然对疑难杂症一筹莫展。开始学会自学,参考文档寻找必要的API,基于之前解决过的问题会总结一些原则。依然缺乏大局观,也未意识到其重要性。
胜任--这一阶段的士兵可以开发并有效利用概念模型来解决领域问题。可以解决自己熟悉的领域的问题,同时也开始会想出一些办法来解决未曾遇到过的问题。同时也容易理解专家给出的专业意见并有效利用。这里要特别说明一点,能否有效利用专业意见也是一项重要技能,你同意吗?此外,他们还会尝试充当团队的指导者帮助其它成员,有一定的主动性并且解决办法比较多。如果你的团队有这样的人,恭喜你!唯一要注意的是,他们解决问题的时候可能会走错方向。
熟手--你知道,要到达这个阶段需要付出很多努力,不过永远不要放弃。熟手希望知道big picture,基于简单的基础理解更大范围内的概念框架。常常自省以改善并不断提高绩效,并通过案例研究、倾听失败的教训、观察等手段持续学习。他们经验非常丰富,包括成功和失败。常常可预见到即将发生的错误,利用所学到的知识有效地应用到当前场景中.事实证明场景是通向专家的关键点.模式是前人智慧结晶,用得好不好也是有学问的,熟手知道在什么情况下使用什么模式,注意收集反馈.如果你身边有这样的人,又要恭喜你了!
专家--专家最常用的一句话是"It depends".他们在相关各领域都有极为丰富的经验,通常会写书,做文,巡回演讲,他们是现代巫师.他们依赖于直觉工作,同时有令人惊叹的直觉.他们的大脑就像一台超级复杂的CPU,面对问题时快速运转,观察,搜索记忆,经验,提炼,分析...得出结论.也许没有很多的解释,甚至解释了你也不明白,但结论往往是对的.这样的天才可遇不可求,别奢望了.
你现在处于哪一级?准备到达哪一级?