第一阶梯:Typer,打字员
每一位开发者在正式踏上开发道路之前,都需要经过毫无编程经验的“第一阶段”。
这时他们对于程序的理解仅限于照着书本或记忆进行有规律的字符录入,甚至不清楚自己所输入的字符代表什么指令,因此每当错误出现时常常显得手足无措,怀疑软件、怀疑系统,甚至开始怀疑人生,到头来却发现只是少输入了个分号。
该阶段虽然看起来简单,但确实也是最容易将门外汉拦在开发者殿堂之外的门槛。
对于位于该层的小白而言,切记不要迷恋《30天从入门到精通》等武林秘籍,对没有入门的人来说很容易变成《两周从入门到放弃》。其实也并非没有入门捷径,找个真人师傅带进门就好了。
第二阶梯:Developer,开发工程师
作为拥有0-3年编程经验的第二层,可以正式的称呼自己为“编码菜鸟”了。
这时的他们对编程概念已经有了初步的理解,知道了变量、逻辑与函数的意义。同时也可以熟练的使用CV大法(Control+C、Control+V)来模仿前辈的案例或网络实例进行功能实现了,但也仅仅只能实现需求逻辑而已。同时因为并不理解这段代码的真实含义,所以实现的这坨代码通常让人头痛不已,是BUG的高发地。
对于位于该层的菜鸟而言,切记不要迷恋《Thinking In XX》系列的书刊,最好的修炼方式还是多阅读开源工程代码,多参与项目实践,完成一个由量到质的蜕变,从而进入下一个等级。
第三阶梯:Research&Developer(R&D) ,研发工程师
作为拥有3-5年编程经验的中间层,进入该层的“攻城狮”们已经开始被委以重任,负责攻城拔寨,调研新型武器,属于团队里面的攻坚小能手、小白与菜鸟所仰望的大牛了。
与此同时,这一层级也是所有层级里面最危险、最容易迷失的一层,其危险在于因为沉迷于舒适区与盲目自信而停滞不前,最终因精力的衰退而被小鲜肉所替代;其迷失在于仅善于解决项目中曾负责或以前接触过的某一块的问题,对于系统架构欠缺整体的意识,不具备建立一个全新系统的能力。
对位于该层的“攻城狮”们而言,切记不要沉迷于代码的表面,也不要局限于API或源码库的收集,最好的修炼方式是不断地思考与锤炼自身对最佳实践方式的理解感悟,从而为进入下一阶段打下坚实的基础。
第四阶梯:Architect,架构师
作为拥有5-8年编程经验的开发者顶层,进入该层的大师们对于某一领域的系统研究已经“摸得门清”,通常他们是使系统“拔地而起”、“耸入云霄”的设计师。
他们更喜欢形容自己为“艺术家”而不是架构师,他们即使喝上一斤“关公坊+酸梅汤”都能准确的给你画出其设计过的系统架构图、功能结构图、数据库模型,并能基于系统实际使用情况进行基于架构的系统结构优化、性能优化等。
进入此阶段的工程师已经脱离了对招式的执念,步入了对于设计与编程之道的艺术修行道路。
第五阶梯:Consultant,咨询师
咨询师是一个特殊的存在,如果说架构师是追求于设计之道与艺术之道的苦行僧,那咨询师就是这条道路上的布道家。
他们一般有着广阔的见识与丰富的实战经验,也许他并未开发过多么经典的架构,但经过短暂的观察即可指出对于当前架构的优化意见;也许他并不能写出多么高深复杂的源码,但通常可以用最简单的办法解决技术上的难题;也许它并不了解你所遇问题的业务背景与专业技术,但可以通过跨领域知识启迪你解决问题。
上文的阶梯划分出自我过往八年的工作经验,对于第四、第五阶梯,我本无意划出高下之分,怎奈文笔功力有限,只好粗断为两个部分。回顾前文,我对于开发者的阶段划分又有了新的想法,开发者在历经以上五个层级之后又该如何发展,是科学家还是哲学家?我想听听你的见解。
本文来自开源中国社区 [http://www.oschina.net]