一、学期回顾
1.1回顾我对于软件工程课程的想象
初始印象:
在没上这门课之前,我单纯的以为这就是一门从属计算机专业的基础课程,上了以后我才发现跟我所想完全不同。看到过一句话,“软件工程是计算机专业里考研的‘政治’。”直到临近课程的尾声,我才发现这句话也不是完全正确。因为我怎么都想不到这门课的实践课--仅1学分的课程,它的任务量会这么大。以前像这种1学分的实践课,说实话都是不管怎样水水就过去了,然而这次的课程确实给了我难忘的经历。
达到期待和目标的方面:
1.技术的了解与掌握:通过这门课程,我不仅学习了软件工程的理论知识,还通过实践课深入理解了软件开发的流程和工具。我掌握了需求分析、设计模式、版本控制等关键技术,这些都是软件开发中不可或缺的技能。(之前从未接触过前端和后端的我,学会了用html、css和JavaScript前端三件套制作一个前端页面,后端如何去搭建数据库等)
2.团队合作的机会:在团队项目中,我有机会与同学们合作,共同完成一个软件项目。这让我学会了如何在团队中发挥自己的作用,如何与他人沟通和协调,以及如何在团队中解决冲突。
3.合理的沟通及解决问题的能力: 在课程中,我学会了如何有效地沟通我的想法和解决方案。面对项目中遇到的问题,我能够运用所学的知识,合理地分析问题并提出解决方案。
存在不足的方面及原因:
时间管理: 在课程项目中,我发现自己在时间管理上有所欠缺。(前期自己一个人的工作还好,到了结对和团队合作时就体现出来了)由于对项目的时间估计不足,导致在项目后期感到压力巨大,影响了项目的质量和我的学习效率。
深入理解: 虽然掌握了软件工程的基础知识,但在某些高级主题上,如软件架构和性能优化,我感觉自己的理解还不够深入。这可能是因为课程内容广泛,而我个人在这些领域的实践经验不足。(毕竟之前完完全全没有任何经验,就是一个纯粹的小白)
创新思维: 在团队项目中,我发现自己在创新和提出新想法方面有所不足。这可能是因为我过于依赖现有的解决方案,而没有充分地发挥创造性思维。(对于AI的依赖)
技术应用: 尽管我学习了多种技术,但在实际应用中,我发现自己在将理论知识转化为实践技能方面还有待提高。这可能是因为缺乏足够的实践机会,以及在应用新技术时的自信心不足。
1.2回顾我在这门课程中的投入与产出
在软件工程这门课中我编写了10000行左右的代码。
在团队项目中我参与了"剑来"的设计与开发,我在其中所承担的角色:纯纯在前端当混子,及时能够制作和修改完页面再与后端大佬沟通好需求,有个后端大佬带就是不一样。
软工实践的各次作业分别花费的时间:
作业 | 花费时间 |
---|---|
第一次个人作业 | 3h |
第二次个人作业 | 7h |
第一次结对作业 | 15h |
第二次结对作业 | 70h |
第一次团队作业 | 10h |
第二次团队作业 | 38h |
现场编程作业 | 4h |
团队作业beta冲刺 | 32h |
在软件工程课程上花费的时间:
累计时间 | 实际周均时间 | 预计周均时间 |
---|---|---|
179h | 20h | 10h |
1.3 令你印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?
令我印象最深的是最后一次的团队答辩,在经过了无数的修改,沟通,无数的冲突与理解后,所展示出来的让我欣慰的觉得团队的辛苦努力并没有白费。
二、总结收获
2.1 展开说说我的的软工实践故事
这门课的第一次实践作业就让我不解
我不知道设计自己专属logo,还有搞些花里胡哨的介绍要干嘛(可能是我自己本身就没什么情调吧)
到了第二次实践作业
OK啊,这次作业也是这门课程第一次惊到我了,当我看到要开发一个类似‘羊了个羊’的游戏时,我的内心不知道该怎么想。由于之前完全没有任何经验,我完全不知道该如何下手,最终还是在自己的一步步探索下,做出了自己人生中的第一个游戏‘消了个消’。记忆深刻的一次,我之前还没一次性写过将近400行的代码。(虽然大部分还是靠AI写的,但是AI当之无愧的是人类的好朋友)
第一次结对作业
就是在本次作业中,我首次接触到了墨刀这个原型工具。可能我确实没有什么设计的天赋,页面的布局和美感完全没有,一直都是改了又删和删了又改的状态。但好在我还有队友,合力之下还是把原型搞了出来。
痛不欲生的第二次结对作业--初见端倪
从第一次写一个游戏恰好在中秋,就发现老师(栋哥)似乎喜欢把大的任务留在假期完成?如果第一次是巧合,那么国庆的结对作业就是直接在课上坦白了,“假期怕你们太闲,给你们找点事做”。这句话铸就了大学生涯有史以来最痛苦的一次国庆。在美好的假期生活中,要把第一次结对中设计好的原型实现,如同晴天霹雳般把我和队友雷得外焦里嫩。我们慌不择路地讨论着要怎么实现,要用什么工具,最后决定用“微信开发者工具”,又是第一次接触到的工具。在我们拼命地赶赶赶的努力下,勉强实现了原型。(这是第一次如噩梦般的经历)
开始的最终章
10个人的团队,从未有过的经历。当时就在想10个小白的团队,全是从头开始,这是什么难度。人数越多,意味着任务量就越大,但是效率和人力就越高吗?显然不是的。在大家都是第一次的情况下,困难前所未有的重大。团队之间有意见不合,有冲突,有沟通不起来,这都是需要慢慢磨合的。人确实是有经历后才会有成长。当然成长中的大头还得是AI。第一次的10人团队经历确实让我受益匪浅。
2.2学习到的新技术和工具
墨刀:第一次结对作业时的原型设计好手,它拥有便捷的功能和海量的图标、模板,是一款不错的前端设计工具。
豆包:字节跳动推出的AI对话助手,说实话以前没怎么使用过他,它的图片生成挺好用的。
Github:一个面向开源及私有软件项目的托管平台,其实我真的没用明白它,所以我觉得他是一坨‘shit’。
kimi:月之暗面科技有限公司开发的人工智能助手,伟大的kimi之神啊,你拥有着超强大脑,接受我的膜拜。
openAI:地位毋庸置疑,什么不会的就问它。
2.3 技术之外,这门课程给我的提升
项目管理技能:
我学会了如何规划和管理项目,包括制定时间表、分配资源、跟踪进度和控制预算。这些技能对于任何团队项目的成功至关重要。
需求分析能力:
课程中对需求分析的强调让我学会了如何准确捕捉和理解客户的需求,这是开发满足用户期望的软件产品的关键。
系统思维:
我培养了从宏观角度理解软件系统的能力,包括系统的设计、架构和整体交互。这种思维方式有助于在开发过程中做出更全面的决策。
沟通与协作:
在团队项目中,我提高了与同伴沟通和协作的能力。这包括有效表达自己的想法、倾听他人的意见以及在团队中协调不同的观点。
问题解决技巧:
面对软件开发中的挑战,我学会了如何运用创造性思维和逻辑推理来解决问题。这种能力在解决复杂技术问题时尤为重要。
职业道德和责任感:
软件工程课程也强调了作为软件工程师的职业道德和责任感,包括对软件质量的承诺、对用户隐私的尊重以及对技术进步的持续追求。
终身学习的态度:
我认识到了软件工程领域的快速发展,以及持续学习和适应新技术的重要性。这种态度将帮助我在未来的职业生涯中不断进步。
2.4 如果还有什么想记录的或者想说的,就写在这儿吧!
对于一个我这样普通的大学生,没什么好的绩点,没什么掌握好的专业知识,没有拥有什么优秀的skills,甚至还怕麻烦。这样的一次课程经历也算是让我学会了一些东西,不至于忙前忙后,回头发现自己又是白白度日,什么东西都没学到。对于我这个专业的来说,不主动去学习,一辈子都不可能有什么好的机会了,谁又会去看中一个一无是处的小角色呢。回想起来,三年即将过去,大学确实远不止学习,但是除了必要的学习之外(期末考试?),我又好像什么都没干了,心中没有规划,手头上做的也是一直重复的事--学习、健身、打游戏、睡觉。其实丰富多彩的大学生活对于我来说好像隔了一层纱,大多数我都是重复度日,我也似乎心满意足。其实大学怎么样都无所谓,三年都过去了,还想去改变什么,无非就是坚持不挂科,绩点能高就高点。能考研就考研(快到了),不用去纠结太多事情,再尝试着慢慢去规划,慢慢去生活,麻烦是常态,解决它就好。
三、致谢
感谢学习过程中的所有队友,感谢kimi,感谢chatgpt,感谢倾注过努力的项目所带来的收获。