江湖路远,再见了!软件工程
项目 | 详情 |
---|---|
作业所属课程 | 软件工程 |
作业要求链接 | 作业要求 |
作业目标 | 回顾一学期的软件工程之旅 |
本人学号 | 102201420 |
1. 学期回顾
1.1 回顾你对于软件工程课程的想象
软件工程,看似一门简单的课程,却充满了奇妙与梦幻之旅。一开始,我认为它仅仅只是一本充满了理论的教科书,枯燥乏味,内容深奥,肯定需要投入大量的时间和精力,令我得不偿失,又或许它只是想那种“硬核”课程——记忆很多难懂的公式、枯燥的编程知识和复杂的开发流程,单纯应付考试,过后即忘。但是,随着课程的深入,我意识到,这不仅仅是一门普普通通的专业课,更是一门如爱丽丝梦游仙境般奇妙的梦想旅程。
刚开始,面对诸如“软件需求”、“过程模型”、“设计模式”和“测试”等各种名词,真是令我一筹莫展。每一节课都充满了新的术语和工具,令我头昏脑胀,无处入手。但是,我也发现了那看似深奥难以理解的名词之间,也蕴含着许多看不见的联系,亲手将其在脑海绘制思维路径,仿佛游戏般有趣。
后来,我听学长和老师说,这门课最吸引人的地方是它的实践部分——你可以亲手做项目,动手实践,学到真正的开发技能。这简直令我眼前一亮。从前我们只是拘泥于课本,简单复刻教科书的内容,难道我们也能编写属于自己的项目了吗?终于,不仅仅是坐在课桌前听课,可以动手设计一个属于自己的软件了!这一点让我非常兴奋,也为即将到来的挑战做好了准备。随着学习的推进,我逐渐理解了,软件工程不仅仅是编程,它是一个涵盖需求分析、设计、开发、测试和维护等多个方面的综合性学科。
1.2 回顾你在这门课的投入与产出
在这门课程中,我的投入是多方面的。首先是理论学习,我在课堂上虽然并不总是保持全程专注,但我通过反复的自学和长时间的复习,逐步把课程中涉及的概念消化吸收。特别是在考试前,我几乎连续三天都在紧张复习,争取不漏掉任何一个知识点。这一过程中,我不断加深了对软件工程理论的理解,并从理论层面回顾了我一学期所学知识,收获颇多。
而在实践部分,我投入的时间和精力更多,甚至贡献了人生中为数不多的几次熬夜。在个人作业中,我自学了 Python 和开发小游戏的框架,结对编程时,我与搭档一起学会了微信小程序的开发,通过这些实践,我不仅学会了编程工具的使用,更重要的是我深入理解了环境配置和代码调试的过程。更重要的是,我学会了与人合作,共同研讨、分工、编写程序的烦恼和兴奋、失败的恼怒和成功的喜悦令我难以忘怀。
团队项目中,组长带领大家完成了一个调用大模型的程序开发。作为UI设计和前端开发的主要参与者,我也为了与后端开发成员更好地协同合作,学习了大模型调用、云函数开发、微信 API 使用等多个技术要点。特别是在云开发平台的使用上,极大提升了我们的开发效率,令我震撼不已。最终,虽然在项目过程中有些波折,但我也通过这次经历,提升了对团队协作和项目管理的认识,明白了团队项目不是一个人的战场,分工合作可以事半功倍。
部分产品展示
第一次用AI绘图——“自由飞翔的鸟儿”
第一次编写小程序——以十二生肖和星座为主的类“羊了个羊”小游戏
第一次结对作业——“福友邦”
团队作业启程——负责小组的答辩PPT和主美设计
团队作业原型部分展示——圆满落幕
软件工程实践作业时间统计
作业 | 花费时间 |
---|---|
第一次个人作业 | 5h |
第二次个人作业 | 20h |
第一次结对作业 | 20h |
第二次结对作业 | 50h |
第一次团队作业 | 5h |
第二次团队作业 | 10h |
现场编程作业 | 3h |
团队作业 Beta 冲刺 | 60h+ |
在软件工程课程上花费的时间
时间类型 | 累计时间 | 实际周均时间 | 预计周均时间 |
---|---|---|---|
总计 | 170h | 12h | 6h |
总结
回顾整个学期,虽然投入了大量的时间和精力,但收获也是巨大的。每一次熬夜,每一次解决难题,都是对自己能力的突破。软件工程不仅教会了我如何编写高质量的代码,更重要的是,它让我学会了如何在复杂的任务中保持清晰的思维,如何在团队中与他人合作,如何面对挑战和失败。
1.3 令你印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?
最令我印象深刻的,莫过于alpha冲刺中的一次答辩。那时正好是运动会之后,其他小组的功能几乎都已经完成,而唯独我们组还在忙着调试,解决着层出不求的bug,虽然原型设计和前端框架已经基本搭建完成。但令人意外的是,我们的功能实现和前端模型无法顺利结合,导致答辩时陷入了尴尬的境地。那场答辩,简直就是一场噩梦,面对评委时,我们只能展示一个未完成的原型和空洞的前端,内心充满了焦虑和不安。
通过这次失败,我们小组深刻反思了问题的根源。从团队协作到我个人在与其他组员的协同合作的不足。虽然,我们小组遭遇了很大打击,但令我庆幸的是,在组长的带领下,我们很快调整过来,积极克服了难关。这次经历让我学会了主动与组员沟通协作,在失败中汲取经验,更好地协作团队开展工作,而不是各自为营。
2. 总结收获
2.1 展开说说你的软工实践故事
在个人编程的过程中,我积累了很多宝贵的经验。最重要的一点是,编程需要不断地学习和实践。在遇到问题时,不要轻易放弃,可以通过查阅资料、向他人请教,甚至使用 AI 来帮助解决难题。AI,尤其是像 ChatGPT 这样的工具,成为了我解决问题时的重要助手。每次编程卡住时,只要询问 AI,就能获得新的思路和方法,真的很方便。
结对编程也是一次极为重要的经历。在与同学合作时,我深刻体会到了“团队合作”的重要性,尤其是如果与熟人合作时,可能会面临很多沟通上的挑战。大家都习惯于自己的思维方式,如何协调不同的想法和意见,是我们在结对编程中面临的最大挑战。因此,我建议,尽量避免和过于熟悉的人结对合作,尤其是在面对不同工作节奏和思维方式的情况下。
至于团队项目,我学会了如何更有效地完成自己所负责的模块,如何在项目进展缓慢时及时调整策略,如何在团队成员遇到瓶颈时提供帮助。每一次的项目冲刺,都让我意识到“责任感”和“沟通”在团队项目中的重要性。
2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?
-
GitHub Desktop
作为一个版本控制工具,GitHub Desktop 不仅简化了代码管理的流程,还为团队协作提供了极大的便利。通过它,我可以轻松地管理自己的代码,并与团队成员实时同步,避免了因为版本不同而出现的冲突。 -
Cursor
Cursor 是我在编程过程中发现的一个非常有用的工具。它不仅可以帮助我在写代码时进行智能提示,还能与我进行对话式编程,让我在解决问题时更加高效。虽然它是收费工具,但相对于节省下来的时间和精力来说,还是很值得的。
2.3 技术之外,这门课程还给你带来了哪些方面的提升?
-
使用 AI 的能力
通过这门课程,我学会了如何高效利用 AI 工具,不仅仅是编程时的辅助,甚至在解决问题和创意思维方面,AI 也成为了我的得力助手。 -
管理情绪的能力
在多次熬夜和压力巨大的情况下,我学会了如何管理自己的情绪,保持冷静。无论是遇到技术难题还是团队问题,情绪管理都显得尤为重要。 -
冷静思考的能力
我学会了在复杂的情况下,保持清晰的思维,合理分配时间和资源,避免过度焦虑或做出冲动的决策。 -
找回自我的能力
这门课程让我意识到,面对困境时,我们需要保持耐心、信心和毅力。在不断的尝试和失败中,找回真正的自己,坚信自己能够突破困难。
2.4 如果还有什么想记录的或者想说的,就写在这儿吧!
趁年轻,多去经历吧!无论是学习还是生活,都会给你带来不可预见的收获。加油干,不要放弃,每一个挑战都是成长的机会!
3. 致谢
非常感谢张栋老师的悉心指导,感谢吴越钟老师的耐心教导,也感谢助教们的帮助,同时感谢结对编程以及团队作业的搭档,因为有你们的帮助,我收获了一个美满的大学经验。