软工课程总结
一、回望开学初对于软件工程课程的想象,回望博客开篇时对于这门课和这学期的期望
对比现在的我和开学初博客开篇的课程目标和期待:
第一条:可以相对以前更快地编写代码,处理代码,看懂代码,学到了不少面向对象的知识。
第二条:写的代码的完整性和可扩展性比以前更加好了。
第三条:熟悉了与他人合作的编程方式,结对编程的工作方式,会大大地提升开发效率。从刚开始的完全不懂,慢慢地开始学习,进入状态。
其实一开始由于作业的紧张,我的心态是比较消极的,因为基础相对较差,所以中途差点放弃,但是老师给了一次机会,于是我咬牙坚持了下来,随后的结对编程和团队项目中,虽然我的贡献不是最大的,但是我总可以在项目进行中学到很多东西,加强自己的能力,发挥自己的作用。
二、总结这门课程给我带来的提升:
学习和使用的新软件:在写博客的过程中学会了使用MarkdownPad,开发项目则没有变化,用以前用过的eclipse。
学习和使用新的工具:学会利用git工具和github上传和下载自己的项目,以及对自己的项目作出相应的改进更加方便。学会了使用markdown编写博客,对于内容的排版在写博客的过程中也学到了很多新东西。
统计完成代码行数:个人项目600行;结对项目400行;团队项目800行。总计1800行。
学习和掌握的新语言、新平台:在Android上开发用到的JAVA语言,学到了很多面向对象的知识。
学习和掌握的新方法:与他人沟通时,如果意见不符,就去了解对方的基本假设,也就是对方的相关知识储备。细化目标,将一个模糊的目标通过一步步分解,将其转化成为一个个可行的小目标。从《构建之法》中学到Work Breakdown Structure,即从未来的目标倒推每一个时期应该完成哪些任务。并且从项目实践这一方法作为练习。
其他的提升:心态上。一开始觉得自己的能力有限,可能啥也做不了,有想过撤课,但是想想自己上这门课不就是为了进步吗,咬咬牙坚持一下,总能过去的,于是沉下心,做好眼前的工作,总会有些收获。
三、写下属于自己的人月神话——项目实践中的经验总结+实例/例证结合的分析
我在项目中以一个普通队员的视角来讨论这个问题。
当我们的项目在Alpha版本时,我们团队每天都会在一个会议室内进行讨论,交流在项目工作中遇到的各种问题,并讨论提出相应的解决方案,我的编程能力应该是五个人之中最弱的,但是我的任务我都会尽力地去完成,PM分配的任务也是考虑到每个人的能力分配的,类似于文档之类的东西我可以多做一些,在编程方面,我会尽我所能地完成任务,这里要感谢我的团队的其他人,帮助了我很多,特别是结对编程的队友。
我发现结对编程的效率真的很高,本来我和我的队友分开做的任务花了一天的时间都没有什么进展,但是采用结对编程的方式之后,更加快速地完成当前的任务,每个人都有每个人的长处以及相应的不足之处,这时自己的队友可以做出相应的补充,对于项目而言,提升了软件质量以及提前了项目的完成时间。对于个人而言,学会了许多解决问题的方式、方法,从队友那里学到他的经验,对自己未来的工作都会有很大的启发。
对于团队合作有帮助的工具要多学习,学好GitHub的团队合作流程,能够为团队节省不少时间。
当与队友之间的意见存在冲突时,要结合实际,配合PM。
在编码方面,很感谢队友们的照顾,对于基础较差的我也没有完全不让我参与编程的工作,让我尽我所能地完成相应的任务。利用Git来管理代码,可以用合并工具来解决冲突。对于上传的代码不能随意地重构,要与队友进行充分的交流,尽量不要改变整个文件的布局,特别是删除某个方法,可能会出现很大的问题。
四、分析自己所处的团队。
萌芽阶段:大家都是相对比较熟悉java,组成一个团队,提出MyGod项目的想法,大家都觉得很不错,名字也是大家坐在一起想的。
磨合阶段:大家的能力有所差异,慢慢掌握队友的节奏,根据能力分配相应的任务,达到最理想的状态。
规范阶段:从无到有,从Alpha版本到Beta版本,小组的代码规范性得到了很大的提升,队内的管理也越来越规范。
创造阶段:现阶段还没有达到,以后会做出相应的提升。
五、在今后的教学中,老师们还将根据同学们的基础、期望达到的目标,在教学内容和作业量上做更多的调整,争取为大家提供一个更加个性化的学习过程。你对课程设计(授课内容、方式、作业内容)有什么建议吗?另外,作为学长的你,对后面的学弟学妹们有什么建议?
上了这门课,刚开始给我的压力真的很大,因为自己的基础比较差,而且完全没有一个过渡的阶段,上来就是让同学们做一个小项目,这样对于基础好的人来说没什么, 但是对于像我一样的基础较差的同学来说简直就是灾难。第一次的个人项目作业,做了大概三天左右,真的是整整三天,晚上有时候还得看代码,那个时候真的是想放弃。好在出了第一次之外,后面都是结对编程和团队项目,我可以尽我所能地配合队友完成任务。
上课的时候,老师与学生的互动不多,除了一开始有一个小比赛,不涉及编程单纯的小游戏,我觉得那样的形式很好,大家都会参与其中,提升大家的积极性。建议老师以后做PPT时不要在做这样的PPT了,做一些图形,然后对应解释,让大家更好地理解。
对于作业而言,应该考虑到学生的能力差异,不然基础差的很容易积极性就没了。本来想要学点东西的,结果一开始的作业就把他积极性一棒子打死了,就很难受了。
我推荐学弟学妹们来选这门课,但是不推荐基础太差的,不然很难跟上,做项目的过程中会很难受,如果作业能做出相应的调整当然更好,我也不知道具体该怎么调整,因为众口难调,还是维持现状会好一些,希望基础稍微好一点的学弟学妹加入这门课程,会对自己有很大的帮助,尽管过程艰难,但是苦尽甘来之时会很享受。
六、助教老师为课程的顺利开展做了很多工作,与老师们的交流也让大家获益匪浅。你对助教老师的工作可以提一些意见和建议吗?
我也和助教聊过天,讲过我自己的一些想法,助教也给了我很大的鼓励,谢谢助教,在忙自己的论文的过程中还要关注我们的作业,辛苦了!!没有什么建议,我觉得助教老师做的很好了,继续保持就好了!!感谢老师和助教对我们的帮助以及提点,希望以后有机会还可以交流。