软件工程课程学习规划与自我评估

软件工程课程学习规划与自我评估


一、个人技能树与技术偏好

1. 编程语言

目前学习和使用过:

  • C / C++
  • Java
  • Python
  • JavaScript

其中目前使用较多的是 C++。

已经学习过 C/C++ 基础语法、指针和引用、类与对象、继承与多态、STL 以及基础的数据结构和算法。

Java 和 Python 目前主要掌握基础使用,Python 在本次 Hugging Face API 作业中用于 Flask 后端开发。


2. Web 开发基础

目前接触过:

  • HTML
  • CSS
  • JavaScript
  • Flask

能够完成简单网页以及基础页面交互,并能够理解前端向后端发送请求、后端处理后返回结果的基本过程。

本次 Hugging Face 作业也是一次将前端和后端知识结合起来的实践。


3. 计算机专业基础

目前已经学习或正在学习:

  • 数据结构与算法
  • 计算机网络
  • 计算机组成原理
  • 操作系统
  • 数据库
  • 软件工程

这些课程让我逐渐建立起对计算机系统和软件开发的基础认识。


4. 开发工具与工程能力

目前接触过:

  • Git
  • GitHub
  • Linux 基础
  • CMake
  • VS Code
  • Flask

目前能够完成一些基础操作,但在完整项目开发、Linux 使用以及工程协作方面仍然需要继续提高。


5. 感兴趣的技术方向

目前比较感兴趣的方向主要包括:

  • C++ / Linux 开发
  • 网络编程
  • 后端开发
  • 人工智能
  • 深度学习
  • 计算机视觉

除了软件开发之外,我目前也在接触 PyTorch、YOLO、目标检测以及计算机视觉相关论文,希望之后能够进一步进行模型实验和论文复现。


二、自我评估

目前已经具有一定的编程基础和计算机专业基础知识,可以完成基础算法题、课程实验以及一些简单项目。

但我认为自己目前最大的不足并不是“没有学过知识”,而是不同知识之间还比较零散。

例如:

学习过 C++
学习过计算机网络
学习过前端
学习过 Python

这些知识单独来看都有一定基础,但是如果真正要求完成一个相对完整的软件项目,就需要将多个方面的知识结合起来。

目前比较欠缺的主要有:

  • 完整项目开发经验;
  • Linux 环境下的实际开发能力;
  • 多线程和网络编程实践;
  • 项目调试能力;
  • Git 版本管理和团队协作经验;
  • 对完整软件开发流程的理解。

因此相比继续单纯增加新的知识点,我更希望后续能够通过项目将已经学习过的内容真正连接起来。


三、代码量现状与目标

目前没有对过去编写的全部代码进行精确统计。

平时的代码主要来自:

  • 数据结构与算法练习;
  • C/C++ 课程实验;
  • Java 学习代码;
  • HTML、CSS、JavaScript 练习;
  • Python 实验;
  • 软件工程课程作业;
  • 一些简单个人项目。

相比单纯追求代码行数,我认为自己目前更加欠缺的是完整项目的代码实践。

因此本学期的目标并不是简单堆积大量代码,而是希望通过课程作业和个人项目完成更多具有完整功能的代码。

计划在本学期软件工程学习过程中累计完成 5000 行以上具有实际功能的代码,重点提高:

  • 项目结构设计能力;
  • 模块划分能力;
  • 调试能力;
  • Git 版本管理能力;
  • 前后端交互能力;
  • 团队协作能力。

希望学期结束后,不只是代码数量有所增加,更重要的是能够真正独立完成一个相对完整的软件项目。


四、对软件工程课程的期待

以前我对“软件工程”的理解比较简单,容易把它理解成“写一个比较大的程序”。

但在实际学习和完成项目的过程中,我逐渐发现软件工程并不只是编码。

真正的软件开发还涉及:

需求分析
→ 系统设计
→ 编码
→ 测试
→ 调试
→ 版本管理
→ 团队协作
→ 维护

因此,我最希望通过这门课程学习以下内容:

1. 学习完整的软件开发流程

希望了解一个软件项目如何从最初的需求逐渐变成一个能够真正运行和使用的软件。

2. 提高项目开发能力

希望能够从过去偏向完成算法题、课程实验的学习方式,逐渐转向能够独立完成较完整的项目。

3. 学习团队协作

希望进一步掌握 Git、GitHub 等工具,并学习多人共同开发项目时如何进行任务分工、代码管理和协作。

4. 提高解决实际问题的能力

实际开发中遇到的问题往往并不会像课本题目一样直接给出答案。

希望通过软件工程课程,提高自己定位问题、查找资料、调试程序以及逐步解决问题的能力。


五、使用 AI 生成软件工程学习指南

为了帮助自己进一步规划本学期的软件工程学习,我使用 AI 生成了一份学习指南。由GPT-5.6 Sol生成

1. 使用的提示词

我向 AI 输入了以下提示词:

我是一名计算机科学与技术专业的大学生,目前已经学习过 C/C++、Java、Python、HTML、CSS、JavaScript、数据结构、计算机网络、操作系统等基础知识,但是完整项目开发经验比较少。

现在正在学习软件工程课程。

请根据我的情况,为我制定一份适合一个学期的软件工程学习指南。

要求:
1. 不要只列理论知识,要包含实际项目实践;
2. 包含 Git 和 GitHub 的使用;
3. 包含需求分析、系统设计、编码、测试和项目维护;
4. 包含团队协作能力;
5. 结合 AI 工具辅助软件开发;
6. 按学习阶段进行规划,并说明每个阶段应该达到什么目标。

2. AI 生成的学习指南

AI 将整个学习过程分为以下几个阶段。

第一阶段:软件工程基础与开发工具

主要学习:

  • 软件生命周期;
  • 软件开发流程;
  • Git 基础命令;
  • GitHub 仓库管理;
  • Markdown 文档;
  • Issue、Commit、Branch 等基本概念。

目标:

能够使用 Git 管理自己的代码,并在 GitHub 上维护一个完整项目。


第二阶段:需求分析与项目设计

主要学习:

  • 如何分析用户需求;
  • 功能需求与非功能需求;
  • 项目模块划分;
  • 数据库和接口设计;
  • 简单 UML 图;
  • 项目目录结构设计。

目标:

在开始写代码之前,能够先对项目进行基本规划,而不是直接开始编码。


第三阶段:项目开发

选择一个规模适中的项目,例如:

  • Web 管理系统;
  • C++ 网络聊天室;
  • 简单 AI 应用;
  • 前后端交互项目。

在项目开发过程中实践:

  • 前后端交互;
  • 数据库;
  • API;
  • Git 分支;
  • 模块化开发;
  • 异常处理。

目标:

完成一个能够正常运行、具有完整基本功能的软件项目。


第四阶段:软件测试与调试

主要学习:

  • 功能测试;
  • 边界测试;
  • 单元测试;
  • 日志记录;
  • Bug 定位;
  • 异常处理。

目标:

从“代码能够运行”进一步提高到“软件能够比较稳定地运行”。


第五阶段:团队协作

通过多人项目进一步实践:

  • Git Branch;
  • Pull Request;
  • Issue;
  • Code Review;
  • 项目分工;
  • 开发文档。

目标:

了解真实开发中多人共同维护一个软件项目的基本过程。


第六阶段:AI 辅助软件开发

合理使用 AI 完成:

  • 查找错误;
  • 解释代码;
  • 生成测试用例;
  • 辅助编写文档;
  • 分析代码;
  • 学习陌生技术。

同时避免完全依赖 AI 直接生成整个项目。

目标:

把 AI 当作提高学习和开发效率的工具,而不是替代自己理解代码。


六、对 AI 学习指南的分析

总体来看,我认为这份学习指南比较符合目前自己的实际情况。

其中对我最有帮助的是,它没有只让我继续学习更多编程语言或者框架,而是将重点放在:

需求
→ 设计
→ 开发
→ 测试
→ 协作

这一完整流程上。

这正是目前自己比较欠缺的地方。

以前学习时比较容易出现一种情况:

学过很多知识点,但是不知道如何将它们组合成一个真正的软件。

例如 C++、计算机网络、Linux 都学过或接触过,但是如果真正要求自己独立完成一个网络程序,仍然需要重新查阅和实践很多内容。

因此我认为 AI 给出的“通过完整项目串联知识”的思路比较合理。

不过这份指南也存在一个问题,就是内容比较理想化。

如果一个学期同时深入学习 Git、需求分析、系统设计、测试、多人协作以及多个项目,时间可能并不够。

因此实际执行过程中,我会根据课程安排进行取舍,优先完成以下几个目标:

  1. 熟练使用 Git 和 GitHub;
  2. 完成至少一个相对完整的软件项目;
  3. 理解基本的软件开发流程;
  4. 提高调试和解决问题的能力;
  5. 体验一次真正的团队协作开发。

七、个人学习计划

结合自己的情况和 AI 给出的建议,本学期计划重点完成以下内容。

第一阶段:巩固工具使用

熟悉:

  • Git
  • GitHub
  • Markdown
  • Linux 常用操作

能够独立完成代码提交、版本管理和项目文档编写。


第二阶段:完成个人项目

计划通过一个规模适中的项目练习完整开发流程。

重点关注:

  • 项目结构;
  • 模块划分;
  • 网络通信或前后端交互;
  • 异常处理;
  • 项目调试;
  • Git 管理。

相比单纯追求项目功能数量,更关注自己是否真正理解每一个模块。


第三阶段:参与团队项目

在软件工程课程团队项目中重点学习:

  • 项目分工;
  • Git 分支;
  • Pull Request;
  • Issue;
  • 代码合并;
  • 团队沟通。

通过团队项目体验多人协作的软件开发过程。


第四阶段:总结与完善

课程后期重新整理自己的项目:

  • 补充 README;
  • 修复已知问题;
  • 整理 GitHub;
  • 总结项目中遇到的问题;
  • 回顾课程中学习的软件工程方法。

最终希望自己能够从:

“会写一些代码”

逐渐转变为:

“能够完成一个比较完整的软件项目”

八、未来三年发展规划

2026—2027

继续巩固数据结构、计算机网络、操作系统、数据库等计算机专业基础,同时加强 Linux、C++、后端开发以及人工智能相关学习。

这一阶段希望完成更多真正能够独立运行的项目,提高编码、调试和工程实践能力。


2027—2028

计划通过课程项目、个人项目、科研学习和实习进一步了解不同技术方向,并逐渐确定自己的主要发展方向。

目前比较感兴趣的方向包括:

  • C++ / Linux 开发;
  • 后端开发;
  • 网络编程;
  • 人工智能与计算机视觉。

同时希望能够通过实习接触真实的软件开发流程。


2028—2029

大学最后阶段希望形成比较完整的个人技术体系,整理 GitHub 项目和个人作品,并积累项目及实习经验。

目前更倾向于毕业后从事计算机相关的软件开发工作。

主要原因是自己相比单纯的理论学习,更喜欢实际编程、项目开发以及解决具体问题的过程。

希望在毕业前能够形成几项真正能够独立完成并且讲清楚的项目,为之后的学习和就业做好准备。


九、总结

通过这次梳理,我发现自己目前并不是完全缺少专业知识,而是缺少将不同知识连接起来的工程实践。

接下来希望在软件工程课程中,不再只是关注“代码能不能运行”,而是开始关注:

  • 为什么这样设计;
  • 项目应该如何组织;
  • 如何与其他人协作;
  • 如何发现和解决问题;
  • 如何让软件更加稳定和易于维护。

希望通过这一学期的学习,让自己的能力从零散的知识点逐渐转变成真正能够应用于项目开发的能力。

posted @ 2026-09-11 20:32  boki233  阅读(4)  评论(0)    收藏  举报