软工实践个人总结
一、基本情况
(1.1)请回望第一次作业,你对于软件工程课程的想象
对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
-
开篇博客中,我对这门课程的期待是:
对于这门课我希望能够学习关于软件工程的知识,也能通过软件工程的项目获得经验与成长,也希望能提升团队沟通等能力。
-
收获
在本学期的软件工程实践课程中,我认为大部分达到了我的期待。在过程中学习到了许多对我而言是全新的知识和技术,虽然当中有很多是在很短的时间内速成的,学习的也不是很扎实,但比起开学初的自己还是收获了不少。- 在几次的作业中,学习了不同的算法,提高了编程能力和对python的熟悉度,学习了许多工具的使用。
- 收获了关于软件工程的知识,在实践操作的过程中,对于书上课堂上的一些理论知识有了更深刻的印象和更透彻的理解,学会了完成一个项目的步骤和流程,相比于之前一开始就动手写代码,在经过一个学期的学习和实践后,学会了先做计划和分析,然后再写代码。
- 参与了团队项目,作为上大学以来历时最久团队项目,从中收获了很多团队交流沟通的经验和方法。
-
但在收获之外,仍有一些不足之处。
- 对于每次作业的计划和时间安排不够合理,经常出现后期匆忙赶工的现象,导致做出来的成果并不能令人很满意,存在很多瑕疵。
- 由于学习的知识和技术时间较短,并没有系统地进行学习,因此许多知识和技术只是似懂非懂,理解不够透彻,掌握不够熟练,运用起来仍常常出错。
- 每次作业在提交之后便基本不再关注,有时的总结出的经验教训到下一次并没有及时改正,仍会出现同样的问题。
- 对于团队沟通也只是有了一些经验,在团队项目中也还是有出现沟通不畅、双方理解不同导致前后端对接出错的问题。
希望能够充分利用这些收获、总结这些不足,在将来继续学习与改善。
(1.2)总结这门课程的实践总结和给你带来的提升:
-
在软工实践课程当中我编写了_2000_行代码。
-
软工实践的各次作业分别花费的时间:
# 作业 花费时间(分钟) 1-2 个人编程作业 1655 3 结对编程作业 4000 4 团队介绍与选题报告 400 5 团队需求分析报告 400 6 团队项目之现场编程 400 7-13 Alpha冲刺(含总结) 2000 14-19 Beta冲刺(含总结) 1500 -
讲述令你印象最深刻一次作业?为什么这次作业令你影响深刻?
令我印象最深刻的作业是结对编程作业。
这次作业是和搭档一起完成的,但从一开始就遇到了问题。首先是对于网页、APP、小程序一窍不通,全部没有基础也没有了解过,甚至不了解什么是前后端,也不知道应该选择哪一个更简单一点,经常看到别人选了什么就想跟着选什么,一直纠结和摇摆了很久才定下来打算做小程序。在学习的过程中,也是到处找教程,对着微信官方文档和各种视频和博客学习。而真正开始做的时候还是在一点点地摸索,在做了将近一半的时候才算有所熟悉。同时很多光是学习了理论,看了教程但真正实现时却一直出错,归根到底还是没有系统地学习知识、事先规划好细节,导致了很多很多本可以避免的问题。除此之外,没有吸取前一次个人编程拖延造成的后期时间紧张的教训,时间的安排与计划不周到,前期过于划水,导致最后做得很匆忙,也有很多天在熬夜,做出的成果也与事先的预想的有些出入。不过到最后还是基本完成了大部分要求的功能,觉得做出了原来认为很难的事,我认为能够算是自己的一个突破与成长。从这次作业中,学习了原型设计和前端的知识,同时也体会到了合理安排时间、事先规划好细节与合作分工的重要性,也体会到了软件工程的困难,到了团队项目时也没有非常焦虑和恐惧了,因此印象深刻。 -
在软件工程课程上花费的时间(预计花费时间参考:同时贴出开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答)
开篇博客的回答:
为了达成我的期待与目标,我目前打算大概平均每周10个小时在这门课程上,但可能会因情况增加时间。
累计时间 实际周均时间 预计周均时间 172(h) 11(h) 10(h) -
介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的作用?
- pycharm
在个人编程中使用了python语言,而pycharm有显示代码不规范的地方,可以通过提示修改,因此编写的代码也更加规范了,同时还有性能测试等功能。 - 原型设计工具:墨刀
使用原型设计工具设计完原型后,在做前端界面时就能够有方向和概念。 - 微信开发者工具
结对编程中使用微信开发者工具进行小程序的开发,在这过程中学习了前端的知识:页面布局、跳转逻辑、绑定等,虽然小程序所用的语言和其他不同,但大致上逻辑相同,学会了之后可以相互联系进行学习。 - 画图设计工具:Process on
可用于原型图、UML、网络拓扑图等多种图形绘制。在画图的过程中同时加深了理论知识的学习。 - 接口测试工具:Postman
对于后端的接口可以使用接口测试工具,方便快捷。 - Auto.js
在现场编程时学会的Auto.js,是一款无需root权限的JavaScript自动化软件,学会之后可以自己写脚本完成一些重复而浪费时间的事了。 - python中对于数据库的连接与使用。
不仅收获了软件工程的知识,也体会了很多关于数据库的操作。
- pycharm
-
其他方面的提升。
- 在团队项目中制作了PPT,过去做的PPT都很简单和潦草,这次有参考了团队其他同学的模板,做出来的PPT也没有那么简陋了,提升了PPT制作的能力。
- 熟练了makdown的编辑,虽然在学习面向对象程序设计时也使用了,但只是会最基本的操作,而且时间久远忘了不少。使用了Markdown后写出来的文本更加规范,不会出现混乱的排版和空行。
- 提升了搜索信息、查询问题的能力。在个人编程、结对编程与团队项目中都出现了很多不懂的问题,需要经常上网查找,因此逐渐掌握了一些搜索的技巧。
二、总结与收获
- 个人或结对或团队项目实践中的经验总结+实例/例证结合的分析。
- 个人编程
在个人编程中,学习了搜索的算法,熟练了python的使用,也感受到了python的各种库的方便,作业发布的时候感到很困难,其中的原因是在为怎么把汉字转为拼音而苦恼,但在搜索之后发现有拼音库可以完成这项任务而不用自己写。
提升了解决问题的能力。最初觉得这项任务太难了无法完成,于是把它拆分成几个部分,例如汉字的拆分、拼音转换等,先完成了基本的功能之后再来完成这部分感觉较为困难的功能。同时,在遇到不懂的问题时可以直接搜索报错的信息或者简单描述问题,而不是搜索自己写的语句。 - 结对编程
在结对编程中,体会到了要提前安排好时间、做好计划,否则会出现前期过于散漫,后期过于紧张的现象,导致做出的成果不尽人意。在结对编程刚开始时,没有意识到计划的重要性,都只是随意地找一些资料学习,直到时间过半时才意识到要来不及了,在导致最后在的时候匆忙赶工,熬了很多本不需要熬的夜。
要系统学习知识,只了解零零散散的碎片知识会导致在实际操作的时候不停地出错,然后回头重新学习,反而更加浪费时间。在开始做页面前只大致简单地看了一些布局的范例以及简单的使用,但在具体实现的时候发现各类组件总是会出现在令人意外的地方,然后一次一次地查找原因、重新学习,反而降低了效率。 - 团队项目
在团队项目中体会到了细节规划的重要性。在设计的时候应当尽可能全面地考虑到各种情况以及细节,从而在实践时能够更加顺利。在需求分析设计类图时,把不能分开的部分分成了两块,导致在alpha冲刺时才发现问题,要重新设计,浪费了时间和精力。
同时还感受到了团队沟通的重要性。在alpha冲刺时前后端一开始是各做各的,没有及时沟通,最后合并对接的时候才发现各自的逻辑不同,需要大幅进行修改,增加了时间和精力的开销,降低了效率。
- 个人编程
三、致谢
- 这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?
我感谢团队中的成员们,从大家的身上看到了许多自己没有的优点,同时在团队项目当中也感受到互相帮助的温暖,遇到问题时大家也很积极地解决。