公众号后台回复“
学习
”,获取作者独家秘制精品资料
扫描下方海报二维码,试听课程:
(课程详细大纲,请参见文末)
目录
-
回首往事:自己竟没有任何核心优势!
-
公司遇到危机时,大龄程序员会怎么样?
-
适合大龄程序员的几条职业发展路线
-
最后的寄语
“
这篇文章,给大家聊聊Java工程师的职业发展规划的一些思考,同时也给不少20多岁、30多岁,但是对自己的职业未来很迷茫的同学一些建议。
希望通过此文,帮大家梳理一下程序员的职业发展方向,让大家知道自己从20多岁的初出茅庐,到40岁的大龄码农,应该如何规划属于咱们程序员的半生。
首先,咱们通过倒推的方式,看看在一个程序员在30多40岁时,
凭什么东西来捍卫自己的核心竞争力?
那如果要搞清楚这个问题,又得从一个反面来看看,大部分的程序员在职业发展过程中犯了哪些错误,结果导致在职业生涯中后期没有竞争力了呢?
最尴尬的事情,莫过于一个程序员在10多年,甚至20年的从业经历中,一直没好好考虑过如何构建自己的核心竞争力。
如果长年如此,会导致他就跟着公司慢吞吞的走着,就像温水煮青蛙,直到30多、40岁的时候,突然发现自己几乎一无所长。
举个例子,比如从技术角度而言,这些朋友可能发现自己并不是什么技术专家,也不是架构师,没有任何一个技术领域有足够的深度。
甚至可能都没好好读过什么技术的源码,很多最新的技术,比如大数据、人工智能、微服务、互联网,等等,都没跟上。
而这些朋友10多年来,一直做的事情可能就是重复以下:带着几个小弟,做传统的软件系统,然后整天就是研究各种软件的需求,设计一些简单的架构。
然后使用的技术都是比较过时的,一直是一些增删改查的事情,可能涉及到一些其他的技术,但是那些技术很多都是非主流的,或者是不流行的。
最后,你发现自己10多年工作下来,跟小年轻相比,唯一的优势好像就是做的那种CRUD的项目比较多,经验丰富一些罢了。
没错,我见过相当多的兄弟,在30多岁,乃至40岁的时候,就是上述那种情况,唯一的优势就是难度不高的项目经验比较多,带过几个人,仅此而已。
甚至有些兄弟虽然是一些中小公司的 “架构师” 、 “技术总监” 的title,但是其实本质做的事儿也跟上面是差不多的。
但是呢,这些朋友薪资未必就很低,因为随着在公司呆的久了,很多公司虽然知道你也许没特别大的技术能力,但是老板也认可你其实对公司的业务还算蛮熟悉的。
而且你做过的项目比较多,年龄较大,有资历,做事稳重,能带几个小弟,可以给公司撑起来一片天空。
此时,公司还是会给你不错的薪资。类似上面情况的兄弟,30多岁时,可能薪资也会有30多k~40k那样子。
但是也有很多的兄弟,没得到公司老板那么大的认可,自己可能也一直没想太多,所以在30多岁的时候,可能公司就给你28k,30k的薪资,认可你是一个资深的骨干。
而这个时候,对大龄程序员来说,学习很多新的技术也有点有心无力,毕竟家里老婆孩子都在炕头上。
你说加班加点吧,也有点加不动了,毕竟年龄上去了,各种慢性病一大把,精力不如往日,主要就是利用自己的一点经验把控公司的项目。
因此上述那个场景,就是很多大龄程序员的情况。
现在咱们换个角度,从一些
中小公司的老板
的角度来考虑一下这些大龄程序员
假如说公司业务还算稳定,营收还算正常,利润也算稳定,那么这些大龄程序员对老板来说是有价值的。
原因上面已经说过了,你毕竟工作了这么多年,业务还算熟悉,做过很多项目
从需求分析到系统设计,再到带小弟开发、测试和部署上线,这条流程你门儿清,那其实还是可以给你个30k薪资用你干活儿的。
但是假如公司现在遇到了一些危机,比如因为行业环境等原因,公司经营不善了,业务开始萎缩,利润开始下降,这个时候你说老板会怎么办?
其实很简单,
站在老板的角度,假如手里有10个大龄程序员作为骨干,此时完全可以拿掉其中的8个。
老板这时就留下2个大龄程序员,让他们为了保住饭碗,加班加点给公司撑住剩下的业务。
大龄程序员的工资可是公司里最高的那一批人,把他们拿掉8个,是不是一下子节省了很大的成本?
如果公司还有业务需要支撑,完全可以找几个工资才10k的小年轻程序员进来把活儿顶着,跟着2个大龄程序员继续做就行了。大家想想,是不是这么回事?
换句话说,在遇到困难的时候,工资高、年龄大、加不动班的大龄程序员,很有可能就会率先“
被
”牺牲掉,用来节约公司成本。
然后呢,换上几个薪资低、年龄小、可以天天加班到凌晨、还有充足的精力学习各种新技术的程序员,给公司顶上。
那么接下来,
这8个大龄程序员兄弟出去找工作,会遇到哪些问题呢?
很简单,这些兄弟本身技术并没有什么特长,项目也没什么难度,而且很多最新的技术还没跟上没学习。
此外,这些兄弟年龄也大了,上有老下有小,还加不动班,而且你要的薪资还不低。其他公司一看,有什么理由用30多k的薪资来聘用你呢?
你的技术、精力都不行,所谓的项目经验,仅仅是上一家公司的一些项目的经验,对别的公司可能没什么太大的作用。
如果你是另外一家公司的老板,你会不会聘用这样的人?我想说到这里,大家都明白这里的问题所在了。
看完上面的内容,大家都知道问题所在了,那么接下来我们来探讨一下:
什么样的大龄程序员,可以在30多岁,甚至40岁的时候,还得到各种公司的青睐呢?
(1)成为技术大牛,掌握公司的核心技术
第一种方式,就是掌握自己行业里的各种技术,哪怕走出了这个公司,也是其他公司疯抢的对象。
给大家举个例子,比如你一直在互联网行业工作,且一直在各种知名大公司,前后负责和经历过多家大型互联网公司的核心系统架构设计。
对于一个互联网系统,如果要支撑1亿用户,有哪些技术挑战,需要怎么来设计,你都经历过这些过程。
每秒支撑10万量级并发请求该怎么做,系统要能够支撑百亿级的数据存储又该怎么设计。类似这些东西,你都了然于胸。
那么这个时候,你就是拥有了核心技术。
哪怕你现在的公司不要你了,你完全会被其他公司给争抢过去,因为很多公司都需要这种有过大规模系统、高并发经验、海量数据经验的架构师。
千军易得、一将难求。
招聘很多薪资二三十 K的高级工程师,负责把一个模块做好,很容易。但是你要招一个能够把控全局,hold住你公司一个复杂大系统全场的高级架构师,很不好招,这样的人很值钱,很多公司都需要。
这个时候你虽然三十多岁,但是人家认可你,因为你有核心的技术能力,核心的架构能力,你是公司技术的最后一道防线,很多岗位非你不可。
再看个例子,比如大数据领域,现在你工作10多年,技术功底极为深厚,你完全可以对大数据领域的各种系统,比如hadoop、spark、hbase、kylin、elasticsearch等等,做非常底层的优化。
遇到任何问题,你都可以从源码级别来推断解决,而且可以修改开源项目源码,进行二次开发。
那么这时,你就是拥有核心技术的。未来大数据必然会发展的越来越好,因为各个行业都有大量的数据,很多公司都需要有最好的专家来解决自己公司的大数据问题。
因此,即使你40岁了,但是你有多年积累的核心技术能力,任何公司都需要你这样的顶尖大牛坐镇,解决各种技术问题。
所以如果要往这个方向去走,建议大家一定要从20多岁开始,好好规划自己的技术学习和职业发展。
大家一定要想好,自己要学什么技术,要往多深了学,要在什么样的公司里积累经验,踏踏实实走好每一步。
到30多40岁的时候,虽然大龄,但是你积累了足够的技术能力,你的核心技术会像 “
九阳神功
” 一样为你护体,让你依旧驰骋职场、炙手可热。
(2)深挖业务,成为业务领域专家级人物
第二种路线,你可以考虑成为某个业务领域的专家级人物。
你可以在一些业务有绝对难度和深度,业务极度复杂,而且行业持续发展,业务领域的知识持续保持价值的领域,一直深挖。
比如说电信、金融、银行、保险、财务、ERP,等等,诸如此类。
在这些领域的公司里面,你可以在不停的做技术类工作的同时,也注意积累这个领域的业务知识。
像一个电信系统、ERP系统,往大了做,业务都是极度复杂的,包含了大量的东西。
如果你能持之以恒,对各种业务知识、业务系统都深入挖掘,那么最后变成这个领域的业务专家,也是很有价值的。
为什么这么说呢?
因为对于很多特定行业,可能做一个系统不需要那么高大上的技术,但是绝对需要最好的业务专家来进行把控,才能设计出那种对应于某一个特定行业,且业务极其复杂的系统。
所以很多同学,假如是走传统行业的系统开发方向,可以考虑注重更多的业务积累,未来成为顶尖的业务专家。
这样,哪怕你40岁的时候,这个行业也需要你这样的
“老专家”
在公司里继续支撑着业务发展。
(3)带领团队:走上技术管理之路
另外一条路,就是走技术管理的道路,这个相信大家都理解。
作为任何公司的老板而言,都需要技术管理人员,他需要懂技术,但是不一定特别的精通,但是一定要有极强的团队管理的能力。
作为团队管理者,你需要有能力把控公司大的技术方向,还需要有足够的行业人脉和资源,招聘搭建合适的技术团队。
此外,你还要能够制定技术团队的工作流程和规范,进行团队之间职责的定义和分配,让各个团队有效协作运行,最后成功的支撑公司的业务发展。
这个管理,说起来就两个字,但其实背后的学问极大,要把几十个甚至几百个不同的人拧成一股绳,保持强大的战斗力,为公司做好支撑工作,其实这里难度很高,非常考验一个管理人员的水平。
如果你能从带几个人的小主管开始,到带几十人的技术leader,再到带几百人的高级技术管理人员。