跳至主要內容

程序员 35 岁危机,如何破局 ?

沉默王二学习建议学习建议约 5264 字大约 18 分钟

作者:沉默王二

二哥的Java进阶之路:https://javabetter.cnopen in new window

大家好,我是二哥呀!今天周六,咱精神就不要绷那么紧了,来谈一个超级“轻松”的话题:35 岁中年危机。

不得不说,任总的把寒气传递给每一个老百姓,杀伤力拉满,不少小伙伴都绷不住了,开始危机重重。二哥的编程星球open in new window VIP 群里,也有不少小伙伴唉声叹气,感觉情况糟糕至极。

就连一个不满 25 岁的球友,也开始担心起 35 岁程序员中年危机了,问二哥该怎么办?

说句实在话,环境是没有以前好,但还没有到恐慌的地步啊,再说,25 岁就开始担心中年危机,着实有点早了呀!这期间还有 10 多年的美好岁月呀!

我们是该未雨绸缪,但不应该杞人忧天啊,这种“危机病”必须得治。下面这部分内容是二哥的“四贱客”,哦不,“四剑客”团队之一的楼仔写的,可以说是治好“35 岁”危机的良药!理解的非常深刻,道和术全都具备!

相信很多小伙伴对这个话题感到焦虑,担心自己 35 岁之后会失业,因为前几年我也这样,不过目前要好很多,文末会讲。

不 BB,上文章目录。

1. 为什么会危机?

1.1 35 岁年龄特点

35 岁并不是真正的 35 岁,它是一个泛指,基本上来说就是 35-40 岁这段时间,所以后面我说的 “35 岁”,都是泛指 35-40 岁。

为什么会在这个阶段出现危机呢?

  • 经济压力:这个年龄一般都有房贷、车贷、子女教育等,我认识很多同事,光房贷每月基本都要 6K-7K,再算每月的生活支出,很多都会月光;
  • 家庭原因:这个年纪的人都已经成家,上有老下有小,需要平衡家庭和工作的关系;
  • 身体素质:年龄的增加,身体素质大不如从前,不能熬夜;
  • 个人学习:因为生活和家庭,能留给自己学习的时间不多,主动学习的欲望会明显降低。

1.2 35 岁危机来源

如果公司裁员,你是不是被最先裁掉的那一批?如果被裁掉,35 岁再出去求职,其它公司会不会要你?如果新公司给你 Offer,能否能达到你之前的水平,至少能保证你正常的生活开支?

怕被优化,怕年纪大了找不到工作,怕给你的薪资覆盖不了你现有的生活水平,这些其实都是我们危机感的来源。

我们看看用人单位看大龄程序员的视角:

  • 管理成本高:领导的那一套画饼方式已经不适用,年轻程序员容易管理;
  • 经济成本高:要的工资一般都不低,同样的费用是年轻程序员的 2-4 倍;
  • 精力跟不上:如果公司推崇加班文化,大龄程序员的精力确实不太能跟上;
  • 家庭事情多:大龄程序员家庭琐事多,不像年轻程序员那么纯粹;
  • 其它:学习和进取欲望降低、能力提升变慢、技术栈老旧、可塑性变差等、公司产品不需要过深的技术和业务积累。

1.3 大龄程序员是否被排斥

年轻程序员在写日常的业务代码,可能和大龄程序员差不多,但是当需要解决公司的技术性难题、或对项目重构时,大龄程序员就会发挥自身的优势:

  • 某种技术方向上有深厚积累;
  • 项目经验丰富;
  • 业务积累深厚;
  • 解决问题能力强;
  • 设计、架构、分析、规划等方面能力较强;
  • 大局观强,有情绪管理能力,稳定耐造。

所以我们和年轻程序员拼的不是代码能力,而是项目经验、设计能力和知识输出等。

如果你已经步入大龄行列,比如有 10 年工作经验,但是真实水平不到 5 年,被淘汰的概率会非常大。

这里可以给出我的结论:

  • “35 岁危机”是否存在?这个毋庸置疑,肯定是存在的。
  • 公司是否排斥大龄程序员呢?在我看来,公司排斥的不是大龄程序员,而是排斥能力和自己工龄不匹配的大龄程序员。

2. 如何应对危机 ?

2.1 克服焦虑

“35 岁危机”一直存在,准确来说大龄危机一直存在。

拿我个人来说,我认为能做到 40 岁,但很难做到 45 岁,做到 50 岁更遥不可及(大神除外),所以危机无法避免,只能尽量去延长我在这个行业的生命线,并在“退休”前完成一定的财富积累。

如果能有上面这个觉悟,其实就没有那么焦虑,因为我们最终都会离开这个行业,只是时间早晚的问题。

所以我的目标就非常清晰:不是要守住程序员这个行业,而是尽量延长我在这个行业的生命线。

那如何才能延长职业生命线呢?答案是持续学习!

IT 行业的技术更新换代非常快,对个人综合能力要求非常高,如果你不持续学习,等到年龄危机到来时还想躺赢,下一批裁员的可能就是你了。

持续学习是一切的前提,但我们不能盲目去学习,需要提前做好职业规划。

2.2 提前做好职业规划

我们看看程序员常规的晋升和转型路线:

  • 技术型:初级工程师->中级工程师->高级工程师->架构师(技术专家)->技术总监->CTO;
  • 管理型:工程师->项目组长->项目经理->项目总监->技术总监->CTO;
  • 交叉型:初级工程师->中级工程师->项目经理->技术总监->CTO(此路线技术和管理交叉进行,每个阶段做的事情不固定);
  • 转行型:初级工程师->转行产品、设计、销售、运营等。

下面是更加详细的职业规划,尽量延长自己的生命线,甚至可以摆脱年龄的限制(能摆脱年龄限制,都是大神级别):

  • 在某种开发技能上建立个人品牌,比如Java、微服务、Hadoop、高并发、C++ 等,而且你的品牌要被业内认可,这样的开发者实际上是以 “技术专家” 的身份存在。
  • 在组织内开发技能过硬、精通业务,成为复合型选手,占据难以替代的位置。这样的开发者,可以称之为高级开发工程师或者资深开发者,这样的角色,在一个合适的平台上可以受到重视,可以跟着平台发展,不用在意年龄。退一步讲,即便所在的平台倒掉了,也会有很多公司愿意要。
  • 成为善于架构某类软件服务的架构师。这是从高级开发工程师演进过来的更高级的角色,当你真正做过一些大型系统的架构工作,会有很多公司需要你,不必担心你的年龄,你工作自由了。
  • 走向管理岗位,成为职业经理人。很多公司都有项目经理、技术经理、研发经理等管理角色,你需要能够真正做好管理工作。

3. 需要具备的核心技能

3.1 技术方面

技术才是每一个程序员的安身立命之本,无论你处于哪个阶段,都不要把技术完全落下,区别只是在各个阶段对技术要求的侧重不同:

  • 初中高级程序员:一个技术强化的过程;
  • 专家:选择一个技术方向深耕,成为对应技术领域的专家;
  • 架构师:更偏向对项目整体架构的设计和把控能力;
  • 团队负责人到 CTO:管理职能更大于技术职能,更多的是对技术的宏观方向把控。

技术方面主要有以下几点建议:

  • 先广后深,打造自己的核心竞争力。 你可以是微服务领域的专家,也可以是 ES 大佬,或者精通 Flink。
  • 拒绝啃老本。 不要在一个公司混了 3 年,出来找工作投简历,发现简历都投不出去,Spring Cloud 都不知道是什么,微服务、分布式完全没接触,还是只会基于 SSH 的 CURD。2/3 线城市还好说,在一线城市工作的,技术迭代更新比较快,一定要跟紧主流技术。
  • 要形成自己的技术体系。 什么是技术体系,举个例子,你说自己会 MySQL 数据库,但是除了日常写 SQL 进行 CURD 的业务开发外,你还知道 MySQL 的运行架构,主流存储引擎的区别,主从同步原理、组复制、锁机制、分表分库、事务控制这些吗?围绕着技术名称的中心点,能像蜘蛛网那样扩散出去,形成有条理的网状结构,就形成了自己的技术体系。
  • 尽可能做多做一些总结输出。 我目前的做法是将日常的一些学习笔记、人生感悟、bug 解决过程等先简单记录在有道笔记上面,后面再逐渐整理输出,既可以回顾总结反思,也能作为一些博客的内容输出。
  • 不要死磕技术(这点大家勿喷)。作为程序员,需要有一定的技术信仰,但也不能太过迷信技术。在职场中,你要比别人走的更高更远的话,只会敲代码实现一些业务功能是远远不够的。其实在很多开发公司,开发人员的地位都比较一般,来去匆匆,始终是底层的搬砖工。所以,不要傻傻地一头扎入了技术的海洋,每个人的精力都是有限的。除了技术实力外,你还需要有意识地培养自己的沟通表达能力、文档输出能力,比如项目说明文档、项目架构图、汇报 PPT、团队管理、项目管理、项目规范、抽象化思维、产品化思维等综合实力。

3.2 架构和设计

架构师是很多开发者的终极技术梦想,能成为架构师的凤毛麟角。

但是,每个人都必须要架构和设计软件的能力!

如果你没有架构、设计的能力,就无法站在更高维度去理解软件开发,就必然被迫奋战在最简单也最容易被替代的体力化的编码工作岗位,而这样的岗位,必然是拒绝大龄程序员的。

所以,即便你还不是架构师,也不是技术经理,也不是管理人员,也不是需求分析师,你也需要在日常工作中拔高一点,经常性的、刻意地去想一想,系统的模块为什么这么划分,服务间的接口为什么这么设计,这个业务逻辑为什么要这样实现而不是那样实现。

惟其如此,你才能慢慢理解别人的架构与设计,才能慢慢培养自己的架构与设计能力。

3.3 业务能力

所有开发者都要记住一点,开发者具有双重的行业属性:软件行业属性和软件所要解决的问题所属行业的属性。

软件所要解决的问题,就是我们通常所说的业务。比如支付宝的业务是支付问题,京东商城的业务是电子商务问题,携程的业务是机票和酒店预订问题。

精通业务,可以成为开发者的优势,这是开发者在问题域构建起来的优势,即所谓的懂行。

如果业务积累方面的优势和开发技能方面的优势能叠加起来,那这位开发者,就具有秒杀 85% 以上开发者的能力

再比如,目前国内技术人员太多,可替代性太强,做 Java 搞业务开发的,无非就是 Spring boot + MyBatis + MySQL,需要上微服务就采用 Spring Cloud 全家桶,通用型太强。

而如果你既懂技术又熟悉核心业务流程,比如熟悉电商平台、支付系统、风控系统等的核心业务流程,那么你在团队的地位一定稳如泰山。

3.4 软技能

《软件架构师的 12 项修炼》这本书里给出了软件架构师的金字塔能力模型:

这个模型,适用于绝大多数软件开发工程师,在这本书里,作者说这么一句话。

大多数时候所谓的“技术之玻璃天花板”,其实只是缺乏软技能而已。这些技能可以学到,缺乏的知识可以通过决定改变的努力来弥补。

我们每位开发者都要牢记这句话,要清醒地意识到:

  • 不深入钻研,缺乏开发技术等硬技能,你很难在初期的职业生涯(0 ~ 5 年)中做出成绩占据重要位置
  • 没有沟通、协商、领导力、语境切换、创新、认知等软技能,你很难在职场上走出高度

所以,在你掌握一定的开发技术可以搞定一些任务后,就要并行地去培养自己的软技能,比如沟通、表达、协商、演讲、辅导、写作、组织、规划、管理、汇报、商务谈判、创新、设计等等。

只有软技能匹配你的硬技能,你才能更好地发展,当你软硬结合,综合能力爆棚时,根本不用担心将来怎么找工作的问题,工作机会会跟着你跑,甚至有人会专门为你创造工作机会。

4. 其它建议

除了持续学习、往技术或者管理方向发展以外,我觉得有以下几点也需要重点关注。

4.1 锻炼身体

之所以写在最前面,因为身体是革命的本钱,有句话非常经典。

身体是 1,其他都是 0,没有 1,再多的 0 都是空。

魔都一位技术人员,总以为自己年轻,身体硬扛得住,结果一次晕倒后,医院检查发现自己得了尿毒症,没有好的身体,你挣再多钱都没有意义,一旦你因为身体而离开人间,配偶、孩子、钱都是别人的了。

4.2 发展副业

提前布局 PlanB,做好副业。

做副业的目的,就是增加自己的收入,同时也是倒逼你去学习更多的知识,让你的技术能力提升更快,也为你未来创业做准备,增加你抗风险的能力。

除了以上好处,副业也会提升你的个人能力、扩大你的圈子。

4.3 拓展圈子

越是成功的人,他的圈子就越广,资源也越多,人生的路自然就越走越宽。

最近一段时间认识二哥后,我就发现,生活工作又了新的不一样,我进入了另外一个资源共享的圈子,我们做开源,做的不亦乐乎。

所以多向上拓展你的圈子,多走近结交那些正能量、有想法、志同道合的人。

兴许下次换工作,是圈子里的人脉直接内推让你找到一份满意的工作,更有可能,圈子里的几个朋友因为某一个好点子直接走向创业之路。

5. 写在最后

再回到文章开头的问题,其实我 2 年前还很焦虑,但是现在不再焦虑,反倒信心更足了。

我目前基本都是按照上面的轨迹去走,已经走了 2 年,各方面的软硬技能都已具备,所以在公司,基本不太担心被裁。

可能有同学会问,那当你 35 岁以后,万一公司倒闭了呢 ?

如果自己还不到 40 岁,找一份大厂的工作,应该不难,如果到了 40 岁,我也完成一定的财富积累,手中有粮,心里不慌。

为了以后能有退路,我也在布局自己的 Plan B,扩展自己的人脉圈子,比如写公众号、搞创业项目。

如果副业能做起来,说不定以后就靠这谋生,如果没做起来,我也收获了人脉和经验,为下一次创业蓄力,何乐而不为呢?

最后送上大家一句话:工作可以是事业、是热爱,也可以只是一份工作,给自己留出转身的空间很有必要,如果把工作看作一份经历和沿途的风景,在乎过程中的经历、感受多过最后的结果,可能会让人生更加充满期待。

ending

一个人可以走得很快,但一群人才能走得更远。欢迎加入二哥的编程星球open in new window,目前已经有 710 多名 球友加入了。

最近一段时间,二哥也没闲着,和球友炳源一起,正在紧锣密鼓地更新 Java 版LeetCode 题解,我们并不刻意追求 beat 100%,但效率总是出乎意料的优秀。与此同时,我们也在力求每一个题解都能通俗易懂,深入到底层,给大家举一反三的能力。

就比如说为了讲清楚暴力算法和 KMP 算法的区别,我们可以说是煞费苦心。

除了星球提供的三份高质量专栏,《Java 面试指南》、《编程喵 🐱(Spring Boot+Vue 前后端分离)实战项目笔记》、《Java 版 LeetCode 刷题笔记》,这里也沉淀了非常多优质的内容,包括球友和二哥分享的精华贴,还有二哥精心回答过的球友提问。

如果你也需要一个良好的学习氛围,戳链接加入我们的大家庭吧open in new window!这是一个 Java 学习指南 + 编程实战 + LeetCode 刷题的私密圈子,你可以向二哥提问、帮你制定学习计划、跟着二哥一起做实战项目,和球友一起打卡学习,自律得飞起!

欢迎点击左下角阅读原文了解二哥的编程星球详情,这可能是你学习求职路上最有含金量的一次点击。


没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟。

参考链接:https://mp.weixin.qq.com/s/jtwD0Iodg7-HsHEJh2ubZwopen in new window,出处:楼仔,整理:沉默王二


GitHub 上标星 10000+ 的开源知识库《二哥的 Java 进阶之路open in new window》第一版 PDF 终于来了!包括Java基础语法、数组&字符串、OOP、集合框架、Java IO、异常处理、Java 新特性、网络编程、NIO、并发编程、JVM等等,共计 32 万余字,500+张手绘图,可以说是通俗易懂、风趣幽默……详情戳:太赞了,GitHub 上标星 10000+ 的 Java 教程open in new window

微信搜 沉默王二 或扫描下方二维码关注二哥的原创公众号沉默王二,回复 222 即可免费领取。