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