总听到有开发者谈论这个问题,我相信是很多人的痛点:程序员
做为一名普通的开发者,看到别人不是进阿里就是当高管。内心不免有一些艳羡,不甘于现状。想上进的心思是强烈的,殊不知道到底该选择什么样的技术深刻学习。sql
这个问题主要是开发者的发展方向问题,在我看来解决这个问题通常有如下4种方向:数据库
基于产品自己设计模式
要记住公司招人是解决问题的,基于现有问题出发,你们通常内心会有一个大体的解决方案,而这个解决方案一般是由若干种技术组合而成。性能优化
好比说,当单机遇到性能瓶颈而单纯升级硬件的成本过高时,我一般会选择分布式技术,而分布式之下又有zookeeper、dubbo等具体技术。架构
总而言之,针对性地学习比“多而不精”好得多,好钢使在刀刃上。并发
现有技术的拓展框架
若是你是开发者,你必定有在用某种技术了。那么想深刻学习,最行之有效的办法就是深刻现有的技术,并进行拓展学习,造成本身的技术栈。分布式
好比我如今在作视频编解码,那像 ffmpeg 、OpenH26四、WebRTC等等,均可以学。微服务
一段时间后,你会发现本身也能独当一面。
市场需求情况
大部分人都不能免俗,若是你想赚钱,获得更好的发展,能够根据市场需求选择本身的学习方向。
好比如今人工智能的需求较多,前景不错,那你就能够选择Python、TensorFlow等。
不管是选择运用最为普遍的Java仍是在人工智能方面表现不俗的Python,或者其余语言,都要深思熟虑,一旦决定,毫不轻易回头。
兴趣爱好驱动
若是你有感兴趣的技术,那跟着兴趣走就行了,兴趣是最好的老师。
不管你最终选择哪一个方向,何种技术,最重要的仍是坚持不懈,只有持续不断的学习、实践,才能让你真正精通某种技术。
我在这里也给那些想拔高本身的高度殊不知道如何选择方向的程序员们提供一份进阶路线图,主要针对1到5年及以上工做经验的Java开发人员,从广度到深度来讲还算比较全面的,里面的技术包涵了Java高并发、分布式、微服务、源码分析、高性能等技术,这些也是目前互联网企业比较经常使用的技术,那么来详细看看。(图片能够保存)
一:常见模式与工具
学习Java技术体系,设计模式,流行的框架与组件
常见的设计模式,编码必备Spring5,作应用必不可少的最新框架MyBatis,玩数据库必不可少的组件
二:工程化与工具
工欲善其事必先利其器,不论是小白,仍是资深开发,玩Java技术体系,选择好的工具,提高开发效率和团队协做效率,是必不可少的:
Maven,项目管理Jenkins,持续集成Sonar,代码质量管理Git,版本管理
三:分布式架构
高并发,高可用,海量数据,没有分布式的架构知识确定是玩不转的:
分布式架构原理分布式架构策略分布式中间件分布式架构实战
四:微服务架构
业务愈来愈复杂,服务分层,微服务架构是架构升级的必由之路,Java技术体系,和微服务相关的技术有哪些呢?
微服务框架Spring CloudDocker与虚拟化微服务架构
五:性能优化
任何脱离细节的ppt架构师都是耍流氓,向上能指挥若定,向下能解决一线性能问题,Java技术体系,须要了解:
性能指标体系JVM调优Web调优DB调优
六:底层知识
从架构设计,到应用层调优,再深刻了解底层原理,扎实的Java基本功才能让本身变为扫地神僧:
内存模型并发模式线程模型锁细节
【附】相关架构视频资料
资料领取
欢迎工做一到五年的Java工程师朋友们加入Java高级架构:617912068 群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用本身每一分每一秒的时间来学习提高本身,不要再用"没有时间“来掩饰本身思想上的懒惰!趁年轻,使劲拼,给将来的本身一个交代!