从看到课表上软件工程这门课,就对这么课程充满了期待,因为在我之前看来,软件工程就是开发软件的。后来上了这门课才知道,软件工程不是当初所认为的“开发”课程,最多体现的还是一种软件工程的思想。整个学期下来,让我对软件工程有了新的认识。另外,对于团队开发项目也是自己增长各种知识的一个开发过程,或者说是长了很多见识和能力吧!下面我对这门课程学到的相关知识进行详细的总结。
对于这门课本上学到的知识,那就太多了。
1.单元测试的重要性,在真正自己编码的时候,尤其是在寻找BUG阶段,当我们找不到错出在哪儿的时候,便会知道,假如每一模块,都亲自测试好了,是不是就没有这么麻烦了呢?其实看着浪费时间,但实际上单元测试是在节省时间的。
2.代码规范的重要性,当我们去写代码的时候,往往不注意格式,尤其是将代码下一段剪切到程序的开头或结尾,格式可能就乱了。让别人读的时候,那叫一个痛苦,软件工程师给我们评价,以及打分情况,充分说明了公司或者说实际开发中,代码的规范性很重要,自己读规范的代码和不规范的代码相对比感同身受。
3.当然,还有很多很多的具体知识,比如敏捷开发、MSF、项目经理、需求分析,典型用户和场景、软件测试、个人绩效等等,在课上听讲过程中能学到的绝对是记在心里了。
“做中学”的教学模式当然不仅仅局限于课本了,在课堂练习以及实际开发中的收获也很多。
课程的开始,是对软件工程总体的了解。软件工程则是把系统的、有序的、可量化的方法应用到软件的开发、运行和维护上的过程,我们自己了解到的是软件开发的流程。因为对于我们这些马上毕业的学生来讲,多多少少的会去了解一些关于这方面的工作,比如:做需求分析的工作、做敲代码的工作,还有做软件测试的,其实这就是开发流程当中的几个子过程。倘若我们现在已经找到工作了,我们每个人又具备个人技术,你可以成为大牛,你也可以成为普通的码农,但是这就又会涉及到如何融入一个团队。
我们先从两个人的合作开始,比如这学期的四则运算,我们两个人一组,不断的迭代,一开始可能很简单,两个人不会有什么分歧,即使有,也会很小。但是到后边就会发现,随着代码量的不断增加,分歧将越来越多,这个时候,沟通能力以及两个人的相互包容能力真的很重要,第一个岔路,可能很容易走同一个方向,但是当岔路很多的时候,又认为自己是对的,不肯让着对方,这样项目就做不下去了。两个人最终合力开发出了一款App叫《易百分》,四则运算的二人合作也算是圆满结束了。
再说在我们团队里的收获,这个时候我们已经具备了两个人开发时候的默契,也略微懂得如何融入团队了,我们把自己关在一间屋子里,无论怎样,编写代码,甚至为了一个bug通宵一夜,后来发现,到后半夜的时候,编码效率几乎为零。从中我们也可以看到,并不是时间越长,出来的成果就越多,最重要的还是效率,前提是我们要肯花时间再里边。到后来,我们又有了很多分歧,甚至就是那种你说你的,我说我的,你也不考虑我,我也不考虑你,到了相互较劲的阶段,这个时候,可能我们都很“无奈”吧,毕竟好不容易出来一个想法,怎么能被人否定呢!随着时间的流逝,这样较劲的结果就是,项目进度为零。后来意识到这是不行的,这里要向你们表示歉意。总的来说,融入一个团队,首先要虚心接受其他人的意见和建议,“三人行,必有我师焉”,其次就是相互学习,相互进步了。在这里要向我的团队致敬!团队合作给我带来了巨大的收获。
软件工程这门课程真的是与众不同,虽然平时老师让我们做一些任务,然后编码,结对编程之类的实际开发,时而为了学会游泳也要实施“踹一脚”的方法,但是仔细看,是不是学到了很多东西呢?做得多就学得多嘛!个人觉得,比较喜欢王老师的讲课风格,幽默风趣,而且,如果你认真听了,肯定不会走思。另外,个人对“做中学”的教学模式很认可,因为我们在学习了课本上的理论之后,想要去真正理解其中的含义,还是要在实际开发中去运用这种理论,“理论与实践相结合”嘛!在这种高强度的编程练习中,会也得会,不会也得会,虽然有些“硬性”,但是学到东西后,就会去感谢这种“硬性规定”了。
最后要感谢王老师一个学期的辛苦教学,幽默而又严格的风格很受同学喜欢。还要感谢孟工程师的严格作业评判,耐心地指出我们代码里的不足。这是一门让我很喜爱的课程。