聊聊程序员的成长路线

2022-09-23 18:08:09 浏览数 (3)

说起程序员,大家应该都会打上“高薪”、“扛加班”、“人傻钱多”、“闷骚”和“没时间找女朋友”等标签,是的,某些特征确实是很明显,但是它们并不是程序员的全部。

据不完全统计,中国现在从事程序员工作的人员已经达到755万,也就是说这个行业已经伴随着中国互联网高速发展的这二十几年,逐步的成为一个被大家热捧的养家糊口的饭碗,一下是知乎上提供的参考数据:

  • 依据GitHub的数据,2021年中国有755万程序员,排名全球第二;
  • 放眼全球,程序员数量已经超过7300万,比2020年增长了1700万。

全球程序员数量与增长情况,根据预测,2025年GitHub上的程序员估计能达到1亿。在全球总开发者中,来自北美洲的最多,占比达到31.5%,其次是亚洲31.2%,之后是欧洲27.3%。当然,亚洲当中,中国程序员群体是最为庞大的。

在超过7300万的程序员群体中,美国共有1355万,占比最高;中国其次,有755万,只有美国的一半左右。需要指出的是,中国人口可是美国的近4倍,程序员数量却只有美国的近一半。不得不说,美国的软件和互联网产业在相当长时间内,还将独步天下啊。不过,中国程序员增长很快,2020年中国共有程序员652万,2021年就增长到755万,增长了超过100万人。

上面只是截止2021年统计的数据,2022年中国的程序员估计都要超过1000万了,那么这么多人涌入这个行业,新人进来之后,就会有旧人离开,这个是亘古不变的道理。

程序员的成长路线,一般会分为如下 几个阶段:

(1)程序员小白,一般是指参加工作的前两年,这个阶段的程序员属于最初级的阶段,当然也是成长最快的阶段;

(2)中级工程师,一般是指工作3年左右的程序员,这个阶段已经具备独立写代码的能力了,并且也积累了一些一线写代码和解决技术问题的能力;

(3)高级工程师,一般是指工作3到5年的程序员,这个阶段已经具备模块化的代码能力了,并且有些已经可以展示出自己的优势,比如是否继续做技术,还是转型做管理。这些一般是在工作3-5年就会展示出来的;

(4)资深工程师,一般是指工作大于5年而小于8年的,为什么要这样说呢,如果你是具备继续做技术的能力,这个阶段就会成长为技术专家或者架构师,如果你是具备管理的能力,这个阶段你会成长为一线Leader或者技术经理等等;

(5)技术专家,当你进入技术专家的这个阶段之后,你已经具备非常强的专业能力,并且已经积累了非常丰富的专业技术经验,这个是毋庸置疑的,并且也具备横向的扩展能力,比如从微服务扩展到服务网格等等;

(6)架构师,架构师是一个比较神秘的职业,几乎人人都可以说自己是架构师,但是要真正的去做好架构师,是需要很多年的技术沉淀的,也就是说不论是技术、业务、管理还是架构能力,都要积累到一定的程度,你才能对得起架构师这个职业。这里我可以告诉大家,确实每个人做了一部分设计就可以将自己当作是一个项目的架构师,但是这些都是不准确的,真正的架构师是要参与全局的设计,并为整个团队或者某一个项目的技术方案负责的,并且架构师是不需要参与研发活动的,也就是说它不具备调度研发资源的权利,但是又需要自己具备领导力,从而去影响团队中技术小伙伴的思维的能力;

再往下走就是高级技术专家、高级架构师、资深技术专家、资深架构师、技术总监、高级技术总监、首席架构师、CTO、副总裁、技术VP、产品VP、总裁、CEO等等。

当然作为程序员,其实大部分都会停留在技术总监这个职位就很难在上去了,因为越往上走,要求的可不是技术硬实力了,还要的是更多的软性实力,以及各种机会或者平台资源的支持。

程序员小白

当我们作为一个程序员小白时,一定要注意跟对师傅,也就是说这个阶段是你成长飞速的阶段,如果跟对了师傅,就会事半功倍。那么我们在公司一般是没有选择师傅的权利的,公司领导会随机的给你安排一个师傅,当然每个师傅都会有他擅长的领域,这个时候咱们程序员小白千万不要挑三拣四的,因为只要是能够作为师傅去带你的人,肯定是你所在的部门中优秀的人(当然也会有浑水摸鱼的),你要做的是通过他的指导,去学习他的长处,把它的优秀本事全部学到。关于挑三拣四这个毛病,程序员小白千万不能养成习惯,总是觉得这个问题很简单,我百度一下不就会了,但是你要想一下,如果说真的这么简单的化,那你岂不是也可以做师傅了。当你虚心的去请教你的师傅或者一些前辈的时候,人家才会认真的去帮你。因为你要想想,没有人是有义务无偿的帮助你的,你也不要去想着捡现成的,或者有很多坐享其成的思想,当你在“程序员小白”阶段养成了这样的习惯之后,后面大概率是很难成长起来的。

笔者见过好多“程序员小白”,经常抱怨说公司技术环境不好,很多技术非常牛的人,都不愿意教他们,总是有所保留,其实这些都是心态的问题,你自己要想想,人家沉淀了这么多年的知识体系,为什么要无偿的给你呢?你又是他的谁谁的亲戚。

中级工程师

在国外,工程师的抬头是需要考证的,但是在国内基本是工作几年之后,就默认你是具备工程师的能力了。中级工程师一般是具备独立的CRUD能力了,也具备一定的识别技术的能力了。

在这个阶段的程序员一定要注重去培养自己的细节能力,也就是说我们不仅要完成一件事情,而且要高质量和高效率的去完成一件事情,这个是程序员小白不具备的能力。

比如说同样是写一个商品相关的接口,程序员小白可能会出现20个bug,才能完成需求的交付,但是中级工程师就需要具备只用5个bug的代价去交付这个需求(数字只是拿来做比较)。换句话说,中级工程师要具备代码质量意识,这些阶段一定要重点培养自己的编码质量的能力,不然你越往后走,你会发现你越来越没有更多系统化的时间去培养这些能力。

高级工程师

当你具备了独立的CRUD和代码质量的能力之后,在“高级工程师”这些阶段,你就要具备去关注实现某些功能的底层的技术细节,也就是说你不仅要像“中级工程师”一样去关注业务的细节,你还要去关注实现这些功能的技术细节。比如你会用Mybatis Plus实现多租户,那你是否有去了解过该技术的细节呢?如果你每个需求都会做多关注一下技术的细节,那么久而久之你的技术细节能力就变非常强了。

资深工程师

资深工程师其实是一个分水拎,不同的人会在这个阶段之后逐步成长为技术专家、架构师或者技术Leader,当然这个也是35岁程序员的分水拎,很多人就是在这个阶段掉队的。

资深工程师需要具备哪些能力呢,其实大致可以分为如下几种:

(1)非常强的编码能力;

(2)精通某一种编程语言,比如JAVA;

(3)非常强的一线落地项目的能力;

(4)能够熟练的用各种框架技术,但是不要求都熟悉原理;

(5)具备一定的架构设计能力,但是主要角色还是停留在代码阶段;

(6)项目管理能力,也就是说资深工程师需要带项目,但是也不会要求项目是从0-1。

我用实际的一个项目来举例子,假如现在需要参与到一个电商项目中,“资深工程师”要能够快速的读懂架构师或者专家的技术或者架构文档,并能够做出有效的项目沟通,从而将这些转换之后的项目文档同步到团队中其它工程师手中。这里的读懂就非常难了,因为一个架构师或者技术专家的知识体系师非常丰富的,你要去读懂那肯定是自己要有所了解,比如你还是像其它工程师那样,靠别人来灌输这些新技能,那么就和这个职级是不匹配的了。

一般一个程序员从“小白”成长到“资深工程师”,至少都需要5年 左右的工作经验,这个只是大部分人的成长路径啊,有些人非常优秀,可能三年就达到这样的高度了。

关于技术专家、架构师以及其它岗位的详细分析,我会在下一篇文章中给大家解答。

总结

程序员的成长是需要规划的,并且成长路径并不是一成不变的,但是有一点你需要注意,那就是每个阶段都需要具备超过你当前职位的能力,也就是说你要具备超前意识,这样你才能够有进阶的可能性。

0 人点赞