我的软件工程学习路线:从 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.in、System.out混在了一起。
这些错误看起来都很基础,但对我来说反而很有意义。
因为它们让我发现:
真正的问题不是“我完全不会”,而是以前学过的东西没有真正形成稳定的理解和使用能力。
所以这一次,我希望不再只是看懂代码,而是尽量自己先写、先犯错,再根据错误去理解问题。
三、我现在的 Java 学习方式
这次重新学习 Java,我给自己定了一个比较简单的原则:
先自己想、自己写,再看问题出在哪里。
我不希望一开始就直接复制完整代码。
如果代码报错,我会先尝试判断:
- 是语法问题?
- 是变量作用域问题?
- 是循环条件问题?
- 是类型问题?
- 还是自己对某个知识点的理解有问题?
然后再修改。
例如学习数组的时候,我曾经遇到过数组下标和 array.length 的边界问题。
后来才真正理解:
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
这里的 i 最大只能到 array.length - 1。
这种“自己写错 → 找原因 → 修改”的过程,比单纯看一遍教程更容易让我记住。
四、我目前已经重新捡起来的内容
目前已经重新练习过的 Java 基础包括:
- 变量与基本数据类型
- 运算符
- 输入与输出
if / elseforwhile- 数组
StringScanner- 方法
- 方法参数
- 返回值
boolean&&||
在继续学习的过程中,我开始进入 Java 面向对象部分。
目前正在学习:
- 类与对象
new- 构造方法
this- 封装
- getter / setter
后面还会继续补充:
- 继承
- 多态
- 集合
- 异常
- 常用 API
但我不会要求自己把 Java 学到“100%”以后才进入 Spring Boot。
我更希望先达到能够支撑实际开发的程度,然后进入真正的后端项目。
五、GitHub + 技术博客 + 项目展示
这次学习还有一个和以前不太一样的地方:
我不想只在电脑里学习。
我希望把学习过程逐渐沉淀成自己的作品。
所以目前给自己规划了三件事情:
1. GitHub
把具有代表性的学习代码、项目代码整理后提交到 GitHub。
目前已经建立了自己的 Java 学习仓库,并开始上传学习代码。
GitHub:
后面会继续按照学习阶段整理代码,而不是把所有东西杂乱地堆在一个地方。
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 工具辅助整理文章结构,内容基于本人实际学习过程、代码实践以及学习记录整理。
浙公网安备 33010602011771号