Java 打怪升级路线图,大佬是这样炼成的!一定要收藏

技术日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点松哥是深有体会的。

网上的资料多如牛毛,但是很多时候我们缺的不是一个资料,而是一个学习规划!

就是说,做 Java 开发,我们应该从哪里开始学?应该学习哪些东西?应该按照什么样的顺序来学?

松哥大二刚开始自学 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,自己一个人摸索了很长时间,后来才逐步建立起自己的知识体系。

所以每次有小伙伴问我 Java 的学习规划时,我都能理解大家所处的困境。

Java 开发涉及到的领域非常多,对于开发者而言要掌握的东西也非常多,初入行的小伙伴甚至觉得这些要掌握的东西非常杂乱,其实不然!所有要学习的东西都是有内在关联的。

松哥今天就来和大家捋一捋 Java 学习路线图,一起来看看都有哪些东西需要掌握,以及要按照什么样的顺序来学习。

1. 整体规划

Java 企业级开发涉及到的技能点实际上非常多,我将其大致归为以下五类(文末可以获取思维导图):

在这个技术栈的基础上,你可以继续选择走全栈道路或者走大数据方向。

有的小伙伴可能会纠结于要全面还是要精通某一方面,其实这个无所谓好坏,关键是要看你自己。你是想去大厂做一个某一领域的技术专家,还是想自己独当一面,自己喜欢的才是最好的。

话说回来,即使你想钻研某一方面,也不是说这些东西就不用学了,即使精通某一方面,也必然是先广泛涉猎,再慢慢确定自己的方向。

松哥大学自学 Java 的时候就是这样,当我不知道哪些东西重要哪些东西不重要的时候,我就都学,反正大学生有大把时间,我甚至连 Dreamweaver,Fireworks,Flash 三剑客都学了,甚至利用 Dreamweaver 上简陋的功能做了一个动态网站。

这些东西你说学了没用吗?其实不见得。当我学了很多之后,在未来某一天,突然就顿悟了,把这些学过的东西串起来了,有一种醍醐灌顶的感觉。

接下来,这里五大块松哥拆分开来分别给大家介绍。

2. JavaSE

先来看我画的思维导图(文末可以获取思维导图):

JavaSE 这块其实没啥值得说的,基础的东西很多年都没有变化。而且 JavaSE 这块网上也有很多免费教程,大家在公众号【江南一点雨】后台回复 2TB,也有相关的免费视频教程

很多公司,用的 Java8/9/10,实际上还是写的 JDK1.5 的代码,但是这并不意味着我们就不用学习了。Java8/9/10/11 中的一些新特性还是有必要去学习下,特别是现在 WebFlux 逐渐被人们重视,一些从 Java8 就开始萌芽的理念与技术还是很有必要掌握一下的。

3. 数据库

先来看我画的思维导图(文末可以获取思维导图):

作为一名 Java 工程师,数据库的重要性不言而喻,这算是基本功,我们不能老指望着 DBA,毕竟配有 DBA 的公司只是极少数。有句话叫做“SQL 写得好,下班下得早”。

当然数据库也有很多优化方面的问题,但是在大家刚刚开始学习的时候,我其实是不建议去学习数据库优化、主从、集群、读写分离这些东西的,这些可以等到后面学习微服务的时候再去学习比较合适,在刚学习 Java 没多久的情况下,就去学习数据库优化,极有可能让你对开发这条路打退堂鼓。

数据库这块大家在公众号【江南一点雨】后台回复 2TB,也有相关的免费视频教程

4. Web 基础

先来看我画的思维导图(文末可以获取思维导图):

学习是给自己学的,不能偷懒,所以你看我这里列出来的知识点比较多,甚至又一些看起来好像过时的技术。

有人会纠结 EasyUI 要不要学,这个有点古老。我的意见是,如果你是在校大学生,那就学,反正有时间;如果你已经工作了,现在查漏补缺,那可以结合公司的技术栈决定要不要学。

其实 EasyUI 也不能算是边缘化的东西,如果你前端不用 Vue、React 或者 Angular,EasyUI 绝对是一个无法忽视的存在,学习一下 EasyUI ,也能让我们理解整个前端的一个发展过程。

一般来说,Web 基础学完其实是可以自己做一些简单的项目的巩固一下知识点,这块网上也有很多开源项目,松哥这里也给大家推荐一个 CoolMeeting:

  • https://github.com/lenve/CoolMeeting

至于这里列出来的其他技术点,都是常规技术,大家在公众号【江南一点雨】后台回复 2TB,也有对应的免费视频教程

5. 经典框架

先来看我画的思维导图(文末可以获取思维导图):

这里涉及到的东西就比较多了,也是学起来最最漫长的一部分。

这里我主要说说关注的几个问题。

  1. SSH 还要学吗

我们说的 SSH 一般是指 Spring、Struts2 以及 Hibernate。这三个里边,可以确认不用学习的 Struts2,如果你大学刚毕业,进入到一家公司,用 Struts2 做开发,你进去干了三年,Struts2 用的滚瓜烂熟,出来跳槽却发现没有任何优势,所以我不建议大家在 Struts2 上花时间。

至于 Hibernate ,这个我持保留态度。为什么这么说呢?

因为 Hibernate 和 Jpa 之间有着千丝万缕的联系,Spring Data Jpa 结合 Spring Boot,还是有很多公司在用,而如果你掌握了 Hibernate,在后面使用 Jpa 的时候上手很快,关于 Hibernate 和 Jpa 之间的关系,松哥之前专门写过文章介绍:干货|一文读懂 Spring Data Jpa!

  1. 消息中间件学哪个?

就我目前了解到的情况,JavaEE 项目中,RabbitMQ 和 RocketMQ 使用较多,大数据中 Kafka 用的较多,传统的满足 JMS 规范的 ActiveMQ 使用较少。因此小伙伴们可以结合这样一个实际情况选择合适的消息中间件学习顺序。

这个阶段的知识点都搞定了,做个毕设肯定是绰绰有余了,出了学校校门找个实习肯定也够用了。大家在公众号【江南一点雨】后台回复 2TB,也有对应的免费视频教程

6. 分布式/微服务相关

先来看我画的思维导图(文末可以获取思维导图):

这一块,Spring Boot 和 Spring Cloud 是重点,这两个又分别涉及到诸多知识点:

SpringBoot:

SpringCloud:

学习 Spring Boot 的基础依然是 SSM,不建议跳过 SSM 直接学 Spring Boot,这个松哥之前也专门写文章讲过:Spring Boot 要怎么学?要学哪些东西?要不要先学 SSM?

Spring Boot 学完之后,也可以做个项目巩固一下,推荐两个开源项目:

  • https://github.com/lenve/vhr
  • https://github.com/lenve/VBlog

当你搞定了 SSM、搞定了 Redis、搞定了中间件,你再去学习 Spring Boot 就会发现他是如此简单!

至于 Spring Cloud,虽然 Netflix 公司的几个组件已经不打算继续开源了,但是对于大家而言,我觉得还是有必要去学习一下的,毕竟也不难,花不了多少时间,而且学习这些组件可以帮助大家快速建立一个 Spring Cloud 知识体系。

出了这两大块之外,剩下的就不用我多说了。MySQL 的进阶我是建议放在这个阶段学习的,像数据优化、主从搭建、读写分离等,我建议放在这个阶段。

大家在公众号【江南一点雨】后台回复 2TB,也有对应的免费视频教程

7. 小结

上面的都学完之后,你已经可以站在一个比较高的角度来看待 JavaEE 开发了。

这个时候,可以考虑自己是想走 “专” 的道路,当一个技术专家呢,还是想走全栈的道路,以后自己搞个工作室之类的,抑或是想往大数据的方向发展都是可以的。无论小伙伴想走哪个方向,都可以在公众号【江南一点雨】后台回复 2TB,有对应的免费视频教程。

好了,一点点经验和小伙伴们分享,文中涉及到的思维导图大家可以在公众号江南一点雨后台回复 规划 获取下载链接。

好啦,小伙伴们五一快乐哦~

已标记关键词 清除标记
1) 优秀的程序应该是这样的:阅读时,感觉很优雅;新增功能时,感觉很轻松;运行时,感觉很快速,这就需要设计模式支撑。 2) 设计模式包含了大量的编程思想,讲授和真正掌握并不容易,网上的设计模式课程不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神。就会造成这样结果: 知道各种设计模式,但是不知道怎么使用到真实项目。本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,比如 单例模式的8种实现方式、工厂模式的3种实现方式、适配器模式的3种实现、代理模式的3种方式、深拷贝等 3) 如果你想写出规范、漂亮的程序,就花时间来学习下设计模式吧 课程内容和目标 本课程是使用Java来讲解设计模式,考虑到设计模式比较抽象,授课采用 图解+框架源码分析的方式 1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种实现)、抽象工厂模式、原型模式、建造者模式、工厂模式。结构型模式:适配器模式(3种实现)、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式(3种实现)。行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式) 2) 学习目标:通过学习,学员能掌握主流设计模式,规范编程风格,提高优化程序结构和效率的能力。
1.算法是程序的灵魂,优秀的程序在对海量数据处理时,依然保持高速计算,就需要高效的数据结构和算法支撑。2.网上数据结构和算法的课程不少,但存在两个问题:1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了2)说是讲数据结构和算法,但大多是挂羊头卖狗肉,算法讲的很少。 本课程针对上述问题,有针对性的进行了升级 3)授课方式采用图解+算法游戏的方式,让课程生动有趣好理解 4)系统全面的讲解了数据结构和算法, 除常用数据结构和算法外,还包括程序员常用10大算法:二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、马踏棋盘算法。可以解决面试遇到的最短路径、最小生成树、最小连通图、动态规划等问题及衍生出的面试题,让你秒杀其他面试小伙伴3.如果你不想永远都是代码工人,就需要花时间来研究下数据结构和算法。教程内容:本教程是使用Java来讲解数据结构和算法,考虑到数据结构和算法较难,授课采用图解加算法游戏的方式。内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题、算法的时间复杂度、冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、基数排序(桶排序)、堆排序、排序速度分析、二分查找、插值查找、斐波那契查找、散列、哈希表、二叉树、二叉树与数组转换、二叉排序树(BST)、AVL树、线索二叉树、赫夫曼树、赫夫曼编码、多路查找树(B树B+树和B*树)、图、图的DFS算法和BFS、程序员常用10大算法、二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法马踏棋盘算法。学习目标:通过学习,学员能掌握主流数据结构和算法的实现机制,开阔编程思路,提高优化程序的能力。
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页