小白 | 零基础 | 转行 | 六个月 Java 学习路线
作者:三哥
个人网站:https://j3code.cn
本文已存语雀文档,持续更新:👉点我
首先我给本套学习路线制定一些人群范围,为什么要这样做?因为很多人在问我的时候都会交代自己目前的一些情况,有学生、有在职、有跨行等,而每种情况,所需要的路线不同,所以无法一条路线满足大家所有需求。索性我就给本套路线制定一些范围,如果你符合,那么这套路线就适合你。
人群范围 / 要求:
- 小白、学生、在职、转行根据自身情况,都适用。
- 本套路线力求 6 个月学完,脱产学习。
- 主打快速就业。
- 这条路线能带你进入 Java 行业 和 找到低薪资岗位(每个人的高薪定义不同,所以我只说底薪岗位,其实就是勉强能让你找到小公司 Java 开发一类的工作,至于后面是:师傅领进门修行靠个人)
- 适合专科以上学历,最好本科学历。
- 如果以上几点没踩中你的需求,微信 找我讨论。
学习经验/建议
如果你做好准备,要学习下面的视频教程路线,那么我作为自学 Java 的过来人,有些经验想和大家分享一下:
1、作为编程小白第一次碰到编程相关的知识,一时间难以理解,这很正常,非常正常。但,这不是你放弃的理由,你不理解,可以先硬着头皮学。等一个阶段学习完成之后,里面回头复习,如此往复,我觉得应该能逐渐明白。
2、看视频,我最不希望看到的就是,你们光看不练,这没有什么用。特别是前期,一定要先看一遍视频,然后自己手动练习一遍,然后再复习一遍,不要怕动手。编程这玩意,就是熟能生巧,多练。
3、在学习的过程中,我希望你们能在这 6 个月内养成编写笔记的习惯。
- 前期希望你们手写笔记,至少在 Java 基础这个阶段,你们手写笔记
- 后期 Java Web 阶段以后,因为代码量和知识点的复杂,你们可以转变到线上的笔记软件记笔记
- 记住,记笔记是一个非常非常好的习惯!!!
- 笔记软件推荐:Typora、语雀。
4、自学的过程中最难得就是碰到问题,如何处理呢!因为你是小白、自学,所以碰到问题,在你们没有大佬指导的情况下,你们自己要养成独自处理问题的能力,你可以百度、问AI都行,只要是你自己解决的都行。当然,也不是每一个问题,百度、AI 都能解决的,所以这就需要有个能交流的人/群,如果你们需要的话,你们可以加我 wx,我拉你们进交流群,抱团学习。
1、Java 基础(45天)
基础往往都是入门的关键,考虑到很多人没有接触编程一类的开发语言,且 Java 基础本身也没有很多内容,所以为了让你们在入门的第一步学好基础,我给了 45 天的时间。
课程视频推荐如下:
课程书籍推荐如下:
- 《疯狂 Java 讲义》第四版
重点知识点:
我以入行一坤年的经验和大家说说,在工作中会用到哪些 Java 基础。
- JDK环境安装,这是到一个公司工作的第一步
- 基础语法,这是保障公司项目运行的前提
- 流程控制
- 数组,在存储与处理数据的过程中,数组往往扮演者重要角色
- 面向对象 + 高级(类、方法),重中之重,要会定义类,方法
- 常用API,在后续编写业务逻辑的时候,API能节省我们很多时间
- 集合框架,重中之重
- 多线程,只需了解,后面会有专门的 JUC 并发课去深入(其实也是重要的内容)
- IO流、反射、网络、代理,会基本使用就行,做到知道有这个功能,会查文档
2、第一个基础项目(4天)
在学完 Java 基础的时候,我们可以不着急往后学,先来将前面 45 天学的内容通过一个小案例项目来融会贯通一下。
还是那句话,Java 基础一定要弄牢固,多花点时间没关系,重在坚持。
课程视频推荐如下:
- https://www.bilibili.com/video/BV1bv4y1u7Zp
- B 站实在是找不到只有 Java 基础阶段的项目,所以我拿我自己录得视频过来填充一下,这个内容只涉及:面向对象和集合。你们可以先按照样子敲一遍,然后自己再将信息存储通过文件、网络、多线程等这种方式去一步步升级完善。
- 多动手、多思考是一件百利无一害的习惯。
3、Java 8 新特性(3 天)
在 JDK 8 版本中 Java 提供了非常多且强大的新功能,这个是我们需要去了解并掌握的。因为 Java 的版本升级迭代是非常快的,而业界也常流行这样一句话:你升仁你升,我用 Java8。那问题来了,那么多人用 JDK 8,我们能不去了解他带来的新功能嘛!
课程视频推荐如下:
重点知识点:
- Lambda 表达式的运用
- 四大函数式接口
- Stream 常用 API
- 新时间/日期函数
4、MySQL 数据库(7 天)
在企业中,数据能够掌握一个企业的命运,所以数据库的重要不言而喻。在我们开发项目过程中,经常要和数据进行打交道,而数据的存储就会是一个大难题,存哪,如何存。所以这时候我们就要借助数据库这类的产品,来帮我们管理这些数据了,而我们要学的 MySQL 就是干这事的。
课程视频推荐如下:
课程书籍推荐如下:
- 《MySQL5.6从零开始学》
重点知识点:
- 数据库安装,虽然企业中不需要你来安装数据库,但你自己倒腾项目的时候,肯定也要装数据库,所以这个要会。
- 连接数据库的工具要会使用,如:SQLyog
- SQL语法
- DDL、DML、DQL、DCL 相关 SQL 要会写
- 常用函数要知道,可以不记得用法,但要知道有这种函数,方便后续百度
- 复杂连表查
- 进阶部分可以暂时跳过,等后续整体复习的时候再来学习,不然容易劝退你。
5、Maven 构建项目依赖管理(2 天)
在后续的技术学习当中,你会发现创建一个学习的 Demo ,引入对应的技术 jar 包的时候非常困难。这是因为我们手动去管理这些要用到的 jar 包,其实是非常耗费时间,也不利于人工管理的,那么此时 Maven 就出来了。
它能够帮助我们快速、方便的去管理我们项目的模块依赖,外部依赖。
课程视频推荐如下:
重点知识点:
- 没什么好说的,必须掌握,因为企业中的项目都是通过 Maven / Gradle 去管理的(Gradle 大家可以当做课外扩展学习,这里不做说明)
- Maven 安装,配置,IDEA 集成
- Maven 工程创建
- 相关命令的使用
- 父子项目中 Maven 依赖的配置
6、Java Web(8 天)
到达这个阶段,就意味着你渐渐地窥探到了 Java 的核心了。它是承载 Java 基础与后续框架的重要部分,没有 Java 基础,你理解不了 web 阶段的复杂代码逻辑;而没有 web 知识,你就无法理解 SSM 及后续框架提到的 Servlet、过滤器、监听器等内容。
这一阶段没什么好说的,好好学就对了。
课程视频推荐如下:
课程书籍推荐如下:
- 《JavaWeb从入门到精通》
重点知识点:
- 前端基础(HTML、CSS、JS、Vue、Ajax),做了解,不用太深入,但是要知道有这么个东西。
- IDEA 创建 web 项目
- Tomcat 安装
- Servlet 重点,一定要知道这个类的使用,原理。
- Session
- Cookie
- 作用域
- 对于 JSP、Thymeleaf 做了解即可
- Filter 重点,一定要知道这个类的使用,原理。
- Listener 重点,一定要知道这个类的使用,原理。
7、SSM 框架(12 天)
在工作中基本上没有哪个公司会直接用 Java Web 来开发项目,至少我目前还没用碰到过,最次的也是 Java Web + SSM 的项目。所以在学完 Java Web 之后我们需要接着学习 SSM 框架,这样才能更好的去开发项目。
SSM 框架他是三个框架的统称,即:
- Spring
- SpringMVC
- MyBatis
这三个框架都是工作中用到的非常多的项目,可以说咱们 Java 程序员就是 Spring 程序员。从这个话的份量上,我们也不难看出 Spring 等框架的重要性。
当然,在 MyBatis 框架中,常用的还有其升级版,即 MyBatis Plus,这也是要我们要去学习的。
课程视频推荐如下:
- SSM 教程:https://www.bilibili.com/video/BV1Ya411S7aT
- MyBatis Plus:https://www.bilibili.com/video/BV12R4y157Be
- SSM 源码分析
-
- Spring5 源码:https://www.bilibili.com/video/BV1WU4y1k7zR
- Spring MVC源码:https://www.bilibili.com/video/BV1rd4y1i7mq
- MyBatis 源码:https://www.bilibili.com/video/BV1tt4y1u7u3
课程书籍推荐如下:
- 《Spring源码深度解析》
- 《Spring技术内幕 - 深入解析Spring架构与设计原理》
重点知识点:
MyBatis:
- 环境搭建,相关使用
- mapper 接口与映射文件
- 数据库表的 CRUD 操作
- 连表查、映射关系、动态标签、一二级缓存
- 分页
MyBatisPlus:
- 环境搭建,相关使用
- 数据库表的 CRUD 操作
- 特性、代码自动生成、数据自动填充
- 推荐的视频是基于 SpringBoot 来讲的,所以你们可以学到 SpringBoot 的时候再过来学习
Spring:
- 环境搭建,相关使用
- Spring 的 IOC 和 AOP 理解
- Bean 的定义 和 依赖注入
- Bean 的作用域与生命周期及其相关内容
- 编程式事务与声明式事务
- XML 配置,会配置
SpringMVC:
- 环境搭建,相关使用
- Controller 的编写
- RESTful API 的编写
- 文件上传下载
SSM:
- 三个框架的整个,搭建一套完整的 web 开发环境出来
8、第二个 Web 项目(25 天)
现在我知道你们脑子里已经学了很多的技术,但还是无法将这些技术梳理出来,这就是因为你只知道技术的使用,而不知道技术的应用。这就好比你有了内存条、显卡、硬盘、显示器,但你不知道如何将其组装成一个可以使用的电脑。
所以,我们需要用一个 Web 项目,来引导你,什么功能用什么技术,将项目一步步的搭建完善起来。
课程视频推荐如下:
到这个阶段做项目,很多都是需要一些项目资料才能开始往下进行,但是很多视频的项目资料或多或少都是需要付费的。这里我想说,有些钱我们能省则剩,咱们只是学习一些后端相关的技术,而对于一些数据的展示,可以不要用那么华丽的页面展示出来嘛!自己又不是没学过前端基础,咱们完全可以克服困难,直接用 JSON 展示数据,对吧!
要搞清楚咱们得目的:融汇贯通已学的后端技术就可以了。
9、SpringBoot 框架(4 天)
经历过 SSM 阶段的学习,你会发现,TMD 太多的配置文件需要我们来配置了,而且稍有不慎就会导致莫名其妙的错误,工作量和维护时间大大的增大。
所以,我们就需要学习一个更加高效,快速的搭建企业使用的 Web 项目,这时 SpringBoot 就闪亮登场了。目前企业中,一些新创建的 Web 项目,都会选择使用 SpringBoot 来做项目的基础框架。所以,学好它也是我们的又一大目标。
课程视频推荐如下:
重点知识点:
- 环境搭建
- 通过 IDEA 创建 SpringBoot 项目
- 学会 SpringBoot 的重要注解
- yml 配置文件
- starter 整合
- 相关源码的了解:自动装配、启动源码等
10、第三个 SpringBoot 项目(15 天)
在学会了 SpringBoot 之后,市面上就有很多的项目教程可以用来学习了。在前面我找项目教程的时候,很多项目都是基于 SpringBoot 的基础上来进行讲解的,所以我就不能推荐给你们学,这样在另一方面印证了 SpringBoot 的重要性。
那,市面上有很多 SpringBoot 的项目,我找到了下面这个讲的比较好,实现人数也比较多的项目:
依然一样,如果能找到免费资料更好,找不到也不要急着去付费,多找几个平台如:tb、pdd 等去问问有没有更便宜的价格,因为你们还是学习阶段,在前期金钱投入的越少越好(后面进阶,才是花钱的大头)。
11、SpringCloud 微服务框架(20 天)
这个阶段,学的东西就比较杂了,可以说内容很多,你们可能会比较煎熬,或者说有劝退的嫌疑。但是没关系,好在你们看了我这个路线,有些组件可以当做了解,或者现阶段不用学等用到的时候再来学也不迟,关键是,你要知道这是哪个阶段的知识点就行。
课程视频推荐如下:
课程书籍推荐如下:
- SpringCloud微服务架构进阶
重点知识点:
- 了解什么是微服务
- 会构建一个微服务项目
- Gateway 这个组件重点学
- Nacos 组件重点学
- 负载均衡 + OpenFeign 重点学
- Sentinel 组件学会用
- Eureka 组件了解
- 其他的组件不做要求,但碰到它,你要知道这是 SpringCloud 相关的内容即可。
12、第四个微服务项目(35 天)
学到这里,我们要有一个认知就是越庞大的项目,用到的技术也越多越杂,我们不可能会项目中所提到的所有技术。但我们一路走来,应该是学会了如何去学习一个未知的新技术,这是重点。以后在工作中也是,碰到不会的技术,你们就应该有自主去学习的能力,这样才能胜任项目中的功能开发。
微服务项目,在 B 站上有很多,但是我找了一遍之后,只推荐下面这一个。因为这个视频教程,看下来没有漏视频,是全的。而其它的教程大多存在遗漏视频,需要加微信的后续付费手段,所以我就没贴上了,但我觉得学一个就够了,时间也不允许我们学第二个,第三个。
课程视频推荐如下:
这种项目都是非常庞大的,个人开发起来比较吃力,所以我不做要求,你们随意发挥。想学什么部分就学什么部分,只要最终的结果是你能找到一份 Java 开发工作就可以。
13、复习+查缺补漏+背八股文+简历编写
以上学习路线一共 180 天,6 个月左右。
学完了上面推荐的视频教程,你们应该就算是入了 Java 这个行业了,但也仅仅只是入行了而已。个人觉的,这离你们找到工作,还有最后这一小节的路程要走,当然也不乏学习能力非常强悍的,学完 1 - 12 节就找到工作的
那,你们看标题也知道,这一节主要就是复习 + 准备面试。而且我这里没有规定你们所需要学习的时间,这个我没法控制,因为每个人掌握的程度不一样,学习能力不一样,所以我只能让你们自行决定要学多久,直到你们找到工作为止。
1)复习
复习的话,你们就回过头来看看每个阶段学习了那些技术点,能挨个回忆起来并能独自运用到项目中就行。
2)背八股文
这个是没办法避免的,都说面试造火箭,工作拧螺丝。所以我们要先经历一次造火箭的磨难,才能拿到一份中意的工作。那,这里我有收藏一些面试题,你们可以看看:
- 公众号:J3code,回复:Java面试题
- https://pdai.tech/md/interview/x-interview.html
- 尚硅谷 2021 逆袭版 Java 面试题第三季:https://www.bilibili.com/video/BV1Hy4y1B78T
- 阿里大佬透彻讲解 Java 面试 500 道必考题:https://www.bilibili.com/video/BV1yU4y1J7Bb
3)简历编写
简历,就是向别人推销自己的宣传单,如何将自己写的让人注意,这就靠自己发挥了,记住千万别造假,特别是学历。
这里是一篇如何写一份优秀简历的文章,你们可以看看:
4)投简历
平台:BOSS 直聘、智联招聘、内推。
14、持续学习
如果上述路线的视频中没有提到下面这些技术,那么你们也应该在有时间的情况下去了解这些技术,尽量扩展自己的技术广度,至于深度则不是一时间能提升的,而是需要大量的时间、经历、头发来作为代价去提升的。
1)Git
在公司中,每个项目都是多人开发,而多人开发带来的问题就是代码如何管理,那么 Git 就是用来管理项目代码,所以这个很重要。
课程视频推荐如下:
课程书籍推荐如下:
- 猴子都能懂的 Git 入门:https://backlog.com/git-tutorial/cn/
2)Linux
现在企业中的项目,基本都是部署在 Linux 系统中,虽然这个部署不用我们 Java 开发人员去干,但是如果出现一些问题需要去服务器上查日志、看项目状态时,就需要用到 Linux 等基本命令,所以还是需要学一学的。
可以不用学的那么深入,了解 Linux 及一些常用命令即可,后续碰到不会再再百度。
课程视频推荐如下:
课程书籍推荐如下:
- 《鸟哥的 Linux 私房菜 —— 基础篇》
3)Nginx
工作中,用户的请求很大可能就是通过 Nginx 进行转发和负载的,所以我们有必要来学一下它。
课程视频推荐如下:
文档
工具
4)Redis
Redis 最为一个重要的缓存中间件,是我们一定要去了解并掌握的。现在大部分的公司项目,都或多或少会使用到 Redis 进行缓存、认证、限流等操作,而且面试中碰到的概率也很大,所以必须要学。
课程视频推荐如下:
课程书籍推荐如下:
- Redis设计与实现
- 《Redis 实战》
工具
- Redis 在线练习:https://try.redis.io/
5)消息中间件MQ
市面上流行的 MQ 有下面三种:
- RocketMQ
- kafka
- RabbitMQ
MQ 在工作中用到的频率也很高,它主要可以用来进行耦合、异步消息、流量削锋等问题,下面我推荐一个 MQ 的学习教程,其他的你们可以按自己的需要对应的去找。
课程视频推荐如下:
- 【尚硅谷】RocketMQ教程丨深度掌握MQ消息中间件:https://www.bilibili.com/video/BV1cf4y157sz
课程书籍推荐如下:
- RocketMQ分布式消息中间件:核心原理与最佳实践
6)Docker
学习 Docker 的主要目的是为了适应现代云计算和微服务架构的发展趋势,他是实现应用快速打包、部署、运维的重要工具。
当然,现阶段你可以先以了解为主,等后面真要深入云开发的时候,再来深入 Docker。
课程视频推荐如下:
- 【狂神说】Docker 最新超详细版教程通俗易懂:https://www.bilibili.com/video/BV1og4y1q7M4
课程书籍推荐如下:
- 《深入浅出 Docker》:https://www.zhihu.com/pub/reader/119632192
文档
- Docker — 从入门到实践:https://vuepress.mirror.docker-practice.com/
- 菜鸟教程 Docker:https://www.runoob.com/docker/docker-tutorial.html
- 国外 Docker 官方文档:https://docs.docker.com/get-started/
网站
- Docker 中文社区:https://www.docker.org.cn/(opens new window)(强烈推荐,有很多 Docker 技术文章和学习笔记)
- Docker Blog:https://www.docker.com/blog/(opens new window)(国外 Docker 技术博客)
镜像源
- Docker Hub:https://hub.docker.com(opens new window)
- 腾讯软件源:http://mirrors.tencent.com/#/index(opens new window)
- 阿里云 Docker 仓库:https://cr.console.aliyun.com/
7)Netty
在处理高性能、高并发网络通信的需求中,Netty 的知识是必不可少的,它基于 NIO 框架,简化了底层网络编程复杂度,并且能够有效处理百万级并发连接,实现低延迟、高吞吐的网络传输,提升服务器性能,如果你工作的公司对高可用、高性能服务有要求,那么 Netty 是一定要会的。
课程视频推荐如下:
课程书籍推荐如下:
- 《Netty 实战》
文档:
- Netty 4 用户指南:https://www.w3cschool.cn/netty_4_user_guide/(opens new window)
- 源码文档:https://www.bilibili.com/video/BV1mj421S7xr
8)Dubbo
学习 Dubbo 旨在迎合现代企业服务化、分布式架构发展趋势。作为一款优秀的服务治理框架,Dubbo 帮助新入行的开发者轻松实现服务间的高效远程调用与智能管理,促进微服务架构落地。掌握 Dubbo 意味着能构建松耦合、高内聚的分布式系统,实现服务注册发现、负载均衡、容错机制等功能,从而增强系统的稳定性、灵活性和可扩展性,紧跟当今大型企业级项目的技术潮流。
课程视频推荐如下:
- 太厉害了!阿里RPC框架Dubbo从外到内打通,从使用到源码到Dubbo设计再到扩展,学它就够了!
https://www.bilibili.com/video/BV1JK4y1m7yV
课程书籍推荐如下:
- Apache Dubbo 官方文档:https://dubbo.apache.org/zh/
9)分库分表
业界主流的分库分表有下面两个:
- MyCat
- Sharding-JDBC
学习分库分表技术是为了应对企业在大数据时代面临的海量数据存储与访问挑战。随着业务规模扩大,单个数据库容易成为系统瓶颈。掌握分库分表能帮助企业实现数据库的水平扩展,将数据合理切分至多个物理库或表中,有效分散存储压力,提高查询与写入性能,保障高并发场景下的服务稳定性。这对于新入行的开发者而言,是构建可扩展、高可用分布式系统的关键技能之一。
课程视频推荐如下:
- 尚硅谷Mycat核心教程(mycat实战应用)
https://www.bilibili.com/video/BV1WJ411x7bD
- 深入Sharding-JDBC分库分表从入门到精通【黑马程序员】https://www.bilibili.com/video/BV1jJ411M78w
10)JVM + JUC
1)JVM
学习 JVM(Java虚拟机)是深入理解 Java 运行机制、优化应用程序性能的关键。随着企业级应用规模日益庞大,JVM管理的内存分配、垃圾回收、类加载机制等直接影响着Java程序的稳定性和运行效率。掌握JVM 不仅能帮助新入行的开发者排查疑难杂症,还能通过调优提升系统表现,降低资源消耗。尤其是在高并发、大数据环境下,JVM知识是每一位Java工程师必备的核心技能之一。
课程视频推荐如下:
- 尚硅谷宋红康 - JVM 全套教程详解:https://www.bilibili.com/video/BV1PJ411n7xZ
课程书籍推荐如下:
- 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明
2)JUC
JUC 是 Java 语言中的一个并发包的简称,他是用来处理多线程并解决可能出现的并发问题。不管是公司工作,还是面试都是必问,必会的一门技术。
以至于我专门录制了一套 JUC 深入的课程视频。
课程视频推荐如下:
11)Elasticsearch
学习 Elasticsearch 旨在应对现代企业海量数据检索、分析与日志监控等需求。作为一种分布式、高性能的搜索引擎与数据分析引擎,Elasticsearch 以其强大的全文搜索、聚合分析能力及近乎实时的数据处理特色,极大地提升了企业数据的价值挖掘与应用效率。掌握 Elasticsearch 技术的新手开发者能够帮助企业搭建高可用、可扩展的数据服务平台,支持复杂查询、实时统计与可视化展现,契合大数据时代下各类业务场景对数据处理和分析的高标准要求。
目前可以先不学,等公司要你上手实现需求的时候,再来系统学一下。
课程视频推荐如下:
12)分布式任务调度
分布式任务调度有下面三种技术:
- XXL-Job
- Quartz
- Elastic-Job
学习分布式任务调度系统(如 Quartz、XXL-Job、Elastic-Job 等)旨在解决企业日益复杂的定时任务管理和跨节点协同执行难题。在当前的企业环境中,大量数据处理、业务逻辑计算等任务需要高效、准确且灵活地调度执行。掌握分布式任务调度技术能让新入行的开发者有效地协调分布式系统的资源,实现批量处理、定时任务和工作流自动化,进而提升业务处理速度,保障系统稳定性和扩展性,满足企业级应用在高并发、大数据处理等方面的实战需求。
目前可以先不学,等公司要你上手实现需求的时候,再来系统学一下。
课程视频推荐如下:
- 1小时掌握XXL-JOB分布式调度实战-带你掌握java定时任务框架-面试必问,https://www.bilibili.com/video/BV1824y1G7vT
- java教程之精品详解Quartz,企业中热门实用的技能【黑马程序员】,https://www.bilibili.com/video/BV19t41127de
- 黑马程序员Elastic-Job分布式任务调度深入浅出,https://www.bilibili.com/video/BV1cE411h7e2
原文地址:https://blog.csdn.net/qq_40399646/article/details/136347392
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!