软件工程第一次作业
| 这个作业属于哪一个课程 | 软件工程 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/homework/15710 |
| 这个作业的目标 | 建立技术博客并学习 Markdown 排版,总结个人学习情况,明确未来发展方向,提高软件工程实践能力 |
1 自我介绍
大家好,我是广东工业大学计算机科学与技术专业的一名学生。
从进入大学开始,我逐渐接触计算机相关知识,并对软件开发产生了较大的兴趣。相比于算法研究,我更加喜欢通过编写程序解决实际问题,因此逐渐确定了后端开发方向。
在学习过程中,我主要学习了 Java 后端开发相关技术,包括 Java 基础、数据库以及服务器端程序开发。目前累计 Java 代码量超过10000行,对 Java 语言以及后端开发流程有较深入的学习。
除了学习计算机知识外,我平时也喜欢打羽毛球。运动不仅能够保持身体状态,也让我认识到长期坚持和团队配合的重要性。
目前我的主要技术积累包括:
- Java程序设计;
- MySQL数据库;
- 后端开发相关技术;
- 软件工程基础知识。
我认为自己的优势是目标比较明确,并且愿意投入大量时间进行技术积累。通过持续编写代码,我逐渐形成了自己的编程习惯。
但是,我也认识到自己还有不足。例如对于大型软件项目开发流程、系统架构设计、团队协作开发经验仍然不足,对于软件工程中的需求分析、测试和维护等环节需要进一步学习。
希望通过这门软件工程课程,让自己从单纯完成代码,提升到能够参与完整软件项目开发。
2 现状、经验和计划
(1)专业选择与差距
选择计算机科学与技术专业主要是因为我对软件开发有兴趣。
相比其他专业,计算机领域变化快速,需要不断学习新的技术,这一点吸引了我。
经过前几年的学习,我已经掌握了一定的 Java 编程基础以及后端开发相关知识。
但是距离成为一名合格的软件工程师,还有以下不足:
- 缺少大型项目开发经验;
- 对软件架构设计理解不足;
- 对测试、部署、维护等工程流程了解较少;
- 团队协作开发经验需要加强。
技能调查表
| 技能 | 目前水平(0-9) | 课程结束后目标(0-9) | 提高手段 |
|---|---|---|---|
| Java程序设计 | 7 | 8 | ① 坚持编写Java项目;② 阅读优秀开源代码;③ 学习Java高级特性 |
| MySQL数据库 | 6 | 7 | ① 学习数据库优化;② 掌握索引和事务原理;③ 完成实际项目练习 |
| 后端开发能力 | 6 | 8 | ① 开发完整后端项目;② 学习Spring相关框架;③ 阅读优秀项目源码 |
| Git版本控制 | 3 | 6 | ① 使用Git管理项目代码;② 学习分支管理流程;③ 参与团队开发 |
| 软件设计能力 | 3 | 7 | ① 学习软件设计思想;② 练习模块划分;③ 阅读软件工程相关书籍 |
| 团队协作能力 | 4 | 7 | ① 参与团队项目;② 学习团队开发流程;③ 加强沟通交流 |
| 技术文档写作 | 3 | 6 | ① 坚持写技术博客;② 学习规范文档格式;③ 总结项目经验 |
(2)阅读博客心得
关于师生关系
我认为软件工程课程中的老师更应该扮演指导者的角色。
软件开发不仅需要学习理论知识,更需要大量实践。
老师可以帮助学生发现问题、提供方向,而学生需要主动探索和解决问题。
我希望课程中能够形成一种相互交流的学习关系,而不是单纯完成任务。
关于借鉴与抄袭
软件开发过程中参考资料和开源代码是非常常见的。
优秀的软件工程师不会重复制造已经存在的问题,而是会学习已有经验。
但是借鉴和抄袭的区别在于是否理解和创新。
如果只是复制代码完成任务,没有掌握其中思想,那么即使程序运行成功,也没有真正提高能力。
学习时间计划
除了课堂时间,我计划每周投入至少6小时用于软件工程课程学习。
主要包括:
- 完成课程作业;
- 学习后端开发相关知识;
- 阅读优秀项目源码;
- 总结开发经验。
(3)未来规划
未来希望成为一名后端开发工程师。
相比其他同学,我认为自己的优势:
- Java基础较扎实;
- 有较多代码积累;
- 对后端开发方向兴趣明确。
不足:
- 项目经验不足;
- 对系统架构理解有限;
- 工程规范需要进一步提高。
本学期计划:
- 完成软件工程课程任务;
- 提高Git使用能力;
- 学习软件开发流程;
- 尝试完成完整后端项目。
WOOP计划:软件工程学习
Wish
希望通过本课程掌握软件开发完整流程,能够独立完成一个结构清晰的小型软件项目。
Outcome
如果目标实现,我希望自己不仅能够完成代码开发,还能够理解需求分析、系统设计、测试以及项目维护过程。
未来面对真实项目时,可以更加规范地进行开发。
Obstacles
可能遇到的问题:
- 习惯关注代码实现,忽略文档和设计;
- 项目复杂时容易不知道如何拆分任务;
- 学习时间安排不合理。
Plan
如果不知道如何开始项目:
那么先分析需求,将任务拆分成多个小模块。
如果只关注编码:
那么编码前先完成简单设计。
如果学习过程中时间不足:
那么优先完成核心任务,再逐步完善。
3 提出问题与反馈
问题1:软件工程中的规范是否会降低开发效率?
章节:
第一章 软件工程概述
书中强调软件开发需要规范流程,例如需求分析、设计文档、测试等。
但是在一些小型项目中,开发人员可能认为这些流程会降低开发速度。
那么实际开发中应该如何判断什么时候需要严格遵守工程流程?
问题2:优秀的软件工程师应该更加关注技术深度还是工程能力?
章节:
软件工程师能力相关内容
很多程序员拥有很强的技术能力,但是大型项目更依赖团队合作和工程管理。
因此我想知道:
对于未来的软件工程师来说,技术深度和工程实践能力哪个更加重要?
问题3:数据库设计应该如何提前规划?
章节:
软件设计相关内容
实际开发中,数据库结构往往会随着需求变化不断修改。
如果一开始设计过于复杂,会增加开发成本。
但是设计不足又会导致后期维护困难。
那么数据库设计应该如何在灵活性和稳定性之间取得平衡?
4 前车之鉴
1. 科班学生是否真的学懂计算机?
链接:
https://book.douban.com/subject/4006425/discussion/22803961/
阅读后,我认识到计算机学习不能只停留在课堂。
技术发展速度非常快,如果只学习课程知识,很容易跟不上行业需求。
因此需要主动学习,并通过项目实践提升能力。
2. 软件工程师成长路线
链接:
http://coolshell.cn/articles/4561.html
这篇文章让我认识到,成为优秀程序员不仅需要掌握技术,还需要长期积累。
后端开发涉及数据库、架构、性能优化等多个方面,需要不断学习和实践。
结束语
通过这次博客作业,我重新认识了自己的学习方向。
未来我会继续加强 Java 后端开发能力,同时提升软件工程实践水平。
希望通过这门课程,让自己成为一名更加规范、更具工程能力的软件开发人员。

浙公网安备 33010602011771号