软件工程?第一次听见这个词只是觉得有点奇怪,没想到。。。。
软件工程?第一次听见这个词只是觉得有点奇怪,没想到。。。。
软件工程?第一次听到这个名字,只是觉得有点奇怪,那个时候还不知道,这个名字将会占据我的整个青春…命运的齿轮开始转动,多年前的誓言的子弹正中眉心,爱人的眼睛是第八大洋,可能被爱就像中彩票吧,那到底是谁在幸福呢?祝愿我们都能和真诚的人硬碰硬,真诚才是必杀技,轻舟已过万重山。
首先把我们软件工程课程的徽章拜访在最前面~
一,回顾一下这个颠沛流离的一学期
1.1 初衷与期待
有的一个学分水水过了,一天实验课就可以结束,有的学分征战沙场阴暗爬行牺牲睡眠两眼一睁就是写。
我一开始没有想到这个强度这么大,尤其是我们班的强度尤其大,需要交那么多次博客和做那么多次presentation的。而且也是第一次那么多个人一起些同一个作业,一组有10个人,其实我个人觉得超过5个人就非常难以管理,尤其是不是专业团队的公司,大家没有核心一致的利益,有的同学需要高绩点或者自身代码比较强有高兴趣,有的同学只是不想挂科甚至觉得挂科也没什么的,如果把这两种人分到一个组那么软件工程很容易就变成前一种人的作业。不过非常幸运,现在大AI时代,好像写代码的门槛很低,大家只要有梯子有gpt都能写点东西出来,所以总体上我觉得都是互相促进。AI促进了我们代码的能力,同时促进了我们作业量的指数型增长。(反正大家都有ai,写不死你)
不仅如此,代码的质量和效率也是一大挑战。面对复杂的需求和不断变化的项目方向,我不得不频繁地重构和优化代码,确保系统的稳定性和可扩展性。有时候,调试一个看似简单的bug,却需要花费数小时甚至数天的时间,这种反复试验的过程既让人沮丧,又锻炼了我的耐心和问题解决能力。此外,与团队成员的协作也是一大考验,如何集成代码使大家统一也是一个问题,大家的编码风格和思路各不相同,如何在保证代码一致性的同时,又能高效地完成任务,是我们需要不断磨合和调整的地方。



1.2 投入与产出
编写代码
在软工实践课程中,我编写了 15000行 代码。这些代码涵盖了多个模块的开发,包括前端界面、后端逻辑和数据库交互,ai接口的调用。
实际上没数,团队作业应该写了四五千,然后结对作业应该也写了四五千,现场编程也写了好几千,代码行数和不要钱一样写。
团队项目参与
在结对项目中,我参与了 赢合系 的设计与开发,主要承担了 前后端开发 的角色。我们的页面做了很多,做了一个招募队友和寻找意向项目的校园组队平台,这个那个时候组里还没那么多人,情况还没那么复杂,只要写代码就可以,这个是我做得最开心的一次作业。
在团队项目中,我参与了 “研途无忧” 的设计与开发,主要承担了 产品经理 的角色。在项目中,我负责了智能考研助手的开发,各页面代码的串联,博客日志的攥写,ppt的优化修改还有最后的presentation。
这个是我个人做得最累的一次作业。因为组内分工很多东西都需要我协调,包括跟踪大家的进度,催大家提交成果,这个过程非常考验我的生命和心理健康。
也是喝上了精神咖啡(当时改报告改了一整天直接被送温暖)
当时调试了ai助手,然后直接让他说洋文,这个也是很有意思,包括怎么设置性格,怎么样让他读入考生的薄弱点之类的,数据库连大半天
各次作业花费时间
作业类型 | 花费时间 |
---|---|
第一次个人作业 | 30小时 |
第二次个人作业 | 35小时 |
第一次结对作业 | 40小时 |
第二次结对作业 | 45小时 |
第一次团队作业 | 60小时 |
第二次团队作业 | 70小时 |
现场编程作业 | 25小时 |
团队作业beta冲刺 | 50小时 |
累计时间 | 375小时 |
实际周均时间 | 约38小时 |
预计周均时间 | 18小时 |
1.3 印象最深刻的作业
印象最深刻的应该是赢合系报告交的那天,那天真的非常开心,我自己人生意义上真正参与开发的第一个软件。
也是从一开始可能一些不成熟的想法,然后逐渐完善,逐渐根据实际情况进行一定的修改,包括JavaScript合html和css三件套也是那个时候才开始接触才开始学。
一开始连怎么设计元素的格式都不会,后面真的是硬着头皮就是做,原来自己真的可以做到,就是做完那一刻真的长舒一口气。
这个也是我人生意义上真正开发的第一个软件,真的是十天赶英超美一样地写代码
也是觉得自己很牛逼,在这么短时间内javascript从零到直接开发,连接数据库连接服务器还搞了小程序资质审核
二、总结收获
2.1 我的软工实践故事
献祭假期获得代码魂环
请软件工程无偿归还我的中秋国庆和每一个周末,之前周末还是会说要不要出去玩一下,然后长舒一口气终于可以放松了,现在是周末了。终于有空了,那就赶紧把软件工程没写的代码没做的事情没写的报告补一下吧
否则我一气之下将气两下
好脾气好耐心早就女人一生
软件工程结束以后我觉得我可以去居委会上班了
我感觉可能是因为我们小组真的做得太复杂了,功能实现得太多了,导致每个人压力很大,真的我感觉有段时间大家都神经兮兮的,我也崩溃得不行
软件工程我最后悔的就是让我们小组里一个非常细心的同学去做了原型,导致功能做得是非常丰富了,但是我们后面为了补这个饼也是付出我们的生命力
做不完做不好大家会互相埋怨互相指责,都是很正常,这种情绪的产生都是合理的,但是我总结一下,现在想起来就是其实没有必要因为一个作业而闹得很难看,虽然有种事后诸葛亮的感觉,但是感觉作业只是大学的很一小部分,其实做不出来也没什么,也不会有什么惩罚,这几天我和我一个朋友聊天的时候就在说,其实轻舟已过万重山之后再去看当时其实很多情绪可能都是非常愚蠢的
但是我觉得人是否能在高压环境下维持自己的情绪稳定,我个人应该是做不到
一键收摊下班:
使用该技能可以消耗1点睡眠和1点寿命和1点愉悦值,有的时候最痛苦不是写代码,而是对着别人的代码帮别人代码处理bug,对别人的代码逻辑根本搞不懂,要从头到尾理解一遍
主播已经得心应手,因为是负责组内代码各个页面的串联,现已熟悉掌握debug技能,获得收摊小达人称号一枚,好摊子烂摊子照单全收
腱鞘炎和脖颈前倾
因为我们小组的报告基本上也是我进行最后的优化和整理,所以有的时候一坐电脑前就是敲一天,软件工程的代码强度让我怕陈年老病直接复发,因为我们做得东西很多很复杂,要把逻辑理顺很不容易,但是现在想想其实些怎么样根本无人在意,因为感觉除了我自己根本不会有人从头到尾看一遍
传奇答辩王
已经彻底把presentation当作常态化了
基本上每次报告都想着如何能够把我们做的东西展示出来,但是我们做的东西太多了每次都有遗漏,但是还是希望能够把我们的工作和进展展现给大家,并且从中学习。
2.2 学习到的新技术与工具
在漫长的编码与调试过程中,我也接触并掌握了不少新技术和工具,让整个软工实践变得稍微“好玩”了一些:
-
Python & Pygame
用于小游戏开发,让我在枯燥的 CRUD 项目外找到了一丝乐趣,也体验了界面和逻辑如何快速结合。 -
GitHub Copilot
编程效率显著提升,减少了低层重复劳动。但也要当心 AI 可能带来的 bug,不可完全依赖。 -
OpenAI GPT-4
24小时在线的“贴身队友”。不知道怎么写或该怎么优化时,问问 GPT-4 常常能带来新的思路。 -
墨刀
原型设计神器。虽然“原型做得越丰富,后续开发越痛苦”,但它让团队的沟通更加直观、高效。 -
图片处理工具
用于简单的 UI 素材和图标处理。“半路出家”的 PS 技能也算帮了不少忙。 -
微信小程序开发平台 / HBuilder / unicloud 云数据库
后续团队项目常用的前后端协同平台,让部署、展示、联调效率更高,也能贴近真实开发的流程。
以上工具为项目开发带来了许多便利,没有软件工程我看你一辈子都不知道这些开发工具,至少在我毕业工作前根本不会使用,也是被逼上梁山了。
2.3 技术之外的提升
除了编程水平的提高,我在这次“软工实践”中也获得了以下宝贵经验:
-
团队合作与沟通
十个人以上的大组项目,没点“吵架”或者“崩溃”很难收尾。怎么分工、如何催进度、如何让不同诉求的队友达成共识,这些都极其考验大家的协作和耐心。 -
时间管理与抗压能力
每周基本上除了上课和把其他科目的写一写,就是软工的高强度开发,再加上各种博客、PPT、Presentation,极度考验个人时间规划。有时不得不连轴转到深夜,咬牙顶着熬下来。 -
应对突发问题的能力
无论是现场编程还是 Bug 调试,基本属于“打一场遭遇战”。包括面临ddl要替别人处理没写完的代码没做完的事情,我已经习惯了随时随地回小组组员消息处理各种突发事件和情况,我逐渐学会了跳出惯性思维、分块拆问题、不断迭代尝试。对着别人的代码帮忙处理 Bug 虽然头疼,却也日渐熟能生巧。 -
自我管理与情绪调节
在崩溃边缘犹豫过无数次,但最后还是硬扛到结束。当下看似“天崩地裂”,事后再回顾,才发现都是对自我意志和团体默契的打磨。
插入一个我们制作过程一些相关资料的小集合
2.4 额外的感想(比较煽情可以跳过)
如果回望大学的整段时光,恐怕没有哪门课比“软件工程”更能体现“淬炼”二字。它不仅仅是课表上的一个编号,也不再是简简单单地教你如何写函数、搭数据库。它就像是一场漫长而跌宕的冒险,从起点到终点一路跋涉,每一分每一秒都在拷问着你对梦想、对团队、对未来的认知。
我不知道自己若干年后会干什么,可能会去烤小蛋糕也可能会去开一家谷子店卖铁皮,不一定就会敲代码,如果有什么课程让我真正意识到了自己是一名计算机相关专业的学生,那我会说软件工程。
谁说一定要一直敲代码?人生的方向本就因多样化而精彩。但我始终记得,是这门堪称“魔鬼”的课程,把我真正带入了计算机专业的世界,也让我第一次尝到“团队开发”和“落地成真”的滋味。
在软件工程的最初阶段,我几乎是浑浑噩噩地写着基础代码,跟着大流完成功能模块。那时,我并不觉得自己对“专业”这件事有多大的认同感,更多的是机械地追赶ddl。然而,随着课程的推进,当我与团队通宵调试、熬夜改需求、一次次推翻原型重做时,我突然醒悟到——这才是“实战”,这才是真正和行业需求衔接的过程。那种击溃与重生的循环、那种不断敲下键盘却又无限接近崩溃的心态,就像一把把烈火,把我们每一个人都烧得痛苦又充满成长的欲望。
过程中,我们也会互相埋怨,抱怨为什么要做得那么复杂,为什么原型图搞得花里胡哨,导致后面实现几乎要把命搭进去。有时半夜很晚还在那想为什么数据就是上传不到数据库里,脑袋混沌的我,抱着水杯再啃几口零食才能继续“硬扛”下来。当下那种疲惫、焦躁、甚至焦虑,仿佛是整个人在被代码和需求榨干。但偏偏我又能在几个小时后,收到来自同伴发来的“我把bug修好了”的好消息,于是那种胜利的快感立刻就能抚平所有的负面情绪。
等到项目最后终于上线那一刻,我们拖着熬红的眼眶,看着网页前端顺畅运行,或看着微信小程序不卡顿地调用云数据库,好像整个世界都变得干净又轻盈。那时我才猛地意识到:软件工程已经在无形之中,为我注入了某种前所未有的“推进力”——它逼我正视自己的能力,也教会我如何扛住压力去推动一个大型项目落地。它不仅让我和队友们在泥潭里摸爬滚打,也一点点锻造了我们的协作默契和相互信任。
回头再看,代码的逻辑也许并不完美,界面美工也许算不上“惊为天人”,但这份经历,却是我大学生活不可替代的底色。曾经,我只把“软件工程”当作一门分数必修课,和其他理论课没有太大区别。可这次课程结束后,才发现它带给我的触动远不止一次期末考试那么简单。它改变了我对自己专业的认知,让我切身体会到,当一个想法真正落地并且有人在用时,那种成就感有多么鼓舞人心。
我喜欢用“滚烫”这个词来形容那段日子。每一行代码都仿佛带着温度,那些长夜里不断涌现的Bug,也像是重重关卡,迫使我们必须并肩作战才能通关。也许若干年后,我不会记得某个函数怎么写,但我会记得半夜赶ddl敢进度时,那种“豁出去也要搞定”的决心与激情。写程序只是一个载体,真正留下印记的,是我们在这过程中爆发的无限可能。
未来也许会走向各种岔路,不必一辈子敲代码,但这段在“软件工程”里的洗礼,确确实实给了我某种“程序员思维”,也给了我一种大胆尝试、不断试错的勇气。回忆起那些殚精竭虑却又热血澎湃的凌晨,我会心一笑——那才是我和队友们共同创造的一段最纯粹的青春。它让我懂得,很多困难可能只是看着难,被自己的畏难情绪给震慑到了,我将不再惧怕尝试新东西和学习新知识,无论遇到什么挫折,我也能带着对未知的敬畏和探索的热忱,再度出发。
“学有所成”从来不该只是书本上的知识,更应该是我们眼底那道坚定的光。也许未来的某个午后,我会路过大学校园,看见某一间机房里还有人通宵达旦、守在电脑前。我会想起自己曾经也经历过这般“修行”,感慨万千。感谢这门课程,让我自豪地说:哪怕以后走向其它行业,我也曾是货真价实的“计算机人”,而且曾经为一个项目倾注了热血与欢笑。
三、致谢
感谢我的朋接受我在软件工程这个阶段不断崩溃的坏情绪,感谢我自己挺过所有困难
感谢我的所有队友的包容理解,因为我负责协调和调度整个小组的工作,有的时候我可能会push我的队友,催她们赶进度写代码,这使得我们的项目进展飞快的同时也给她们带来了很多压力,非常感谢她们的理解并且一起努力做下去
感谢张栋,吴越钟老师给我们提供了这种锻炼机会,感谢助教辛苦地组织和协调这次实践作业。