我总结了一下,学习编程,开发软件,大抵分如下 12 个阶段:
看书,看视频,看博客,听课等等
对着书敲代码
脱离书自己敲代码
自己实现一些小DEMO
进项目看代码
在别人指点下写代码
自己独立在别人搭建好的框架内填写代码
自己独立负责别人设计好的模块的实现
自己独立负责一个软件模块的设计和实现
负责较大的软件模块,拆分模块,分子任务给他人
负责一个小项目,设计,拆分,分派任务
做较大的软件系统的架构设计(架构师),或专注特定领域,解决疑难杂症
你在哪个阶段呢?欢迎留言讨论。
这12个阶段,是我自己总结的。实际上,有一个知名的德雷福斯模型,描述了专业技能的成长阶段。
德雷福斯模型在Andy Hunt的《程序员思维修炼》一书中有讲到。德雷福斯模型将技术人才的成长分为五个阶段,简要介绍下。
阶段一:新手 ,< 10%
新手在该领域很少或根本没有经验
新手非常在乎他们能否成功。没有太多经验指导他们,不知道自己的行为是对是错
如果给新手提供与情景无关的规则去参照,他们就会变得能干起来
阶段二:高级新手 ,55~60%
他们可以独自尝试任务,但仍难以解决问题
他们想要快速获取信息。他们不想在此刻寻根究底或重新温习一遍基础知识
能够根据过去的经验,逐步在正确的情景中采纳建议,但比较吃力
他们没有全面的理解,而且的确不想有
阶段三:胜任者 , 15%左右
能够建立问题域的概念模型,并有效的使用他们 开始寻求和运用专家的意见,并有效利用 这一水平的人通常被认为“有主动性”和“足智多谋” 既可以指导新手,也不会经常骚扰专家
阶段四:精通者 ,10%左右
需要全局思维。他们将围绕这个技术,寻找并想了解更大的概念框架
他们能够纠正以往不好的工作表现,自我改进开始出现
他们会学习别人的经验
拥有理解和运用各样经验之谈的能力。这些经验之谈,是可以应用于当前情景的基本原理
有足够的经验,知道下一步会发生什么,如果没有发生又需要改变什么
可以有效的运用软件模式
可以充分利用思考和反馈
阶段五:专家 , 2 ~ 5%
他们有丰富的经验,可以在恰当的情景中选取和应用这些经验
专家根据直觉工作,而不需要理由
专家知道哪些是无关紧要的细节,哪些是非常重要的细节
新手:1 ~ 6
高级新手:7 ~ 8
胜任者:9
精通者:10 ~ 11
专家:12
如果我们想一直走技术路线,那德雷福斯模型和我总结的12个阶段,是很有价值的参考。努力成为少数的20%吧!
如果还想在职场有技术之外的发展,可能要参考——软件架构师的金字塔能力模型——了:
这个模型来自《软件架构师的12项修炼》,不过,像关系技能、个人技能和商务技能,并不是软件架构师的专享,任何想要更好发展的人,都应该修炼。
是不是感到修炼的路很长?
别怕,这条路,是可以一步一步走过来的,最重要的,是要有方法,要持续行动。所以,现在开始,好好利用自己的时间吧!