Java打怪升级成长学习路线图,大佬是这样炼成的!一定要收藏
技术日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点松哥是深有体会的。
网上的资料多如牛毛,但是很多时候我们缺的不是一个资料,而是一个学习规划!
就是说,做 Java 开发,我们应该从哪里开始学?应该学习哪些东西?应该按照什么样的顺序来学?
大二刚开始自学 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,自己一个人摸索了很长时间,后来才逐步建立起自己的知识体系。
所以每次有小伙伴问我 Java 的学习规划时,我都能理解大家所处的困境。
Java 开发涉及到的领域非常多,对于开发者而言要掌握的东西也非常多,初入行的小伙伴甚至觉得这些要掌握的东西非常杂乱,其实不然!所有要学习的东西都是有内在关联的。
今天就来和大家捋一捋 Java 学习路线图,一起来看看都有哪些东西需要掌握,以及要按照什么样的顺序来学习。
1. 整体规划
Java 企业级开发涉及到的技能点实际上非常多,我将其大致归为以下五类(文末可以获取思维导图):
在这个技术栈的基础上,你可以继续选择走全栈道路或者走大数据方向。
有的小伙伴可能会纠结于要全面还是要精通某一方面,其实这个无所谓好坏,关键是要看你自己。你是想去大厂做一个某一领域的技术专家,还是想自己独当一面,自己喜欢的才是最好的。
话说回来,即使你想钻研某一方面,也不是说这些东西就不用学了,即使精通某一方面,也必然是先广泛涉猎,再慢慢确定自己的方向。
松哥大学自学 Java 的时候就是这样,当我不知道哪些东西重要哪些东西不重要的时候,我就都学,反正大学生有大把时间,我甚至连 Dreamweaver,Fireworks,Flash 三剑客都学了,甚至利用 Dreamweaver 上简陋的功能做了一个动态网站。
这些东西你说学了没用吗?其实不见得。当我学了很多之后,在未来某一天,突然就顿悟了,把这些学过的东西串起来了,有一种醍醐灌顶的感觉。
接下来,这里五大块松哥拆分开来分别给大家介绍。
2. JavaSE
先来看我画的思维导图(文末可以获取思维导图):
JavaSE 这块其实没啥值得说的,基础的东西很多年都没有变化。
很多公司,用的 Java8/9/10,实际上还是写的 JDK1.5 的代码,但是这并不意味着我们就不用学习了。Java8/9/10/11 中的一些新特性还是有必要去学习下,特别是现在 WebFlux 逐渐被人们重视,一些从 Java8 就开始萌芽的理念与技术还是很有必要掌握一下的。
3. 数据库
先来看我画的思维导图(文末可以获取思维导图):
作为一名 Java 工程师,数据库的重要性不言而喻,这算是基本功,我们不能老指望着 DBA,毕竟配有 DBA 的公司只是极少数。有句话叫做“SQL 写得好,下班下得早”。
当然数据库也有很多优化方面的问题,但是在大家刚刚开始学习的时候,我其实是不建议去学习数据库优化、主从、集群、读写分离这些东西的,这些可以等到后面学习微服务的时候再去学习比较合适,在刚学习 Java 没多久的情况下,就去学习数据库优化,极有可能让你对开发这条路打退堂鼓。
4. Web 基础
先来看我画的思维导图(文末可以获取思维导图):
学习是给自己学的,不能偷懒,所以你看我这里列出来的知识点比较多,甚至又一些看起来好像过时的技术。
有人会纠结 EasyUI 要不要学,这个有点古老。我的意见是,如果你是在校大学生,那就学,反正有时间;如果你已经工作了,现在查漏补缺,那可以结合公司的技术栈决定要不要学。
其实 EasyUI 也不能算是边缘化的东西,如果你前端不用 Vue、React 或者 Angular,EasyUI 绝对是一个无法忽视的存在,学习一下 EasyUI ,也能让我们理解整个前端的一个发展过程。
一般来说,Web 基础学完其实是可以自己做一些简单的项目的巩固一下知识点,这块网上也有很多开源项目
5. 经典框架
先来看我画的思维导图(文末可以获取思维导图):
这里涉及到的东西就比较多了,也是学起来最最漫长的一部分。
这里我主要说说关注的几个问题。
-
SSH 还要学吗
我们说的 SSH 一般是指 Spring、Struts2 以及 Hibernate。这三个里边,可以确认不用学习的 Struts2,如果你大学刚毕业,进入到一家公司,用 Struts2 做开发,你进去干了三年,Struts2 用的滚瓜烂熟,出来跳槽却发现没有任何优势,所以我不建议大家在 Struts2 上花时间。
至于 Hibernate ,这个我持保留态度。为什么这么说呢?
因为 Hibernate 和 Jpa 之间有着千丝万缕的联系,Spring Data Jpa 结合 Spring Boot,还是有很多公司在用,而如果你掌握了 Hibernate,在后面使用 Jpa 的时候上手很快.
-
消息中间件学哪个?
就我目前了解到的情况,JavaEE 项目中,RabbitMQ 和 RocketMQ 使用较多,大数据中 Kafka 用的较多,传统的满足 JMS 规范的 ActiveMQ 使用较少。因此小伙伴们可以结合这样一个实际情况选择合适的消息中间件学习顺序。
6. 分布式/微服务相关
先来看我画的思维导图(文末可以获取思维导图):
这一块,Spring Boot 和 Spring Cloud 是重点,这两个又分别涉及到诸多知识点:
SpringBoot:
SpringCloud:
学习 Spring Boot 的基础依然是 SSM,不建议跳过 SSM 直接学 Spring Boot.
Spring Boot 学完之后,也可以做个项目巩固一下,推荐两个开源项目:
-
https://github.com/lenve/vhr
-
https://github.com/lenve/VBlog
当你搞定了 SSM、搞定了 Redis、搞定了中间件,你再去学习 Spring Boot 就会发现他是如此简单!
至于 Spring Cloud,虽然 Netflix 公司的几个组件已经不打算继续开源了,但是对于大家而言,我觉得还是有必要去学习一下的,毕竟也不难,花不了多少时间,而且学习这些组件可以帮助大家快速建立一个 Spring Cloud 知识体系。
有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!
欢迎关注微信公众号:码邦主