开发者技能修炼的5个等级,你冲关到哪儿了?

第一阶梯:Typer,打字员

每一位开发者在正式踏上开发道路之前,都需要经过毫无编程经验的“第一阶段”。

这时他们对于程序的理解仅限于照着书本或记忆进行有规律的字符录入,甚至不清楚自己所输入的字符代表什么指令,因此每当错误出现时常常显得手足无措,怀疑软件、怀疑系统,甚至开始怀疑人生,到头来却发现只是少输入了个分号。

该阶段虽然看起来简单,但确实也是最容易将门外汉拦在开发者殿堂之外的门槛。

对于位于该层的小白而言,切记不要迷恋《30天从入门到精通》等武林秘籍,对没有入门的人来说很容易变成《两周从入门到放弃》。其实也并非没有入门捷径,找个真人师傅带进门就好了。

第二阶梯:Developer,开发工程师

作为拥有0-3年编程经验的第二层,可以正式的称呼自己为“编码菜鸟”了。

这时的他们对编程概念已经有了初步的理解,知道了变量、逻辑与函数的意义。同时也可以熟练的使用CV大法(Control+C、Control+V)来模仿前辈的案例或网络实例进行功能实现了,但也仅仅只能实现需求逻辑而已。同时因为并不理解这段代码的真实含义,所以实现的这坨代码通常让人头痛不已,是BUG的高发地。

对于位于该层的菜鸟而言,切记不要迷恋《Thinking In XX》系列的书刊,最好的修炼方式还是多阅读开源工程代码,多参与项目实践,完成一个由量到质的蜕变,从而进入下一个等级。


(图片来自:http://lateralresearch.com/)

第三阶梯:Research&Developer(R&D) ,研发工程师

作为拥有3-5年编程经验的中间层,进入该层的“攻城狮”们已经开始被委以重任,负责攻城拔寨,调研新型武器,属于团队里面的攻坚小能手、小白与菜鸟所仰望的大牛了。

与此同时,这一层级也是所有层级里面最危险、最容易迷失的一层,其危险在于因为沉迷于舒适区与盲目自信而停滞不前,最终因精力的衰退而被小鲜肉所替代;其迷失在于仅善于解决项目中曾负责或以前接触过的某一块的问题,对于系统架构欠缺整体的意识,不具备建立一个全新系统的能力。

对位于该层的“攻城狮”们而言,切记不要沉迷于代码的表面,也不要局限于API或源码库的收集,最好的修炼方式是不断地思考与锤炼自身对最佳实践方式的理解感悟,从而为进入下一阶段打下坚实的基础。

第四阶梯:Architect,架构师

作为拥有5-8年编程经验的开发者顶层,进入该层的大师们对于某一领域的系统研究已经“摸得门清”,通常他们是使系统“拔地而起”、“耸入云霄”的设计师。


(图片来自:http://t.cn/R6rj4rO)

他们更喜欢形容自己为“艺术家”而不是架构师,他们即使喝上一斤“关公坊+酸梅汤”都能准确的给你画出其设计过的系统架构图、功能结构图、数据库模型,并能基于系统实际使用情况进行基于架构的系统结构优化、性能优化等。

进入此阶段的工程师已经脱离了对招式的执念,步入了对于设计与编程之道的艺术修行道路。

第五阶梯:Consultant,咨询师

咨询师是一个特殊的存在,如果说架构师是追求于设计之道与艺术之道的苦行僧,那咨询师就是这条道路上的布道家。

他们一般有着广阔的见识与丰富的实战经验,也许他并未开发过多么经典的架构,但经过短暂的观察即可指出对于当前架构的优化意见;也许他并不能写出多么高深复杂的源码,但通常可以用最简单的办法解决技术上的难题;也许它并不了解你所遇问题的业务背景与专业技术,但可以通过跨领域知识启迪你解决问题。

上文的阶梯划分出自我过往八年的工作经验,对于第四、第五阶梯,我本无意划出高下之分,怎奈文笔功力有限,只好粗断为两个部分。回顾前文,我对于开发者的阶段划分又有了新的想法,开发者在历经以上五个层级之后又该如何发展,是科学家还是哲学家?我想听听你的见解。

作者:宋琦

来源:51CTO

时间: 2025-01-03 15:04:50

开发者技能修炼的5个等级,你冲关到哪儿了?的相关文章

开发者技能修炼的 5 个等级,你冲关到哪儿了?

第一阶梯:Typer,打字员 每一位开发者在正式踏上开发道路之前,都需要经过毫无编程经验的"第一阶段". 这时他们对于程序的理解仅限于照着书本或记忆进行有规律的字符录入,甚至不清楚自己所输入的字符代表什么指令,因此每当错误出现时常常显得手足无措,怀疑软件.怀疑系统,甚至开始怀疑人生,到头来却发现只是少输入了个分号. 该阶段虽然看起来简单,但确实也是最容易将门外汉拦在开发者殿堂之外的门槛. 对于位于该层的小白而言,切记不要迷恋<30天从入门到精通>等武林秘籍,对没有入门的人来

Vim技能修炼降龙十七掌

世界上有两个伟大的编辑器:一个是emacs,一个是vi.它们从诞生以来,一直在Unix/Linux世界得到最广泛的支持. 尽管过了几十年,在Windows平台上和跨平台上有层出不穷的后起之秀不断挑战它们的地位,比如编辑器界的Sublime Text,Ultra Editor,Notepad++,pspad,Atom,Visual Studio Code,IDE界的Eclipse, IntellJ IDEA, NetBeans等等,但是它们的地位从未动摇过. 写C#的最好IDE一定是Visual

网络推广软文策划七大技能修炼

中介交易 SEO诊断 淘宝客 云主机 技术大厅 网络营销软文推广已经成为时下最流行的推广方式了,是企业传播推广的核心.而网络营销软文策划撰写者也就理所当然成为企业最吃香的职业了,所以众多网络营销软文撰写培训机构也顺势而起了.那网络营销软文策划撰写者在技能上有什么具体要求?什么样的人才能写出一篇优秀软文了?软文撰写者从哪些方面提升自己技能水平了?企业寻找招聘软文文案人员从哪些方面衡量了?菜根谭个人积累了一些心得. 概括来说,一个优秀的软文策划文案需要从以下几个方面来修炼: 乐观积极的人生态度,良好

Vim技能修炼教程(1) - 使用vundle管理插件

世界上有两个伟大的编辑器:一个是emacs,一个是vi.它们从诞生以来,一直在Unix/Linux世界得到最广泛的支持. 尽管过了几十年,在Windows平台上和跨平台上有层出不穷的后起之秀不断挑战它们的地位,比如编辑器界的Sublime Text,Ultra Editor,Notepad++,pspad,Atom,Visual Studio Code,IDE界的Eclipse, IntellJ IDEA, NetBeans等等,但是它们的地位从未动摇过. 写C#的最好IDE一定是Visual

Vim技能修炼教程(2) - 语法高亮速成

语法高亮速成 我们继续在人间修行Vim技能之旅.上一次我们学习了如何通过vundle安装插件,这次我们迅速向写插件的方向挺进. 我们先学习一个最简单的语法高亮插件的写法. 语法高亮基本上是由三部分组成: 配色方案 正则表达式 配色方案和正则表达式的规则对应关系 简单的三步法写语法高亮 第一步,写匹配的正则表达式 我们举个最简单的例子,以Android的log为例,Android的log格式如下: --------- beginning of system 05-05 17:55:48.909 I

Vim技能修炼教程(17) - 编译自己的Vim

编译自己的Vim 前面我们已经对Vim有比较丰富的了解了.我们也知道Vim有很多编译时的选项,很多功能依赖于这些编译选项.其中最重要的就是脚本语言的支持,很多发行版本是不全的.为了支持我们所需要的功能,我们需要编译自己的Vim. 首先我们要下载Vim的源代码: git clone https://github.com/vim/vim.git Linux上编译Vim 以Ubuntu为例,首先要安装一些库的开发包,例: sudo apt-get install libncurses5-dev lib

Vim技能修炼教程(16) - 浮点数计算函数

浮点数计算函数 这一节的所有函数,只有在vim编译时支持了+float时才有效. 三角函数 sin() : sine正弦函数 cos() : cosine余弦函数 tan() : tangent正切函数 asin() : arc sine反正弦函数 acos() : arc cosine反余弦函数 atan() : arc tangent反正切函数 atan2({X坐标},{Y坐标}) : arc tangent反正切函数 sinh() : hyperbolic sine 双曲正弦函数 cosh

Vim技能修炼教程(15) - 时间和日期相关函数

Vimscript武器库 前面我们走马观花地将Vimscript的大致语法过了一遍.下面我们开始深入看一下Vimscript都给我们准备了哪些武器.如果只用这些武器就够了,那么就太好了,只用Vimscript会导致最佳的兼容性.否则不管是用:python还是使用扩展库,都给可移植性带来麻烦. 随着Vim的广泛移植,Vimscript带来的可移植性还是很可观的.这是一门跨相当多平台可用的语言. 之前我们为了区分normal命令和ex命令,在脚本中使用ex命令的前面都加上了":"前缀.从这

Vim技能修炼教程(14) - 写个ex命令吧

写个ex命令吧 我们第二节开始就写了语法高亮的插件.这一节,我们学习第二种插件的写法,就是写个我们自己的ex命令. 自定义ex命令的命令是:command,我们在~/.vim/下建立一个plugin目录,然后创建一个test.vim之类的文件: :function Hello() :echom "Hello,World!" :endfunction :command Hello call Hello() 首先,我们定义一个函数.函数名的首字母必须大写.函数中调用:echom去显示一个字