工作多少年了,作为Java工程师的你,平时工作已经很忙了,到底该如何进阶,才能快速提高薪资到45万甚至100万呢?
1、 不断增值自己,拥有更多选择权
如果将技术比做一棵树,每学会一门语言,就点亮树上一个果实,你会得越多,技术树的果实就越多,价值就越大。当技术树的果实积累到一定程度,你就能纵向往高阶技术方向晋级,职业发展之路更上一层楼。
2、 互联网没有舒适圈,止步不前便是退步
计算机技术更新迭代快、新技术层出不穷,如果想要成为一个优秀的Java工程师,就要做好随时学习的准备,并持之以恒,这样才能跟上互联网日新月异的发展节奏。
3、 学习是面对竞争、度过中年危机的最好方法
Java工程师是高薪职业,近年来互联网的高速发展下,更是一度成为抢手的热门职业,以至于投身到这个职业的人越来越多,千军万马过独木桥,想要不掉队,唯有努力学习,成为互联网公司高薪争抢的中高端Java工程师,才能不惧寒冬。
还在传统公司写if / for 等简单的代码?那你就真的要被社会淘汰了,工作多年其实你与初级工程师又有多少区别呢?那么作为一个高级Java攻城狮需要突破哪些知识点呢?
1、Java基础技术体系、JVM内存分配、垃圾回收、类装载机制、性能优化、反射机制、多线程、网络编程、常用数据结构和相关算法。
2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式。
3、熟练掌握目前流行开源框架(spring/springmvc/ibatis),并且对其核心思想、实现原理有一定认知。
4、熟悉Oracle、MySQL等数据库开发与设计以及缓存系统Redis或 Memcached的设计和研发。
5、熟悉底层中间件、分布式技术(包括缓存、消息系统、热部署)、消息中间件:ActiveMQ、RabbitMQ、工作流中间件:JBPM。
6、精通shell编程,熟练应用awk、sed、grep、strace、tcudump、gdb等常用命令。
7、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验。
8、对配置管理和敏捷研发模式有所了解(svn,git)。
9、熟悉常见的一些解决方案及其原理:单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、流计算等。
10、能大概知道市面上主流技术的特点及业务瓶颈。
进阶高级Java、架构师必学6大主要技能,包括:数据结构和算法、Java高级特性、Java web核心、数据库、Java框架与必备工具、系统架构设计等,希望能真正帮助到想要从程序员进阶为高级Java、架构师之路的朋友。
1、并发编程
通过深入了解最底层的运作原理,加强逻辑思维,才能编写出高效、安全的多线程并发程序。
包括:集合框架(源码)、工具类、框架Spring、SpringMVC、Mybatis、Shiro、Netty、服务器(tomcat、Nginx)、网络编程、序列化、JVM等。
2、设计模式
设计模式是可复用面向对象软件的基础,学习设计模试是每一位Java工程师进阶的必经之路,灵活地使用设计模式,可以让代码变得简洁、易懂、复用性更高。
常见常用的设计模式有:工厂模式、代理模式等。
3、研发相关的框架工具
对Java程序员来说,下图这些框架与工具经常会用到。工欲善其事必先利其器,熟练掌握并应用这些工具,能够帮助我们更高效、质量的开展工作,譬如,debug、高效去重、代码review等等。
3、分布式架构
随着业务体量及重要性的增大,单体架构模式无法对应大型应用场景,系统也决不允许存在单点故障导致整体不可用,所以只有垂直或水平拆分业务系统,形成一个分布式的架构来消除单点故障,从而提高整个系统的可用性。
包括:分布式Session、分布式缓存、数据库、一致性、负载均衡、消息队列(RabbitMQ、ZeroMQ、Kafka)等
4、微服务
因时因地制宜,选择使用微服务架构的收益将远远大于成本。
规模较少的企业可以考虑适当引入合适的微服务架构,改造已有系统或新建微服务应用,逐步积累微服务架构经验,不要全盘实施微服务架构,综合考量成本与效率、实用性。
Mike在往期发布的架构系列《BAT架构技术专题合集》中,有针对微服务的系列篇,文末有查看地址。
5、JVM性能优化
6、架构关键基础设施