How time flies!竟然已经已经大三了...

(正文如下)


一、个人技能梳理与自我评估

1.1 当前技能树

方向 当前情况 自我评价
C/C++ 掌握基本语法、数据结构与算法 较熟悉
Java 掌握基本语法及常见开发方式 较熟悉
Spring Boot 能够进行基础后端开发 掌握
MyBatis 能完成常规数据库访问 掌握
MySQL 掌握基本 SQL 和数据库操作 掌握
Redis 了解缓存及常见使用场景 基础
JUC 掌握基础并发编程知识 基础至中等
Git 能进行基本版本控制 掌握
Kafka 了解消息队列基本概念 入门
Nginx 了解基本配置及使用 入门
软件工程 正在建立系统知识体系 学习中

1.2 感兴趣的方向

目前我比较感兴趣的方向主要有:

Java 后端开发(主要是因为之前听说Java工作市场大,现在貌似也一般般了...)

希望进一步掌握:

  • Spring Boot;
  • Spring MVC;
  • MyBatis;
  • MySQL;
  • Redis;
  • JVM;
  • JUC;
  • 微服务;
  • 分布式系统。

AI 应用开发(多少也算目前的风口..)

随着大模型和生成式 AI 的发展,我也希望进一步学习:

  • LLM API;
  • RAG;
  • Agent;
  • AI 应用工程;
  • AI 与传统 Web 后端的结合。

相比单纯研究模型本身,我目前更感兴趣的是:

如何把 AI 能力真正集成进软件系统。


虽然已经接触了一些后端技术,但回顾自己的学习过程后,我发现自己仍然存在比较明显的短板。

2.1 软件工程知识不够系统

过去更多是通过项目和课程学习具体技术,对需求分析、软件设计、测试、维护等软件生命周期知识缺少系统理解。

2.2 工程化能力不足

会写代码并不意味着能够完成一个高质量项目。

在代码规范、单元测试、项目文档、CI/CD、Code Review 等方面仍然需要继续学习。

2.3 分布式系统实践不足

目前对于微服务、分布式事务、服务治理等内容更多停留在学习阶段,还缺少完整的项目实践。

2.4 团队协作经验需要提升

以前进行课程实验时比较习惯独立完成任务。

而真正的软件项目往往需要多人协作,因此 Git 分支管理、任务拆分、接口约定和 Code Review 等能力也需要进一步培养。


二、代码量与本学期目标

之前跟着网上的教程,用java基本复刻了一个餐饮系统,一个博客系统,

目前个人累计有效代码量约为:

8000 行左右

主要以 Java 后端代码为主。

本学期希望在完成软件工程课程项目的基础上,再增加约:

5000 行有效代码

不过相比单纯追求代码行数,我更希望自己能够改变“以代码数量衡量进步”的思路。

因为:

1000 行混乱的代码,并不一定比 500 行结构清晰、可维护的代码更有价值。

因此,本学期除了增加代码量,我还希望提高:

  • 代码规范;
  • 模块化设计;
  • 测试意识;
  • 文档能力;
  • Git 使用能力;
  • 团队协作能力。

三、本课程最期待学习什么?

我目前最希望通过软件工程课程补上的并不是某一个具体框架,而是工程化思维

具体来说,我比较期待以下内容:

1. 软件生命周期

希望系统理解:

需求分析
   ↓
软件设计
   ↓
编码实现
   ↓
软件测试
   ↓
部署上线
   ↓
运行维护

而不是只停留在“编码”这个环节。

2. 需求分析

希望学习如何把用户一句比较模糊的需求,转化成清晰的功能需求和非功能需求。

3. 软件架构

希望进一步理解分层架构、模块化设计以及不同架构方案背后的取舍。

4. 软件测试

过去写项目时容易出现“自己运行成功,就认为没问题”的情况。

希望通过课程学习单元测试、集成测试等方法,建立更加完整的质量意识。

5. 团队协作

希望通过课程项目真正体验一次多人协作的软件开发流程。


四、AI 生成的软件工程学习指南

为了了解 AI 能否帮助自己制定学习计划,我使用 DeepSeek 生成了一份软件工程课程学习指南。

AI 给出的核心学习路线可以概括为:

软件工程基础
      ↓
软件生命周期
      ↓
需求分析
      ↓
软件设计
      ↓
编码规范
      ↓
软件测试
      ↓
项目管理
      ↓
团队协作
      ↓
项目实践

同时建议结合:

  • Git;
  • JUnit;
  • Docker;
  • Postman;
  • UML;
  • 设计模式;
  • 软件测试;
  • 敏捷开发;

等工具和方法进行学习。


我认为这份学习指南总体上是合理的。

合理之处

第一,知识体系比较完整

它没有把软件工程简单理解成“写代码”,而是覆盖了需求、设计、编码、测试、部署和维护。

这与我目前希望补足的能力比较吻合。

第二,理论和实践结合

AI 提到应该将学习到的理论知识应用到项目中。

这一点对我尤其重要。

因为我过去比较习惯“遇到什么学什么”,容易形成零散的技术知识。

软件工程课程恰好可以帮助我把这些知识串起来。

第三,强调工程质量

例如代码规范、测试、Git、Code Review 等内容,都是我之前容易忽略的部分。


虽然 AI 给出的学习路线比较完整,但它仍然存在一个比较明显的问题:

太“正确”,但不够“具体”。

例如:

学习软件测试。

这句话本身没有问题,但真正执行时还需要进一步回答:

  • 学什么测试?
  • 使用什么工具?
  • 测试哪个项目?
  • 写多少测试?
  • 如何判断自己已经掌握?

因此,我认为 AI 更适合作为:

学习路线的第一版设计者

而不是最终的学习计划制定者。

最终仍然需要结合课程进度、自己的基础以及实际项目进行调整。


五、我对软件工程的一个新认识

完成这次作业之后,我对“软件工程”最大的认识变化是:

软件工程不是教我们如何写更多代码,而是教我们如何把软件做得更可靠、更容易维护、更适合协作。

以前我可能更关注:

“这个功能实现了吗?”

现在开始慢慢关注:

“这个功能为什么这样设计?”

进一步还应该考虑:

“如果需求改变怎么办?”
“如果用户量增加怎么办?”
“如果队友接手怎么办?”
“如果代码出现问题,怎么定位?”
“如何证明这个软件是可靠的?”

这些问题,才真正让我开始从“程序设计”走向“软件工程”。


Always on the way:)

posted on 2026-09-08 22:03  Anna_2333  阅读(16)  评论(0)    收藏  举报