一、请回望暑假时的第一次作业,你对于软件工程课程的想象
1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
一个学期,路漫漫,其修远兮,有时候舍友在那边打游戏,然而你得抱着电脑去活动室冲刺,看着一大推头疼的代码,刚刚开始的时候去装一个软件,搞出来一个hello world 都快要爆炸,但是自己后来完成一个布局 一个弹窗 一个音乐播放 自己都充满自豪感,最后大家在一起,熬着夜 敲着代码 最后把游戏跑起来还是十分开心的。一次次的博客实实在在的记录下了自己到底做了什么十分好的一种教学方式。我觉得自己可能不适合编程,看见那一堆红色波浪线实在是头皮发麻。代码量、as的学习也是学到了一些但是要具体谈到就业竞争还有很长的路要去走。还是需要继续努力,总之这门课还是教会了我很多东西,感谢老师感谢助教。
2)总结这门课程的实践总结和给你带来的提升,包括以下内容:
- 1、统计一下,你在这门软件工程实践中,完成了多少行的代码;
整个的阿尔法阶段和贝塔阶段的代码可能有1000多行,我如果算上测试学习神马的应该有1000行了吧。 - 2、软工实践的各次作业分别花了多少时间?(做一个列表)
这个具体时间记不清了。。。 - 3、哪一次作业让你印象最深刻?为什么?
验收的作业的时候。具体那次我的一个后台加音乐的代码搞半天搞不好,老是感觉自己拖了一队的大腿,真的是太尴尬了。那种心情真的不是滋味。冲刺那几天也是,那几天晚上的时候风贼鸡儿冷,舍友在宿舍悠悠打游戏,我得抱着电脑去队长宿舍冲刺,还不是一栋楼,半夜十二点一点才回,小区门都锁了还要绕着回;还有一次小测好像,一群人在文楼弄到晚上十点。。大家还没吃晚饭,就一起去大排档吃。。。六个人吃了三盆的饭,真的是饿啊。故事还是很多的,软工的回味很浓厚。 - 4、累计花了多少个小时在软工实践上?平均每周花多少个小时?
10月,11月,12月,每个周末花几个小时学编程,冲刺阶段每天还要开会写博客,周六周日还要做周六的准备。可能这也算提前适应程序员的生活。平均每天1.5个小时吧,有的不是为了敲代码,一群人开开会,讨论讨论。组长更多,组长是真的累,陈涵真的是一个很有责任心,很赞的人。 - 5、学习和使用的新软件;
AS,Git - 6、学习和使用的新工具;
Git,码云,markdown - 7、学习和掌握的新语言、新平台;
java,Android
平台:博客 - 8、学习和掌握的新方法;
方法。。。有点抽象。具体说大致了解了做一个软件做一趟下来的流程是怎么样的了。 - 9、其他方面的提升。
那就是认识了一群大佬了。
二、写下属于自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析
《人月神话》我还是没有去看这本书,但是软工过程中间的经验还是有不少的。
刚刚开始安排任务的时候我觉得最好的还是要每个任务安排到个人,再有具体deadline,那么大家做事情的效率就会高很多,也不会有摸鱼的可能性大家也能学到最多的东西。
git是一个很神奇的东西,一定要学会去用,这次软工中间有一次我写好了一个工作量蛮大的任务活动的文案然后没有备份,只有桌面上的一份,然后把它直接拉到git上的分支上,不知道是什么原因没有成功的传上去。。。然后想着把这个分支删了再来一次。。。结果分支删去后,文件也没有了。。。后来搞误删恢复,搞了快一个小时都没有出来,只能又重新写一份,非常非常的耽误事,切记学好git,文件记得备份!
接口文档也是十分重要的东西,因为我们这大家冲刺都集合到队长宿舍里面去,所以不懂得直接问,所以接口方面就没有出现十分严重的问题。
三、对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?对于后来人的期许。 特别地,特别地,下一届要不要中途换队员?
类似于java,as,种种学校课堂老师不会去教的东西(java有选修~)最好能够利用暑假寒假的时间去进行学习,这样子对后续的课程,自我的提升都会有很大的帮助,建议就是认认真真学习争取学到更多的专业技能。至于换人,我觉得还是不要。。。助教老师类比工作中间的换人我觉得不妥,工作跳槽是你已经具备能力,跳槽到更高的平台,然而我们学生技能尚不熟练,软工就是一个学习的平台,你学到一半就换去了新的队友,新的任务,时间又不够你去了解项目了解任务,换完之后划划水的可能性更大了。。。
诚然,换不换,还是看老师要学生学到什么,换,学生会更磨炼自己适应环境的能力,不换,多学点软件编程有关的技能。
四、分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
五、怎样证明你学会了软件工程?
1)研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
3)并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
请在随笔中用数据证明上述内容或侧重选择之一。