工作已经8年有余,这8年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这8年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护和发布当救火队员的苦恼。遂决定梳理一下自己所学的东西,为大家分享一下。
对于开发1-5年的程序员,先简单点,问自己几个问题:
- 你工作几年了,你愿意一直和新入行的新手一样就是个简单的程序员吗?
- 你愿意一直写代码,而不关心其他吗?
- 一个项目的前期需求,设计,后期部署维护,领导找到你,你说咱搞不定,行吗?
程序员不是敲代码的机器。第一年太多东西不懂,你可以一切听从老大的安排,敲敲代码,看看数据库,测试自己和别人的代码;
但是第二年,你还希望这样吗?不可能的,一年的经验你完全可以入行了,是时候该学习怎么进行需求分析,怎么设计数据库,怎么写各类文档,怎么写更好的代码?这是高级程序员的要求!
高级程序员的标配是什么? 月入30K!
什么是高级程序员?
具有分析设计能力,能进行技术攻关,而且具有某行业深厚背景的程序员!
一个项目立项后,你要积极的参与到前期设计中,跟老同志们一道思考分析问题,学习经验!OK,你这就成长啦!
空闲时一定记得要多学习,任何行业从业者都需要不断学习,只有更高效率的工作,才能创造更高的价值。特别是对于程序员来说,一不小心就有可能更不上时代的步伐
,天天互联网寒冬,其实哪有什么寒冬,只是懒惰者的托词而已! 不主动学习,等待你的,只有被淘汰!
30K对应的层级分别是什么?
30K的月薪在BAT等一线大厂实在太普遍了,一般是高级工程师和资深工程师的职位,在阿里是p6~p7左右,在百度是t5左右,腾讯是t2-3左右,在京东是t3-1,美团是p6左右,其他的我不了解。
那么我们开发1-5年的Java程序员, 应该学习哪些知识实现跳槽涨薪?
一、Java筑基(基础)
1.Tomcat
2.Mysql
- MySQL体系结构和存储引擎
- InnoDB存储引擎
- 索引与算法
- 锁
- 事务
- 性能调优
3.设计模式
- 24种设计模式与6大设计原则
4.并发编程
- Java线程
- 线程池
- 生命周期
- 阻塞队列
- CAS
- AQS
5.JVM
- 线程
- JVM内存区域
- JVM运行时内存
- 垃圾回收与算法
- GC
- IO/NIO
- 类加载机制
6.Netty
- Netty原理
- Netty高性能
- NettyRPC实现
- RMI实现方式
- Protoclol Buffer
- Thrift
二、开源框架(SSM框架)
1.Spring
- Spring特点、核心组件、常用模块、主要包、常用注解、第三方结合
- Spring IOC、AOP
2.Spring MVC
3.Mybatis
三、微服务架构
1.Dubbo
- 基于XML配置实现
- Dubbo注册中心
- Dubbo扩展点加载机制
- Dubbo启停原理解析
- Dubbo远程调用
- Dubbo集群容错
- Dubbo扩展点
- Dubbo高级特性
- Dubbo过滤器
- Dubbo注册中心扩展实践
- Dubbo服务治理平台
- Dubbo未来生态
2.SpringBoot
- Spring Boot入门
- 配置文件
- 日志
- Web开发
- Docker
- SpringBoot与数据访问
- 启动配置原理
- 自定义starter
3.SpringCloud
四、分布式
1.分布式限流(Nignx+Zookeeper)
2.分布式缓存(Redis+MongoDB+Memcached)
3.分布式通讯(RabbitMQ+RocketMQ+Kafka)
五、性能优化
1.Java性能调优
2.Mysql调优
3.JVM调优
4.Tomcat调优
总结:
我认为,只有弱者才会说'程序员30之后工作不好找"、"程序员30岁之后就要转行了" s
这个时代,技术技术日新月异是不假,但是说“程序员到了一定年龄在创造力和学习能力上都难以跟上年轻的一代"这真的是扯淡。
现阶段很多人被表象迷惑,感觉Java开发人员并不好找工作。一部分人就误以为市场饱和了,却没考虑到是自身能力不足,而且他们在学习的过程中往往是这样的:
- 对知识点不会筛选,盲目买书看视频,资料堆积如山,什么都不管先学了再说;
- 指望把一本书啃透、一套视频看完,多敲敲写一些就能搞定;
- 什么都学,感觉什么都会,但是在做项目的时候一头雾水;
- 听别人说哪个好就学哪个,盲目跟风;
- 各种乱七八糟的东西都用,只要实现效果其他的都可以忽略,停留在"搬运"阶段;
- 从来没有意识到做项目的规范和标准以及注意事项;
可想而知,这样学习下来的技能达不到企业要求水平,自然而然找不到工作。
在这边,小编在分享一个互联网P8架构师技术图谱,小伙伴们可以根据图谱上的知识点,对照自己的技术进行查漏补缺