软工实践总结
软工实践总结
时间过的真快,又到了结束的时候了,是时候总结一波,当作软工实践的结束,同时希望是一个好的开始。
目录
一、软工期望回首
二、提升
三、写下属于自己的人月神话
四、建议和那些想对自己说的话
五、我的团队
六、阅读笔记
七、怎样证明你学会了软件工程?
八、随意发挥
一、软工期望回首
这里就不展开了,贴个链接,软件工程的实践项目课程的自我目标(第一次作业)
当再次看这篇博客的时候,挺多东西没有做好的,比如说时间管理,保持激情。原先规划的好好的事情,没有马上去做,拖延症犯了,到了deadline的时候急急忙忙,本来可以做的更好的事情最后只能草草了事。
二、提升
学习和使用的新软件、工具、平台
- Photoshop用于实践(不仅仅用来制作表情包)
- 原型设计工具 Axure、Mockplus、mockingBot
- 思维导图类 XMind、亿图图示
- 平台 Android Studio、Github、eclipse
- 数据库设计 PowerDesigner
以上的很多软件蛮多都是为了一次作业学习使用,很多软件都经历学习教程->使用、完成作业->搁置,但最起码了解那么多的软件工具,在以后的学习过程中,如果用的着,能够知道用那些软件比较顺手,提高效率,不会脸茫然。
像Xmid,亿图图示这些绘图软件,绘制思维导图是极好的,也是比较常用的。Git的使用算是最大的收获吧(tongxingjiaoyou?),上面有很多有意思的开源项目,比如punchClock,一个加群组,相互监督的小软件,我还找到了图形学的课件,哈哈哈 ;
学习和握的新语言、新平台
语言:php(学的不怎么样); 平台:github,android studio;
学习和掌握的新方法
-
先整体后局部、模块化
体会比较深的一点就是模块化,先整体后局部(不知道怎么描述)的思想,从最开始的结对编程,先画思维导图,原型设计再到后来的模块划分都是先考虑整体,然后再细化。和之前想当什么做什么比较起来效率提高很多,而且逻辑更加清晰; -
Learnning By Doing
软工实践开始的时候,很多东西的都不会,只能边学边做。一学期的软工实践总体上时间是较啊紧迫的,要学的东西又比较多,你不可能学完才开始,我想这就是做中学所体现的东西吧。边学边做,你所学的东西在你的作业中有所体现,能看到成果,这能够推动你继续学习,保持激情。由于时间紧迫的原因,很多东西学了点皮毛,没有深入,这肯定不是了learning by doing的本质 ,learning by doing 更像一种引导性的,有针对性的,让你保持激情的一种学习方式,当然了,如果你自己不去学,再好的方法都是没有用的。
其他的提升
整个软工实践下来,有很多需要交流的地方,正如第一次作业中所期望的,希望在实践之后人际交流的能力有所提升,这点应该做到了,队友强烈建议上台讲一次被我严正拒绝了,毕竟怂(follow your herat ),还是有点小遗憾。
三、写下属于自己的人月神话
经历软工实践后的思考
经过一学期的软工实践,软件开发的流程也走了一遍,老师推荐看《构建之法》的时候还在想讲软件开发的书为什么用的是构建?书的封面为什么是一个榫卯结构(应该没说错吧)?当时也是那么一想,并没有太在意,前几天看到一篇讲博客,讲的是软件的隐喻,再回想软工实践的整个过程有种顿悟的感觉,原来如此。我们将软件工程隐喻成构建,类比于建筑中的很多实例,刚开始的的原型设计有点像建筑的设计图纸,先创建整体的结构,到后来的MVC架构,“构建整体的框架”再到后来的模块划分,在建筑工程中都有相应的对应。Alpha版和Beta版有点像粗装修和尽装修,推广运营(我们还没搞起来)就是售楼,用户入住了。我们常常用程序猿和码农、搬砖的来自嘲,那时候觉得这些话只是自嘲程序员的苦逼。大一的时候常听的是“code change the world”代码改变世界也是博客园写在扉页的一句话,一句很燃、很有使命感话。当时认为能写代码是一件很酷的事情(确实如此),到后来才发现,很多都是重复劳动,像个搬砖的。分工之后,每个人重复的作着自己擅长的劳动。用榫卯结构做封面也许是为了体现代码结构中的逻辑关系错综复杂,有先有后,就像建筑设计的时后要考虑整体建构,采光,水电,排水之类的事情。自己家就吃过这个亏,都装修好了,整面墙拆了重建,费时费力费钱。以上是自己的一些看法,有点扯淡,将就看。
实例例证
在结对编程做导师互选系统原型设计的时候,我们思维导图也画了,主要的功能模块叶划分了,该有什么界面也打了草稿,但是我们还是花费了很多时间,主要的原因在于web 中的很多部分都是重复的,刚开始没有意识到这一点,好多界面都单独做,本来可以Ctrl C、Ctrl V解决的问题,多花了时间,还多了样式统一、对齐的时间。
四、建议和那些想对自己说的话
对下一届的建议
首先当然是选栋哥的软工实践了,如果你想学点东西的话。这里不是说你选其他老师就不到东西的意思,其他老师的软工实践和其他课程的教学方式没什么区别,老师在上面讲,你在下面听(玩手机),选栋哥的软工不仅仅是写代码,你会开始写博客,学习使用很多的工具软件。还可能有活动经费(我们是去KTV)。给自己一个机会,体验不一样的课我方式。有一点你们要考虑的是,栋哥的软工实践比较占用时间,有一种大三上只有一门软工课的错觉。时间需要好好的规划。总之选栋哥没有错,我的学长也是这样安利我的,学长诚不欺骗我。
上面是选课的建议,以下是对学好软工的建议:
- 好好学习使用Git
Git的使用对新手不太友好,大家都是test1,test2开始的,但你你熟练之后,爽的飞起。Git使用的好处开学初栋哥肯定会和你们说,也许你们已经学过了。
这里推荐片篇学长的学长溜的飞起的Git 使用教程
Git和Github的简单教程 - 用Markdown编写博客
这一点体会比较深,当初栋哥推荐(强制)使用markdown的时候我是拒绝的,我onenote用的好好的,云端同步,才不用markdown,还要学习markdown的语法。等你熟悉之后(其实就基本的几个:标题大小,列表,表格,连接,锚点),写的博客会比较快,简洁。可以比较我开头几篇博客和后面博客。 - 使用Github,别用coding.net
github 上的那点英文绝对不是问题,使用一周之后就习惯了。 - 用博客记录自己的学习历程
学习过后,经过逻辑整理后写出来记得更牢固。可以当作学习笔记。 - 选题候的建议
当你想做一个产品的时候,点定要考虑整队的能力. 我有一个很好的idea,怎样怎样怎样,能做出来才是最重要的。比如做一个app,功能不需要很多,但是点定要完整。 - 任务分配时的建议
选择任务的时候一定要考虑自己的能力。 - 看一看前人的博客可以少踩很多坑
想对大一的自己说
如果能够从来的话,我想对自己说好好学编程,别翘课。少玩手机,多去图书馆(去图书馆玩手机都比在宿舍玩手机好)。
对后人的期许
- 大一大二打好基础,软工实践中能做出好产品
- 有更多的人喜欢、认可这种教学模式
- 自学很重要
五、我的团队
我们团队的组成挺偶然的,本来打算宿舍四个人一起选,一起组队(按以往是是个人一组),突然变成六人组+第一节栋哥的预告,有一个舍友退选了,在群里问还有人没组队的吗?哦,有两个女生还没有组队,女生啊,赶紧啊,然后我们就成了唯二(三)的有女生的组,所以我们组的团队文档写的比较好。在确定选题组队喝奶茶时有些还相互不认识,开始聊我们打算做什么的时候大家都很害羞,腼腆,这都不是事,几次作业之后就熟悉了。 大家都很棒。
六、如何保证开源软件质量之阅读笔记
只找到了英文版的文档,阅读困难,复制百度翻译?有词数限制,不断复制也麻烦,用谷歌翻译啊,上传整个文档,下载翻译后的文档就好了.文章粗略的看了一下。
我们将项目托管到github应该也算是一个开源软件了吧,组员也就我们小组的六个人。对于老师所推荐的文章中所说的什么语句数、最大级别、平均大小环面复杂性之类的词都好专业,也不知道该如何统计,从个人经验来看,有以下几点:
- 好好写README文档
README文档可以包括代码规范,命名之类的规范,对于项目的描述,这样尽可能的让参与者了解这个项目。 - 必须要有核心成员,骨干成员
一个懂的人能够能对于别人的pull request 能做出合理的判断,取舍
七、怎样证明你学会了软件工程?
学了个皮毛,哪里敢说学会,说学过比较好,软工实践的过记录应该是一个比较好的证明吧
- 使用软件会想功能的出发点是什么,有没有必要,布局有没有问题,发现问题会反馈(喷)
- 看到好的点子,好的软件会感叹自己怎么就想不出这样的点子。对于免费软件,会考虑要不要支持三毛五毛什么的,哈哈,开发不易
- 写代码不是软件开发的全部
- 项目Github链接
- 结对编程
- 软工实践博客汇总
八、随意发挥
自我介绍
自我介绍?不按套路出牌啊!从小最怕的的事情之一就是开学初的自我介绍,对着不认识的人自我介绍总有一种蜜汁尴尬,介绍完老师常常带头鼓掌是几个意思???? 没办法了,自我介绍一下:
我是福州大学数学与计算机科学学院14级计算机(6)班计算机科学与技术专业的李烈争,是一个慢热型的人,喜欢顺其自然,不喜欢太有仪式感的东西,给人一种一群XX经过某些仪式,达成某种某种共识,思想统一的感觉。 大学三年用于学习的时间真的太少了,已经变成一个大学渣。错过的就是错过了,珍惜现在。
The Last
- 一学期下来学到的东西还是很多的,有一个棒棒的团队。大学留给自己的时间不多了,且行且珍惜。