![image.png](https://static.studygolang.com/190217/1e7f11b50ca01c219352ae1f6716033d.png)
在娱乐圈,哦不,是在程序员这个吃青春饭的行业,有一个人人闻之色变的话题,曰:「年老色衰」。只要是个程序员,心里都会惴惴不安的想:「我老了以后卖不动色相,哦不,写不动代码了,我还能干啥呢?」。今天咱们来谈谈这个禁忌话题。
在我还是25岁的时候,我和很多程序员一样,其实有同样的担心,老了以后怎么办?写代码难道还能写到30岁?
当我30岁的时候,我发现自己创业去了,虽然非常苦逼,但是苦中作乐,还挺有挑战的。当然创业是没有退路的,创业要是失败了,估计更加没人要了。所以还是先想创业的事吧,35岁的大龄程序员问题还是5年以后再说。
一晃我就35岁了,创业公司卖了,我在新东家当CTO了。话说这个CTO其实也很苦逼,操心的事太多,每天各种杂事,压根没空想中年危机的话题。
然后我马上就40岁了,不算有钱,但养活自己完全没问题,想着趁自己还能蹦跶几年,再做点什么吧,就跳槽去了另一家公司。
现在回想25岁的时候,当初的担忧真的是杞人忧天了。我现在写代码也完全没问题,偶尔也会写点代码练练手,自娱自乐一下。但是从2010年我34岁开始,工作上我已经不适合写代码了。不是我不愿意亲自写代码,我反而觉得写代码很有成就感,而是我不写代码对公司的价值更大,我需要把时间和精力放在规划产品方向、决策技术架构、培养团队,提升公司战斗力上。
**那些70后的程序员都消失了吗?**
如果你现在去一家互联网公司看看,你会发现程序员的主力都是90后了,80后都很少,至于70后几乎绝迹。那么一个有趣的话题是:「70后的程序员都消失了吗?」
其实没有消失,而是70后的程序员已经成为各个互联网公司,各个IT公司的高层了。那么你会问:「一个公司就几个高层职位,哪有那么多职位给70后呢?」
答案是:「20年前根本就没有多少IT公司,70后的程序员也没有现在动辄几百万的规模」。这20年来,整个IT和互联网行业扩大了100倍都不止,创造了海量的就业机会,无论是高层还是一线岗位。
那么还有70后程序员奋战在coding第一线的吗?当然有!比我还大一岁的高春辉,中国互联网的活化石啊。老高身为一家公司的老板,仍然不肯放下coding的乐趣,至今坚持亲自写代码。
所以看起来,到了40岁,无论自己写不写代码,似乎都不至于年老色衰,程序员这个职业的保鲜期似乎没有娱乐圈短。作为一个年轻程序员的你来说,应该怎样延长自己的保鲜期呢?
**20-27岁:技术积累阶段**
假设本科22岁毕业,那么工作的前5年对你来说是打基础的阶段。在这5年时间里面,你要积累足够的代码量,打磨自己的技术实力,成为某一个技术细分领域的牛人。
而我自己当年在这个阶段的努力程度是如饥似渴的,春节都不回家,蹲在出租房里面啃技术文档。刚参加工作的时候,曾经连续一个月在公司打地铺睡觉。
因此,在前期的技术积累阶段是非常苦逼的,所以我在这里给有想法的程序员们提供一份进阶路线图,主要针对2到5年及以上工作经验的Java开发人员,从广度到深度来说还算比较全面的,里面的技术包涵了Java高并发、分布式、微服务、源码分析、高性能等技术,这些也是目前互联网企业比较常用的技术。(图片可以保存)
一:常见模式与工具
学习Java技术体系,设计模式,流行的框架与组件:
*常见的设计模式,编码必备
*Spring5,做应用必不可少的最新框架
*MyBatis,玩数据库必不可少的组件
![image.png](https://static.studygolang.com/190217/a34d102cc1086f5ff0a1d3c685d478e2.png)
二:工程化与工具
工欲善其事必先利其器,不管是小白,还是资深开发,玩Java技术体系,选择好的工具,提升开发效率和团队协作效率,是必不可少的:
*Maven,项目管理
*Jenkins,持续集成
*Sonar,代码质量管理
*Git,版本管理
![image.png](https://static.studygolang.com/190217/b1c2f1c32012c5f984525ea1aaf0f542.png)
三:分布式架构
高并发,高可用,海量数据,没有分布式的架构知识肯定是玩不转的:
*分布式架构原理
*分布式架构策略
*分布式中间件
*分布式架构实战
![image.png](https://static.studygolang.com/190217/06ab814c7297ceae4f95e21077d487e5.png)
四:微服务架构
业务越来越复杂,服务分层,微服务架构是架构升级的必由之路,Java技术体系,和微服务相关的技术有哪些呢?
*微服务框架
*Spring Cloud
*Docker与虚拟化
*微服务架构
![image.png](https://static.studygolang.com/190217/93eb30396c751dcd758685dbd9b926e3.png)
五:性能优化
任何脱离细节的ppt架构师都是耍流氓,向上能运筹帷幄,向下能解决一线性能问题,Java技术体系,需要了解:
*性能指标体系
*JVM调优
*Web调优
*DB调优
![image.png](https://static.studygolang.com/190217/bde865dc4ff7eb9162a4a6f57372bd08.png)
**28-35岁:形成思维方法论和知识体系的阶段**
当你积累足够的代码量,例如超过10万行代码以后,你应该形成了自己的思维方法论和自己独立的学习技巧,任何新的技术在你眼中都能迅速的看到技术的本质,快速吸收成为你的知识体系的一部分。
到了这个阶段,你会发现你所完全不了解的新技术新知识是非常少的,新技术对你来说也不过是几天时间就把玩的很好的玩具,学习越来越轻松,掌握的知识储备越来越多。
你开始逐渐的不再满足于纯技术领域的探索,而是思考更多的问题:如何将技术转化为生产力;什么技术在什么样的场合能够发挥最大的价值;技术团队应该怎样构建;在一家公司里面,我怎样才能将自己的技术能力最大化的发挥出来?
在这个阶段,积累技术对你来说简直是小菜一碟,你更需要磨练的是思考能力,形成自己的思维方法和知识体系,这将是你帮助你一生的武器。
**35岁以后:了解自己,把自己变现的阶段**
毋须讳言的是,35岁以后你的一线coding能力一定是下降的,你写代码绝对不如25岁的程序员快,效率高。但是这不重要,因为编程只是你整个武器库当中相对最不重要的了,你的经验,你的视野,你的架构能力,你的管理能力,你分析和解决问题的能力已经远远不局限于技术这个领域。
30-35岁这个阶段,最关键的是了解自己。知道自己擅长什么,自己的优势在哪里,怎样才能够最大化自己的价值,同时也知道自己有什么缺陷,怎样避开做自己不擅长的事情,不勉强自己,不让自己处于对自己不利的环境,这是人生的智慧。
一个人能够客观的认识自己是非常困难的,很多人终其一生都没有活明白,既不知道怎样发挥自己的天赋,也拒绝承认自己的缺陷。在35岁以后,要接受一个不完美的自己,知道怎样扬长避短,最大化个人价值。能够做到这一步的程序员,人到中年完全不是程序员生涯的终结,反而会走向个人事业的巅峰。
**一些后话**
在这篇文章当中,我没有提到很多具体的技术人员选择发展道路的问题,例如:
*成长为核心业务的核心骨干
*成长为技术管理层
*转型业务专家,转型做业务咨询顾问
*转型产品经理,产品总监,走产品线
这些都可以,都是一些具体的职业发展道路的选择问题。然而无论选择,只要你始终保持开放的学习心态,不断积累知识和经验,构建个人的知识体系,磨练自己的思考能力,并且时常自省,中年对你来说完全不是危机,而是巅峰。
注:如果对我在文中提到的技术点感兴趣的朋友,可以关注一下我,并且上述提到的源码阅读、分布式架构、微服务、性能优化、阿里项目实战、Devops、并发编程等内容都已经分享在我的裙867924282中,并且每晚我都会在群内直播讲解这些架构技术的底层实现原理,感兴趣的程序员们可以加群找管理员获取。
有疑问加站长微信联系(非本文作者)