Skip to content

学习路线

@LYS编辑此页面

预防针


恭喜你!选择了 Java 后端开发路线,你的未来指定是:

学 Java 的这辈子是有了,因为后端 Java 死路一条,尤其是(客观的讲)在学历劣势的情况下。

虽然没有具体的数据统计,但是纵观整个 Java 后端找工作的历史难度,放在整个计算机行业都是相当炸裂的存在。

以我自己 2024 年秋招投递 Java 后端岗位为例,从 2024/08 开始投递,到 2024/11 结束:

  • 投递数量:300 +
  • 笔试数量:< 50
  • 面试数量:< 10
  • 意向数量:4

几乎可以说是刀尖起舞,命悬一线,具体详细的过程可以参考工作经验篇。

而且,在可预估的未来几年内,Java 后端仍是一个竞争非常激烈的赛道,无论是社招还是校招。

Java 学习路线

如果你能接受 Java 巨卷无比的现状,并且立志于在这个赛道卷出属于自己的一片天,那么请继续。

这里我按照自己的学习经验,将 Java 后端路线分为了三个大阶段,在每个阶段我都提供了相关的学习课程和资料。

WARNING

下面也许会出现许多技术名词,但是不要担心,随着学习深入,你会逐渐了解。


基础阶段

这一部分主要是针对 JavaWeb 及其相关内容的学习:

  • 计算机网络相关:TCP 通信、HTTP 协议、Cookie 等。
  • 数据库基础:MySQL 数据库、JDBC 框架、Mybatis 框架。
  • 前端基础:HTML 页面、CSS 样式、JavaScript 脚本。
  • 后端基础:Tomcat 服务器、Servlet 基础。
  • 其他框架和技术:Maven、Lombok、JUL、Thymeleaf。

你可能会有如下疑问:

  • 我只学习后端,为什么还要学前端?
  • 后端基础内容为什么占比这么少?
  • 出现了这么多框架都要掌握吗?要如何学习?

别急,下面一一解答:

  • 在这一部分,我们学习到的是 JSP 开发(一种在 HTML 中嵌入 Java 代码的技术,用于生成动态 Web 页面),因此需要学习部分前端基础内容。
  • 这一阶段,我们需要注重于与后端开发相关的技术和框架,例如数据库基础、计算机网络、前端基础等。这些知识和技术也是后端开发中非常重要的一部分。因此在后端基础中,我们只学习 Tomcat 服务器、Servlet 基础这两个重要内容。
  • 对于上述出现的框架和技术,我们需要重点学习 MySQL、Mybatis、Maven、Lombok 即可,其他技术了解即可,因为 JSP 开发并不是 Java 后端开发最核心的内容。

完成这一部分的学习,基本就具备了独立开发简单网站的能力,实现包括连接数据库获取用户信息、实现简单数据库交互业务、网站登录等功能,以及使用一些比较方便的框架,还有通过 Maven 管理项目依赖等,这些技能是 JavaEE 开发的基础。


提高阶段

现在主流的 Java 后端开发,借助的是极为成熟的 Spring 系列框架,这是一组基于Java的开源框架,用于构建企业级应用程序(JavaEE)。

因此,我们这一部分主要是围绕 Spring 系列框架学习并进行开发:

  • Spring 系列框架:Spring、SpringMVC、SpringSecurity、SpringBoot、SpringDataJPA
  • 中间件:Redis 数据库。
  • 操作系统:Linux
  • 版本控制:Git

通过这一阶段的学习,你就能基本掌握前后端分离架构的 web 项目开发,独立完成项目管理,以及合理使用中间件来实现各种功能。

在你完成这一阶段的学习后,一些计算机设计类竞赛如中国大学生计算机设计大赛、软件杯等都可以尝试去参加。


进阶阶段

来不及为学习完提高阶段而感到自豪,因为马上到来的是进阶阶段——微服务技术相关课程的学习。

微服务架构的引入,可以使得你的项目整体解耦,实现真正的模块化,使应用程序更易于扩展,在高并发领域也有重要应用。

  • SpringCloud组件:Eureka、Loadbalaner、Hystrix、Gateway、Config、Stream、Bus
  • SpringCloud Alibaba 组件:Nacos、Sentinel、Seata
  • 其他中间件:ShardingJDB、消息队列
  • 数据库:MySQL集群方案、Redis集群方案
  • 登录校验:OAuth2.0、单点登录、JWT 校验

经过这一阶段的学习,我们的技术栈将会再次上升一个层次。到了这一个阶段,你基本可以独立去开发一些企业级别的商业项目。

Q&A


JavaWeb 已经过时了,还用学习吗?


随着近年来出现了越来越多的后端开发框架和技术选择,JSP 开发在现在市场开发所占的比重在逐年缩小,但是仍要学习。

相对于目前比较流行的前后端分离开发的模式,JSP 的高耦合性、维护难度大等缺点显然缺乏足够的竞争力,即便如此,仍有较多企业在使用和维护老旧的 JSP 项目,甚至也是大部分学校教学的重点。

我们目前学习 JavaWeb,主要是为了学习和了解计算机网络和后端基础以及 MySQL、Mybatis、Maven 等,这些在之后的学习中仍是十分重要的。


可以跳过 SSM 直接学 SpringBoot 吗?


SSM(Spring + Spring MVC + MyBatis)部分是后续学习 SpringBoot 等高级框架的基础,如果你直接跳过基础去学,大概率学完只会 Curd,而不懂其中的原理。

如果你真的十分着急(距离毕业不到一年想找工作),你可以跳过这一阶段,但是 Spring 的核心思想的学习仍是必不可少的。

能够支撑你走的更远的,一定是扎实的基础。SpringBoot 只是基于 SSM 的脚手架而已,核心原理仍是 SSM。换言之,当你丢掉 SpringBoot 之后就没有办法进行开发的话,你就什么也不是了。

页面历史

Released under the CC BY-NC-SA 4.0 License

Copyright © 2024 HAUE-CS-WIKI

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON开启
开启聚光灯。
OFF关闭
关闭聚光灯。