程序员圈子里一直流传着一个魔咒: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篇
Redis篇
分布式篇
网络篇
设计模式
maven篇
ElasticSearch篇
tomcat篇
Git篇
软实力篇
面试突击手册
目录
部分内容展示