轻舟已过万重山:2024秋软工实践个人总结
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315 |
这个作业的目标 | 软件工程总经 |
学号 | 102202119 |
一、学期回顾
1.1 对软件工程课程的想象与实际体验
在学期开始之前,我对软件工程课程充满了期待。我想象中的软件工程课程是充满挑战和创新的,它不仅仅是学习编程语言,更是学习如何将一个想法转化为一个完整的软件产品。我期待能够学习到项目管理、团队协作、需求分析、系统设计等全方位的技能。
达到的期待和目标:
- 项目管理: 我学习到了如何规划项目进度,如何分配任务,以及如何跟踪项目进度。这些技能在实际的软件开发中是非常实用的。
- 团队协作: 通过团队项目,我深刻体会到了团队合作的重要性。我们学会了如何沟通、协调,以及如何将每个人的工作整合在一起。
- 需求分析: 我学会了如何与客户沟通,理解他们的需求,并将其转化为具体的功能需求。
- 系统设计: 我掌握了基本的系统设计方法,包括架构设计和数据库设计,这对于构建一个健壮的系统至关重要。
存在的不足:
- 时间管理: 在项目管理中,我发现时间管理是一个挑战。有时候,我们低估了任务的复杂性,导致项目进度延误。
- 技术深度: 虽然我们学习了很多理论知识,但在实际应用中,我发现还需要更多的实践经验来加深对技术的理解。
原因分析:
- 时间管理不足: 可能是因为缺乏实际经验,我们没有很好地估计任务的难度和所需时间。
- 技术深度不够: 可能是因为课程时间有限,我们没有足够的时间去深入学习每一个技术点。
遇到的难题与提升
在这一学期中,我遇到了不少难题,但同时也在这些挑战中得到了提升。
遇到的难题:
- 技术难题: 比如在实现某个功能时,遇到了技术瓶颈,需要查阅大量资料和尝试不同的解决方案。
- 团队协作问题: 有时候团队成员之间的意见不合,导致项目进度受阻。
得到提升的地方:
- 解决问题的能力: 通过解决技术难题,我提升了自己解决问题的能力,学会了如何快速定位问题并找到解决方案。
- 沟通协调能力: 在处理团队协作问题时,我学会了如何更好地沟通和协调,以确保项目顺利进行。
感谢与致谢
在这一学期中,我要特别感谢我们的TA,他们不仅在技术上给予了我们很多帮助,还在心态上给予了我们很多支持。每当我们遇到难题时,他们总是耐心地指导我们,帮助我们找到解决问题的方法。在这里,我想对他们说一声:谢谢你们!
1.2 回顾课程中的投入和产出
- 在软件工程课程实践中我编写了 2000 行左右代码。
- 在 世界第一大厨项目 中我负责的部分是包括:
项目开始前: 数据库初步分析设计和项目最初的ppt介绍
Alpha冲刺: 美食圈和美食广场的初始页面设计,搜索功能前端交互,页面整合
beta冲刺: 菜谱数据库内容的补充及菜谱分类功能的实现
- 我印象最深刻的是最后一次的软件发布会。这场发布会不仅仅是一个展示我们项目成果的机会,更是对我们整个学期努力的一次全面检验。以下是几个关键点,解释了为什么这次发布会令我印象深刻
-
团队合作的巅峰:在准备发布会的过程中,我们团队成员之间的合作达到了前所未有的高度。每个人都清楚自己的职责,并且为了共同的目标而努力。
-
紧张而刺激的准备过程:发布会前的准备过程充满了紧张和刺激。我们需要确保演示的内容无懈可击,同时也要准备好应对可能出现的任何问题。
-
现场表现的压力与满足:在发布会上,我们面对着老师和同学们的期待,这给我们带来了不小的压力。但当我们顺利完成演示并得到积极反馈时,那种满足感是无与伦比的。
-
学习与成长的见证:发布会不仅是我们项目的终点,也是我们学习和成长的见证。它标志着我们从一个对软件工程一知半解的初学者,成长为能够独立完成复杂项目的软件工程师。
-
对未来的启发:通过这次发布会,我对未来的职业生涯有了更清晰的规划。它让我意识到,无论是技术能力还是沟通表达能力,都是未来成功的关键。
这次软件发布会是我在软件工程课程中最难忘的经历,它不仅检验了我们的技术能力,也锻炼了我们的团队协作和沟通能力,让我对软件工程有了更深刻的理解和认识。
作业 | 花费时间(小时) |
---|---|
第一次个人作业 | 4 |
第二次个人作业 | 20 |
第一次结对作业 | 15 |
第二次结对作业 | 30 |
第一次团队作业 | 7 |
第二次团队作业 | 10 |
现场编程作业 | 5 |
团队作业beta冲刺 | 120 |
总结收获
2.1 实践收获
在个人编程、结对编程、现场编程和团队项目实践中,我积累了许多宝贵的经验。以下是我的一些经验总结和实例分析:
- 个人编程:我学会了独立解决问题,例如在第一次个人作业中,我独立完成了一个小型的排序算法实现,这让我对算法有了更深入的理解。
- 结对编程:结对编程让我学会了如何与他人协作,特别是在第二次结对作业中,我们通过有效沟通解决了一个复杂的数据库设计问题。
- 现场编程:现场编程锻炼了我的即时问题解决能力,比如在一次现场编程作业中,我迅速定位并修复了一个导致程序崩溃的bug。
- 团队项目:在团队项目中,我体验到了团队合作的力量,尤其是在团队作业beta冲刺时,我们团队齐心协力,成功在截止日期前完成了项目。
2.2 学到的技能及将来的收获
以下是我在这门课程中学到的一些新技术和工具,以及它们对我的帮助:
- Git和GitHub:这些工具帮助我学会了版本控制和代码协作,极大地提高了代码管理的效率。
- Jira:这个项目管理工具让我学会了如何跟踪项目进度和任务分配。
- Docker:通过使用Docker,我学会了如何容器化应用程序,简化了部署和测试过程。
2.3 除了专业技术之外的提升
除了技术技能的提升,这门课程还在以下方面对我有所帮助:
- 沟通能力:我学会了如何更有效地与团队成员和客户沟通。
- 时间管理:通过项目管理实践,我提高了自己的时间管理能力。
- 团队协作:我在团队项目中学会了如何协作和领导。
2.4 整体收获
这门课程不仅让我学到了软件工程的知识和技能,也让我对未来的职业道路有了更清晰的规划。我特别享受团队合作解决问题的过程,这让我意识到我未来想要成为一个团队领导者。最有趣的课程片段是一次团队头脑风暴,我们想出了一个创新的解决方案来优化我们的项目。遗憾的是,由于时间限制,我们没有机会实现所有的想法。我想对未来Z班的学弟学妹们说:“享受学习的过程,珍惜每一次团队合作的机会,这将是你宝贵的财富。