这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/homework/15628
这个作业的目标 介绍自己
学号 3124004632
团队主页的网址 https://github.com/origisxu/CE

1.技能树暂无,技术偏好ai方面和c++
2.之前代码量较少,希望上完这门课可以达到比较多的代码量
3.最期待在课程中学习到ai与编程的结合方面的知识
4.一、 核心思想:软件工程 ≠ 写代码
软件工程是关于如何系统地、协作地、可持续地开发和维护软件。

个人能力:写能跑的代码。

工程能力:写别人能看懂、能维护、能协作、不容易崩的代码。

二、 学习路线图(四大阶段)
第一阶段:基石与规范
在写第一行代码前,需要先建立工程的思维框架。

软件开发流程:了解瀑布模型、敏捷开发(Scrum)、DevOps 的基本概念。知道软件开发不只是编码,还有需求、设计、测试、运维。

代码规范与风格:学习命名规范(变量/函数/类)、注释规范、代码格式化。这是团队协作的基础。

版本控制 (Git):这是必须掌握的生存技能。

核心命令:clone, commit, push, pull, branch, merge。

理解:分支管理策略(如 Git Flow 或 GitHub Flow)。

第二阶段:核心工程实践
这是软件工程区别于普通编程的核心部分。

面向对象设计 (OOD) 与设计模式:

原则:SOLID 原则(单一职责、开闭原则等)。

模式:学习几种常用模式,如单例、工厂、观察者、策略模式。

单元测试与自动化测试:

学习编写单元测试(如 JUnit, pytest)。

理解测试金字塔:单元测试 > 集成测试 > UI测试。

了解测试驱动开发(TDD)的理念:先写测试,再写实现。

重构:学习“坏味道”代码的识别以及如何在不改变外部行为的情况下改进内部结构。

第三阶段:协作与项目管理
将个人能力放大为团队能力。

UML(统一建模语言):学习画几种关键图来沟通设计。

必会:用例图、类图、时序图。

构建与持续集成:

了解项目构建工具(Maven, Gradle, Webpack)。

理解 CI/CD 概念:每次代码提交都能自动构建、测试和部署。

文档编写:学习写需求文档、设计文档、README 和接口文档(Swagger)。

第四阶段:进阶与扩展
软件架构:了解常见的架构风格,如分层架构、MVC、微服务。

质量保障:代码审查 (Code Review) 的流程与技巧。

三、 实战建议:如何真正学会?
纸上得来终觉浅,绝知此事要躬行。

模仿优秀开源项目

去 GitHub 找一个 star 多的项目。

别只看代码:重点看它的 README(如何用)、CONTRIBUTING(如何贡献)、Issue(如何管理Bug)、Pull Request(如何审查代码)。

以“团队”形式做项目(哪怕只有你一个人)

发起一个 mini 项目(比如一个记账本)。

强制自己遵守流程:

第1步:写一个简单的需求文档。

第2步:画几张 UML 类图(哪怕后面改了)。

第3步:用 Git 创建仓库,建立 main 和 dev 分支。

第4步:写代码时,顺手把单元测试写了。

第5步:完成功能后,打上 Tag 发布一个版本。

善用工具

项目管理:Jira, Trello, 或者 GitHub Projects。

沟通:Slack, 钉钉。

四、 推荐学习资源
经典书籍:

《代码大全》(非常厚,但涵盖一切)

《人月神话》(讲述工程的复杂性)

《重构:改善既有代码的设计》

《设计模式:可复用面向对象软件的基础》

在线课程:

搜索“软件工程”或“敏捷开发”的入门课程,了解基本概念即可。

实践平台:

GitHub/GitLab

合理且有用