Skip to content

学习路线

@LYS编辑此页面

预防针


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

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

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

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

  • 投递数量:200 +
  • 笔试数量:< 50
  • 面试数量:< 10
  • 意向数量:2

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

而且,在可预估的未来几年内,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