技术编程人员成长的 9 个段位

很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破 。所以我结合我自己 10 多年的从业经验,总结了技术人员成长的 9 个段位,希望对大家的职业生涯,有所帮助 。
第一段刚接触编程的时候,会觉得这是个很神奇东西,平淡的英文字母,再加上标点符号,竟然可以有这么大魔力 。会觉得编程是很有自豪感的事情,因为在我们看来,它就是在创造,用这些跳动的字符,创造我们想要的效果 。
我当时第一次看到编程的时候,就是这种感觉,我也不知道它是什么,如何做到的,但是就是感觉这很神奇,是一种不懂但是觉得很酷的感觉,然后就会着迷,开始想学 。
第二段开始学编程的选择,是没有选择的,因为什么都不懂,可能最先从哪里看到的,就模仿学什么,然后就走上了编程之路 。
我最先接触的语言是 Pascal 语言,当时我不知道它是什么,只知道它叫这个名字 。这门语言是在高中的时候,计算机书本上的,我学了一些,与其说是学,还不如是记,因为我没有练过,没有运行过 。
第三段走上了编程之路后,学习得方式主要看语法,这个是为了入门,但是并不太知道为什么会这样,但是能用,能模仿,这时候算是入门了 。
入门后,会迫不及待的,使用实验各种效果,而且这些结果可能都不是自己写出来的,因为入门了,环境可以搭建,会运行,就会从很多地方拷贝一些代码,运行试试,然后感受成功后的自豪感 。
我真正做出来东西的语言是 VB,可以通过拖动生成界面,然后再填充需要的逻辑代码,就可以实现一些功能,比如 MP3 后缀名处理,html 转 TXT,那时候主要的目的,还是满足自己的需要,可以做一些酷的东西,并不是真的把它当成一门用于工作的技能系统的学习它,但是即使这样,已经够我在同学面前自豪了 。
第四段真正的在走向工作之前,这时候的学习,就开始系统性,毕竟要决定靠这个谋生了 。这时候我们会看一些实战类的书籍,比如如何做网站,通过什么框架,用到哪些数据库、服务器等等,这时候基本上已经走向正路了 。
但是这个时候,我们只是会用阶段,大部分人还不知道为什么,比如 Spring 框架,我们知道这么配置可以用,可以 IoC 反转,但是不知道怎么实现的,原理是什么 。
这个时候最大的特点就是,给分配的工作都能做,不太会的,也可以通过 google、百度解决,大不了拷贝别人的一份,改改即可 。
不管怎么样,现在已经初步具备框架系统体系了,可以谋生了 。
第五段随着工作时间的加长,经验的增加,你会渐渐的发展,很多常用的知识,自己只会用,但是并不懂,比如内存的分配,类的加载顺序,IoC 的原理等等 。
这时候大概是工作 2 年左右,如果快的话,可能会在工作第一年就意识到 。这时候你会刻意的去买了一些讲解基础类的书籍,比如以前从来没有认真读完的《Thinking In JAVA》又开始重读了,并且读的很仔细,还会配合例子测试一下,俨然像一个刚入门的,但是你知道你很清楚你缺少的是什么,想从中学到什么 。
然后你可能还会尝试买一些比较深入的书籍,比如讲解原理的,高级特性分析得等等,这时候你会逐步的在你现在的这门语言开始深入,要跨过不光会用,还要懂为什么的阶段,这个阶段是孤独的,因为大部分都是语言特性、原理的学习 。
跨过去,就是鱼跃龙门,过不去,就是一个重复的螺丝钉 。
第六段恭喜你能来到这个阶段,你不光会用,还知道原理 。这个时候可能你已经工作 3 年以上了,这时候你开始独立负责一些项目,设计都是你来做 。这时候对你的考验不光是编程语言本身了,你还会考虑如何让你的项目具备更好的扩展性,如何提高性能,如何和数据库、服务器、缓存等配合,设计出更好的系统 。
这时候你可能开始看设计模式,也会研究数据库的优化,可能还会对 Nginx 研究,以便更好的使用 。
这时候的主要特征,就是抽象能力、复用能力、组件化、模块化的提升,同时可以和编程周边(数据库、服务器等)进行更好的协调和搭配,以完成自己的项目设计 。
这就是成为高级工程师之路 。
第七段现在你来了第 7 段,这一段是资深工程师,是第 6 段的加强,并不会有质的突破 。
在这个阶段,你会对抽象、架构的理解更深 。开始积累更多的模块,形成一个 SDK 或者一个微服务,你开始深入研究安全,并发,监控 。如果你是服务端,你可能会考虑服务双活甚至多活,考虑网关等等 。


推荐阅读