软件工程第一次博客作业
| 这个作业属于哪个课程 | 24级计科7 8班软件工程 |
|---|---|
| 这个作业要求在哪里 | 第一次博客作业 |
| 这个作业的目标 | 建立技术博客并学会使用 Markdown 排版,总结自己的学习现状,制定学习计划,提高软件工程实践能力 |
1 自我介绍
大家好,我是广东工业大学计算机科学与技术专业的一名学生。
进入大学后,我逐渐接触计算机相关知识,并对人工智能方向产生了浓厚的兴趣。在学习过程中,我发现计算机不仅仅是一门理论学科,更重要的是通过技术解决实际问题,因此我一直希望能够将所学知识应用到真实场景中。
大学期间,我主要学习了 C/C++、Python 以及机器学习、深度学习相关知识。目前累计代码量约12000行,其中 C/C++ 代码约5000行,Python代码约7000行。通过不断编写代码,我逐渐提高了自己的程序设计能力和问题分析能力。
在算法学习方面,我参加过蓝桥杯程序设计竞赛,并获得省级二等奖。这段经历帮助我建立了较好的算法基础,也培养了自己面对复杂问题时进行分析和拆解的能力。
在人工智能方向,我也进行了较多实践探索。曾参与中国科学院深圳先进技术研究院相关实习,接触计算机视觉方向的研究和实践。在此过程中,我进一步了解了深度学习模型、图像处理以及计算机视觉算法在实际问题中的应用。
此外,我还参与过多个计算机视觉相关项目,包括高校教师信息数据采集、水下矿石目标检测以及三维重建相关工作。这些经历让我认识到,人工智能不仅需要算法理论基础,也需要数据处理、工程实现以及完整的软件开发能力。
除了技术学习之外,我平时也喜欢运动,例如羽毛球等。运动让我认识到长期坚持的重要性,也培养了自己的自律能力。
我认为自己的优势是学习能力较强,并且愿意主动探索新的技术方向。从算法学习到人工智能实践,我一直尝试通过项目提升自己的能力。
但是,我也认识到自己仍然存在不足。例如,目前对于大型软件项目开发流程、团队协作、软件测试以及工程规范理解还不够深入。相比于完成算法实验,我还需要进一步提高软件设计、代码维护以及项目管理能力。
希望通过软件工程课程的学习,让自己不仅能够实现算法和功能,更能够掌握完整的软件开发流程,成为一名具有工程能力的人工智能方向开发者。
2 现状、经验和计划
(1)专业选择与差距
高中阶段接触编程后,我逐渐发现自己喜欢通过代码解决问题,因此选择了计算机科学与技术专业。
经过大学阶段的学习,我已经掌握了一定的程序设计基础,并接触了人工智能、计算机视觉等方向。
但是距离成为一名合格的IT专业毕业生,我认为仍然存在以下差距:
- 对大型软件项目开发流程理解不足;
- 软件设计和系统架构能力需要提高;
- 团队协作开发经验不足;
- 工程代码规范和项目维护能力需要加强。
技能调查表
| 技能 | 当前水平(0-9) | 课程结束目标(0-9) | 提升方法 |
|---|---|---|---|
| C/C++程序设计 | 6 | 7 | 继续进行算法训练,提高代码质量和编程效率 |
| Python工程开发 | 5 | 8 | 学习工程化开发方法,加强项目实践 |
| 机器学习与深度学习 | 5 | 8 | 学习理论知识,复现优秀论文和开源项目 |
| 计算机视觉能力 | 5 | 7 | 深入学习视觉算法,参与更多实践项目 |
| Git/GitHub使用 | 3 | 7 | 使用Git管理项目,学习团队协作流程 |
| 软件工程能力 | 3 | 7 | 学习需求分析、设计、测试和维护流程 |
| 技术文档与表达 | 3 | 6 | 坚持技术博客记录,提高总结能力 |
(2)阅读博客心得
a) 为什么认真参与课程
阅读相关博客后,我认识到大学学习不能只是为了完成考试。
过去学习过程中,我更多关注算法和技术本身,例如模型训练、代码实现等,但是实际的软件开发不仅需要技术能力,还需要需求分析、团队协作、版本管理以及测试维护能力。
软件工程课程提供了一个接近真实开发环境的机会,通过团队项目可以让我了解企业中的开发流程。
因此,我希望认真参与课程,不只是完成作业,而是真正提高自己的工程实践能力。
b) 对师生关系的理解
我认为软件工程课程中的师生关系应该是一种合作和指导关系。
老师不仅负责传授知识,更重要的是帮助学生发现问题、提供方向。
学生也应该主动学习,而不是被动完成任务。
如果老师布置的作业存在困难,我会选择:
C:向老师和同学请教,花更多时间,把作业全部完成。
c) 关于借鉴和抄袭
软件开发过程中参考资料和优秀代码是很正常的。
例如学习开源项目、阅读论文代码,都属于合理学习方式。
但是借鉴和抄袭的区别在于是否真正理解,并且是否进行了自己的思考。
如果只是复制代码完成任务,而没有理解其中的设计思想,那么实际上并没有获得能力提升。
(3)未来规划
未来希望向人工智能方向发展,成为一名具备算法能力和工程能力的AI工程师。
相比其他同学,我认为自己的优势:
- 有一定算法基础;
- 有人工智能项目实践经历;
- 对计算机视觉方向有较明确兴趣。
不足:
- 软件工程经验不足;
- 大型项目经验较少;
- 系统设计能力需要提高。
本学期计划:
- 学习软件工程开发流程;
- 提高Git和团队协作能力;
- 完善Python工程能力;
- 继续深入学习计算机视觉和人工智能方向。
(4)课程计划
我希望通过软件工程课程,了解真实软件项目开发流程。
过去学习过程中,我更多关注算法和代码实现,但是一个完整的软件项目不仅需要代码,还需要需求分析、设计、测试和维护。
因此,希望通过本课程:
- 学会规范的软件开发流程;
- 提高团队协作能力;
- 提升代码质量;
- 完成一个完整的软件项目。
目前代码量:
- C/C++:约5000行
- Python:约7000行
未来希望在课程结束时:
- 新增代码量约5000行以上;
- 总代码量达到17000行左右;
- 完成至少一个完整的软件工程项目。
本课程学习时间计划:
除课堂时间外,我计划平均每周投入8小时左右用于课程学习,包括阅读资料、完成代码任务、团队讨论以及整理博客。
对于课程投入时间,我选择:
D:比以前课程投入更多时间,直到达到自己的目标。
因为计算机领域发展速度很快,仅依靠课堂学习很难达到实际工作的要求,需要通过持续实践提升能力。
WOOP计划
Wish
希望通过软件工程课程,掌握完整的软件开发流程,并提高自己的工程实践能力。
Outcome
如果目标实现,我希望自己不仅能够完成算法代码,还能够完成需求分析、模块设计、版本管理、测试等完整流程。
未来面对真实项目时,可以更加规范地进行开发。
Obstacles
可能遇到的问题:
- 习惯关注算法效果,而忽略工程细节;
- 项目复杂时容易不知道如何拆分任务;
- 学习任务较多,时间安排不足。
Plan
如果只关注代码实现,忽略文档和设计:
那么在编码前先完成简单需求分析。
如果遇到复杂项目:
那么先拆分成多个小任务,逐步完成。
如果学习时间不足:
那么提前规划时间,保证每周固定投入课程学习。
3 提有质量的问题,给认真的反馈
《构建之法》阅读问题
问题1:软件工程流程是否会影响人工智能项目探索效率?
对应章节:
《构建之法》第1章 软件工程概论。
书中强调软件开发需要经过需求分析、设计、编码、测试等流程。
但是人工智能项目通常需要大量实验,例如模型选择、数据处理方式以及参数调整都需要不断尝试。
我的问题是:
传统软件工程流程应该如何适应人工智能项目这种高度探索性的开发方式?
问题2:代码质量和快速开发之间应该如何平衡?
对应章节:
《构建之法》第3章 软件工程师的成长。
书中强调高质量代码的重要性。
但是在实际开发中,尤其是项目初期,经常需要快速验证想法。
我的问题是:
开发者应该如何在快速实现功能和保持代码质量之间找到平衡?
问题3:团队开发中如何保证代码规范统一?
对应章节:
《构建之法》第4章 两人合作。
不同开发者通常具有不同编码习惯,例如命名方式、代码结构和注释习惯都会不同。
我的问题是:
团队应该如何建立统一规范,并保证所有成员长期执行?
问题4:开源代码使用是否会降低开发者创新能力?
对应章节:
《构建之法》第16章 创新。
现代软件开发大量依赖开源项目,例如深度学习框架和算法库。
合理使用开源资源能够提高开发效率。
但是过度依赖已有代码可能导致缺少独立思考。
我的问题是:
开发者应该如何利用开源资源,同时保持自己的创新能力?
问题5:软件工程能力对于算法工程师是否同样重要?
对应章节:
《构建之法》第2章 软件工程师。
人工智能方向通常更加关注算法效果。
但是实际工作中,算法需要部署到系统中,需要考虑代码维护、团队协作和工程效率。
我的问题是:
对于人工智能工程师来说,软件工程能力应该达到什么程度?
课程反馈
我认为软件工程课程应该更多结合实际项目。
相比单纯学习理论,我希望课程能够让学生经历完整的软件开发过程,包括需求分析、系统设计、代码开发、测试以及项目部署。
在学习过程中,如果遇到问题,我会主动提出问题,并根据老师和同学的反馈不断改进。
4 前车之鉴
《你是否也觉得自己是科班,但没学懂计算机?》
阅读这篇文章后,我最大的感受是计算机学习不能只停留在课堂知识。
大学课程能够帮助我们建立基础,但是成为优秀开发者还需要大量实践。
过去学习过程中,我也发现只学习理论知识是不够的,只有通过实际项目,例如计算机视觉项目、数据处理项目等,才能真正理解技术的应用。
《职业规划就像软件工程》
这篇文章让我认识到职业发展也需要不断规划和迭代。
计算机领域发展速度很快,如果没有明确方向,很容易在学习过程中迷失。
因此,我希望未来继续深入人工智能和计算机视觉方向,同时提高软件工程能力,让自己不仅具有算法能力,也具备工程实践能力。
《世界一流大学怎么教软件工程》
阅读这篇文章后,我认识到优秀的软件工程教育不仅关注知识传授,更关注实践能力培养。
相比只完成课堂任务,我希望通过课程项目获得接近真实开发环境的经验。
GitHub仓库
我的GitHub主页:
https://github.com/wujunlin6666
我的GitHub仓库:
https://github.com/wujunlin6666/wujunlin6666
README个人介绍截图:

总结
通过这次博客作业,我重新认识了自己的学习情况。
过去更多关注算法和技术学习,但是软件工程让我意识到,一个完整的软件不仅需要代码,还需要规范的流程、团队合作以及持续维护。
希望通过本课程,提高自己的工程能力,为未来人工智能方向的发展打下更好的基础。

浙公网安备 33010602011771号