我的软件工程学习路线:从 Java 基础到 Spring Boot、AI Agent 的实践记录

# 前言

这是我的软件工程学习记录,也算是我重新整理自己学习路线的一个起点。

我已经是一名软件工程技术专业的大四学生了。

步入大四,我越来越清楚地意识到:如果想在毕业之后找到一份比较理想的软件开发工作,仅仅把学校里的课程学完是不够的。

更现实的问题是,我虽然以前学过 Java,也接触过不少计算机相关知识,但真正需要自己写代码、做项目的时候,很多基础知识已经变得不够熟练。

所以我决定重新把 Java 基础捡起来。

这次我不想再采用“把所有知识学完再开始做项目”的方式,而是希望围绕实际开发需要,一边学习,一边写代码,一边整理自己的作品。

---

# 一、我现在的学习路线

目前我给自己确定的主要路线是:

**Java 基础 → Spring Boot → MySQL → 后端项目 → 微服务 / Docker → AI Agent / RAG / Tool Calling**

这并不意味着我要把 Java 的所有知识全部学完以后才进入下一阶段。

相反,我希望先掌握能够支撑实际开发的 Java 基础,然后尽快进入 Spring Boot 和项目实践。

目前的大致路线是:

```text
Java 基础
   ↓
类、对象、构造方法、this、封装
   ↓
Java 常用知识补充
   ↓
Spring Boot
   ↓
Controller → Service → Mapper
   ↓
MySQL / CRUD / HTTP
   ↓
完整后端项目
   ↓
GitHub + 技术博客
   ↓
微服务 / Docker
   ↓
AI Agent / RAG / Tool Calling
   ↓
项目整合与作品展示

我希望最终能够形成一个比较完整的能力链,而不是只停留在“看过很多教程”的阶段。


二、为什么从 Java 重新开始

重新开始 Java 并不是因为以前完全没有学过。

相反,我发现自己以前学过的一些知识其实还在,只是很多东西变得不够熟练。

比如最开始重新写代码的时候,我会遇到一些非常基础的问题:

  • System.out.println(i) 放在了变量作用域之外;
  • for 循环的条件写反;
  • return 放进循环,导致循环提前结束;
  • 试图一次给 println() 传入多个数组元素;
  • 不小心把 main 方法写到了另一个方法里面;
  • 遍历数组时把 i <= array.length 写成了错误的边界条件;
  • 刚开始使用 Scanner 时,把 Scanner 类、scanner 对象以及 System.inSystem.out 混在了一起。

这些错误看起来都很基础,但对我来说反而很有意义。

因为它们让我发现:

真正的问题不是“我完全不会”,而是以前学过的东西没有真正形成稳定的理解和使用能力。

所以这一次,我希望不再只是看懂代码,而是尽量自己先写、先犯错,再根据错误去理解问题。


三、我现在的 Java 学习方式

这次重新学习 Java,我给自己定了一个比较简单的原则:

先自己想、自己写,再看问题出在哪里。

我不希望一开始就直接复制完整代码。

如果代码报错,我会先尝试判断:

  • 是语法问题?
  • 是变量作用域问题?
  • 是循环条件问题?
  • 是类型问题?
  • 还是自己对某个知识点的理解有问题?

然后再修改。

例如学习数组的时候,我曾经遇到过数组下标和 array.length 的边界问题。

后来才真正理解:

for (int i = 0; i < array.length; i++) {
    System.out.println(array[i]);
}

这里的 i 最大只能到 array.length - 1

这种“自己写错 → 找原因 → 修改”的过程,比单纯看一遍教程更容易让我记住。


四、我目前已经重新捡起来的内容

目前已经重新练习过的 Java 基础包括:

  • 变量与基本数据类型
  • 运算符
  • 输入与输出
  • if / else
  • for
  • while
  • 数组
  • String
  • Scanner
  • 方法
  • 方法参数
  • 返回值
  • boolean
  • &&
  • ||

在继续学习的过程中,我开始进入 Java 面向对象部分。

目前正在学习:

  • 类与对象
  • new
  • 构造方法
  • this
  • 封装
  • getter / setter

后面还会继续补充:

  • 继承
  • 多态
  • 集合
  • 异常
  • 常用 API

但我不会要求自己把 Java 学到“100%”以后才进入 Spring Boot。

我更希望先达到能够支撑实际开发的程度,然后进入真正的后端项目。


五、GitHub + 技术博客 + 项目展示

这次学习还有一个和以前不太一样的地方:

我不想只在电脑里学习。

我希望把学习过程逐渐沉淀成自己的作品。

所以目前给自己规划了三件事情:

1. GitHub

把具有代表性的学习代码、项目代码整理后提交到 GitHub。

目前已经建立了自己的 Java 学习仓库,并开始上传学习代码。

GitHub:

https://github.com/jiayi-dev/java-learning

后面会继续按照学习阶段整理代码,而不是把所有东西杂乱地堆在一个地方。


2. 技术博客

我也开始在博客园记录自己的学习过程。

博客并不是为了假装自己已经掌握了多少技术,而是希望把:

学了什么 → 遇到了什么问题 → 为什么会错 → 最后怎么理解

真正记录下来。

所以后面的文章会尽量保留一些真实的学习过程。


3. 公网项目展示

等真正完成比较成熟的 Spring Boot 项目之后,我希望把项目部署到公网。

这样最终形成:

学习
 ↓
自己写代码
 ↓
解决问题
 ↓
整理代码
 ↓
GitHub
 ↓
技术博客
 ↓
项目部署
 ↓
简历作品

这也是我目前比较希望建立起来的一套学习闭环。


六、为什么后面还要学习 AI Agent

我现在的路线并不是只学习传统 Java 后端。

在掌握 Java 后端基础之后,我还计划继续学习:

  • 大模型基础
  • RAG
  • AI Agent
  • Tool Calling
  • Docker
  • 微服务
  • AI 应用开发

我目前的理解是:

后端基础和 AI 应用并不是完全割裂的两条路线。

一个真正可以运行的 AI 应用,同样需要后端服务、数据库、接口、权限、部署以及各种工程化能力。

所以我现在更希望先把 Java / Spring Boot 这条工程基础打牢,再逐渐把 AI 能力加入项目中。

最终希望能够做出一些:

Java 后端 + AI 应用

方向的项目。


七、我希望这次学习有什么不同

以前学习的时候,我很容易陷入一种状态:

“这个知识点还没有完全学会,所以不能继续。”

然后一个知识点可能就卡很久。

现在我想换一种方式。

我的目标不是把所有知识都学到完美,而是:

学到够用 → 自己写出来 → 理解问题 → 做项目 → 在项目中继续补知识。

如果某个知识点已经达到可以继续往前走的程度,我就不再无限重复练习,而是进入下一个阶段。

等一个阶段结束之后,再重新独立写一份比较干净的代码,检查自己是不是真的掌握了。


八、这也是给自己的一个记录

现在回头看,我其实并不是从零开始。

我只是需要把以前零散的知识重新连接起来。

而这次我希望记录下来的,不只是最后写出来的漂亮代码,也包括中间那些:

  • 写错的代码
  • 看不懂的问题
  • 对概念的误解
  • 修改错误的过程
  • 最后真正理解的瞬间

因为这些东西,才是真正属于自己的学习过程。

所以,这篇文章就作为这个学习系列的开始。

接下来,我会继续记录自己从 Java 基础,到 Spring Boot,再到后端项目,以及之后 AI Agent / RAG 等方向的学习过程。

希望以后回头看这篇文章的时候,我已经走了很远。


写在最后

目前的我还远远谈不上什么“技术很强”。

但至少这一次,我希望自己不是漫无目的地学习。

而是沿着一条比较清晰的路线:

Java → Spring Boot → 后端项目 → 微服务 / Docker → AI Agent / RAG

一步一步把知识变成代码,把代码变成项目,再把项目变成真正可以展示的作品。

这也是我现在给自己的目标。

从今天开始,认真把这条路走完。

代码仓库

本文学习过程中的相关代码已经同步上传到 GitHub:

GitHub:

https://github.com/jiayi-dev/java-learning

欢迎交流学习,也欢迎参考代码。

本文使用 AI 工具辅助整理文章结构,内容基于本人实际学习过程、代码实践以及学习记录整理。

posted @ 2026-09-04 17:25  jiang-jiayi  阅读(6)  评论(0)    收藏  举报