程序员圈子里一直流传着一个魔咒:35 岁的中年危机。

他们说,35 岁程序员的精力和体力会无法避免地下降;他们说,35 岁程序员的丰富经验没有年轻员工的创新活力吃香;他们说,35 岁程序员会面临越来越窄的职业上升通道和日益复杂的社会压力。

这些“传说”令许多程序员每离 35 岁进一步,就更焦虑一分,并迫切寻找打破这一魔咒的方法。

而今天我要介绍的程序员可谓是“不一样的烟火”。非科班出身亲身证明了 35 岁之后的无限可能。

为什么年长的软件开发人员如此稀有?

  • 高昂的薪资

很显然,经验丰富且年龄偏大的软件开发人员拿到的薪资理应高于年轻人(尽管有时未必),而且他们的期望值也会偏高。问题在于需求。软件公司是否需要这些经验丰富的开发人员?他们值得雇佣吗?基本上可以说,答案是否定的。各个公司往往并不需要大量经验丰富的高级开发人员。每个公司都需要面对现实的问题,负担大量高薪的高级开发人员的压力可不小。

  • 换工作

绝大多数开发人员都会找到一种无需编写代码即可赚更多钱的方法。因此,换工作是另一个原因。

  • 永无止境的学习

技术、编程语言和框架的发展日新月异,所以许多年长(甚至年轻)的开发人员都跟不上时代的步伐。随着年龄的增长,人们还要负担很多其他责任。他们往往没有足够的时间来学习新技术。这是这个行业没有太多高龄开发人员的另一个原因。其他行业的专业人士就无需面对如此巨大的学习压力。程序员需要没完没了地学习新技术。

  • 环境

随着时间的流逝,大家会逐渐注意到自己成为了团队/公司的老一辈,周围是一群年轻的程序员。由于代沟以及其他的一些因素,许多人无法与年轻的程序员很好地沟通。他们感到在工作中很孤独。这是另一个原因。

  • 相对较新的行业

与其他行业相比,软件行业比较新。这是最大的原因之一。随着行业的发展成熟,希望我们有机会看到更多年长的开发人员。

那么程序员如何在这个行业生存

按照我工作年限,我应该是没资格来说这件事的,不过周边有不少朋友是CTO,技术VP之类的高管,都是顺利度过“中年危机”的优秀人才,我专门为了这个问题去向他们请教,结合他们的意见,我总结了几条建议如下:

对于许多人来说,编程不仅仅是一份职业。最近,我在阅读一些相关的文章时发现,许多50岁以上,甚至60岁以上的开发人员仍在从事编程。他们中的一些人也有其他的工作机会,但是他们都拒绝了,因为他们喜欢编程。其实,能够从事自己喜欢的工作,是人生一大幸事!但是,无论你喜欢与否,如果想长期从事这个职业,就需要牢牢记住一些忠告。无论你是年轻还是年长,所有程序员都需要记住:时刻努力学习新技术,否则就会被时代抛弃。

紧跟年轻人的思想

除了便宜以外,各个公司喜欢招募年轻开发人员的原因还有两个:

  • 他们渴望学习。他们很好奇,喜欢学习新鲜的事物。他们学习的知识都很先进。
  • 他们可以激发很多新想法,并分享新的观点.
    因此,请紧跟年轻人的思想。只要有年轻的心态,年龄无关紧要。

放下“技术包袱”

许多程序员都有技术“包袱”。请放下包袱,对新技术保持开放的心态。如果某个程序员长期从事某个特定的编程语言,而没有任何其他方面的工作经验,则一些招聘人员会视之为危险信号。

专注本业,做深做强

程序员这个职业和律师,医生,运营等职业不同,它要求从业人员更好的新技术学习能力,反而对于从业人员的经验要求不高。从程序语言来说,2000年初JAVA才刚刚起来,不到10几年的时间已经代替C++成为使用最多的技术语言。而GO,Groovy,Python等后起之秀也快速发展,大有替代Java之势。这就要求这个行业的从业人员需要具备快速的技术学习能力。如果你是一个技术狂人,能够快速的学习新的技术语言,并对枯燥的IT技术甘之如饴,那么持续沿着技术这条路走下去也是一种选择。毕竟每一个行业,总需要能够钻研最底层技术的人。

关于java方面的技术储备

现在竞争这么激烈,只有通过不断学习,提高自己,才能保持竞争力。

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

对于一些不知道学习什么,没有一个系统路线的程序员,这里给大家提供一个大概的思路:



Java成长笔记大致内容如下:

0-1年入门:

  • Java基础复盘(面向对象+Java的超类+Java的反射机制+异常处理+集合+泛型+基础IO操作+多线程+网络编程+JDK新特性)

  • Web编程初探(Servlet+MySQL数据库+商品管理系统实战)

  • SSM从入门到精通(Spring+SpringMVC+Mybatis+商品管理系统实战-SSM版)

  • SpringBoot快速上手(SpringBoot+基于SpringBoot的商品管理系统实战)

  • 零距离互联网项目实战(Linux+Redis+双十一秒杀实战系统)

1-3年高工:

  • 并发编程进阶(并发工具类实战+CAS+显示锁解析+线程池内部机制+性能优化)

  • JVM深度剖析(理解运行时数据区+堆外内存解读+JDK+内存泄漏问题排查+Arthas+GC算法和垃圾回收器+类加载机制等)

  • MySQL深度进阶

  • 深入Tomcat底层(线程模型+性能调优)

3-5年资深:

  • 数据库(调优+事务+锁+集群+主从+缓存等)

  • Linux(命令+生产环境+日志等)

  • 中间件&分布式(dubbo+MQ/kafka、ElasticSearch、SpringCloud等组件)

5-7年架构:

  • 开源框架(Spring5源码+SpringMVC源码+Mybatis源码)

  • 分布式架构(Zk实战+RabbitMQ+RocketMQ+Kafka)

  • 高效存储(Redis+mongoDB+MySQL高可用+Mycat+Sharing-Sphere)

  • 微服务架构(RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)


十万字面经(点击此处获取文档完整版

目录


笔记内容

基础篇



JVM篇


多线程&并发篇



Spring篇


MyBatis篇


SpringBoot篇


MySQL篇


Dubbo篇



Nginx篇



MQ篇


数据结构与算法篇

Linux篇


Zookeeper篇

1
1

Redis篇

`
`

分布式篇

`
`

网络篇


`
`

设计模式


maven篇



ElasticSearch篇


tomcat篇



Git篇


软实力篇


面试突击手册
目录


部分内容展示







限于平台篇幅原因,更多内容展示不了