首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊程序员的成长路线

聊聊程序员的成长路线

作者头像
35岁程序员那些事
发布2022-09-23 18:08:09
8910
发布2022-09-23 18:08:09
举报

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

据不完全统计,中国现在从事程序员工作的人员已经达到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年+左右的工作经验,这个只是大部分人的成长路径啊,有些人非常优秀,可能三年就达到这样的高度了。

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

总结

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构随笔录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 程序员小白
  • 中级工程师
  • 高级工程师
  • 资深工程师
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档