标签:
忽然间,说结束就结束了。
明明是一直以来觉得头疼无比、时间占用巨大的这门课程,在结束的时候,却没有想象中的轻松,反而有一丝失落。
1.课程总结:
翻开刚刚开课时写下的目标,字里行间读出的,半是憧憬,半是迷茫。计划中要做的,有一些没有完成:
原打算学习java,最后却学习了一些php和mysql;
想要学会更好的管理时间,熬夜的次数好像却更加频繁;
原以为可以初步成长为一个合格的pm,但是回头看看自己做的好像也不怎么样..
.当然,也有不少的收获:
学会了一些软件的使用,例如原型开发软件Axure,类图样例图绘制软件star uml,还有js单元测试工具(虽然仅仅使用了一次),最重要的当然是版本管理工具git的使用,当然网页登不上一直是一个很头疼的问题,以至于一开始一直使用qq群进行文件管理,这个后面还会再说到;
学习了一些php,主要是mysql和web开发方面;
还学会了关于服务器的部署等...
技能方面的收获主要是这些,还有一些更重要的心态方面的改变:
首先,是要勇于学习新鲜的东西,很多时候,碰到问题总会想从已经掌握的能力去解决,因为这样比较省力,但是实际上,这样经常会导致很多能力没有得到应有的锻炼,而只是把时间浪费在重复劳动之上,不利于自己的能力提高;
其次,碰到问题要尽快解决,拖延会使解决问题的成本不断上升,尤其是在团队开发的时候,问题可能导致的后果会更严重;
最后,其实助教一直有提到一句话:无论如何,一定要坚持到底。在整个课程的过程中,会碰到很多各方面的困难,就算无法完成的很漂亮,至少要做到有始有终,任务完成的那一刻,无与伦比的成就感会告诉你一切都是值得的~
2.项目历程:
项目开发占据了实践课程的绝大部分,从最开始的结对编程,到后来的团队开发,不得不说,都是一段艰难而难忘的回忆。
项目的开发过程收获了不少宝贵的经验,摘录其中一些印象比较深的例子:
(1).将GBK字符串转成 UTF-8,
(2).将全角空格转成UTF-8
(3).将替换后的字符串改成GBK
(4).去除头尾空格
(5).返回字符串
这样才能完整的处理字符串问题;还有一些错误是因为php语法基础不好而导致的,例如字符串匹配的时候使用了“==”而不是“===”,直接后果就是像“00012”这样的账号只需要输入“12”即可匹配,原因在于“==”只是值匹配,“===”是完全匹配,值和类型都要相等;还有在php mysql连接的时候,混用了mysql和mysqli两种连接方式和对应的函数;还有在alpha版本的时候没有对sql的结果进行为空判断,导致当查找的结果不存在的情况下会报错。
再说说从团队合作里面收获的一些经验:
1.站立时会议的时间宜设置在15分钟之内;首先,采取站立式会议的好处就是可以让开会的人能够更集中注意力,但是如果时间过长,成员会很疲惫,而每日任务的分配和总结本来就应该在15分钟内完成;为了更好的实现这种方式,可以采用一些措施辅助:组长提早拟定好今日会议的时间以及主要内容,让成员做好准备,以免把开会时间花在想内容上;在每日会议结束后及时总结当天的会议情况,有问题的及时改进;
2.如果要进行项目冲刺,最好安排在连续的时间里。比如说任务要求冲刺7天,给的总时间是14天,那么最好安排连续3/4天的冲刺,而不是完全割裂成1~2天的多次冲刺,分割的次数越多,就要花越多的时间在回想之前的项目进度;
3.在任务过程中如果碰到组员有任务无法完成,组长可以想办法调配人员协助完成,但是绝对不能拖延进度,一旦有了不好的开头,就很难达到预期的结果;
4.每日的会议记录要写的简洁清晰,任务落实到具体的成员;
5.最后谈一下关于github的使用。github是一个版本管理的工具,由于早期的认识和经验不足,只把它认为是一个像网盘、qq群一样的存储类工具,再加上访问github网页经常上不去,所以没有体会到它的优势,在beta版本中,由于助教老师的严格要求,不得不恶补了一下git的使用,现在已经习惯了使用git进行项目的迭代管理。相比于qq群文件,github最大的优势就在于版本的管理,我们在写项目过程中,肯定会有不断的更新和迭代,如果对于每天的修改都进行打包、封装、保存,一来工作量很大,二来无法直观看出各个文件之间的差异,而github不仅保留了从项目上传到结束的每个版本,而且可以看到每次修改和更新的内容备注,有了分支管理的功能,在团队开发的时候会更加方便,至于网页经常上不去的问题,我后来是采用软件FQ的方法来解决,还有一个从同学那里得来的方法,如果锐捷上不去,可以连手机热点上去;git刚刚使用起来确实会有很多按难题,但是等到熟练以后就会感受其中的好处,就像游戏中的后期英雄,前期越累,后期越能拯救世界。
3.写给后来的学弟学妹
1.栋哥的软件工程相较于其他老师确实更累,而且会要求用博客记录每次任务的情况,安排在大三上这个课程紧密的不像话、并且全是专业课的学期里面,熬夜基本是躲不了的,但是收获也是肯定会有的。在选老师之前请慎重考虑自己的出发点,如果感觉自己掌控能力不强但是想好好学一些东西,那就选栋哥的课,如果选了,请无论如何坚持到底!
2.软件工程课不会教编程!
软件工程课不会教编程!
软件工程课不会教编程!
重要的事情说三遍,在这门课上,老师会介绍各种软件开发过程中的工具使用,但是也基本仅限于介绍,还是要靠自己去摸索,所以如果没有语言或者技术基础的同学,建议你们在组队的时候要认真一些,最好其中有一个人有一定的基础或者学习热情很足,这样到后面的项目开发的时候不至于太累,但是还是建议你们在这门课开始之前有一些相关的储备。
3.刚开始一定要用git而不要用github for windows,git是命令行操作,github for windows是图形化界面,对于初学者来说,自然更倾向难度低的后者(我之前也是这样),但是使用git的过程会通过每一条命令加深对github的理解,前面提到了github对于初学者可能会有困难,而git就是不断熟悉这个过程的最好工具,github for windows对于在理解git方面没有多少帮助;其次,github for windows只适合简单的操作如commit、sync(其实就是push),如果碰到合并冲突、版本回退等问题的话,还是要用命令行来解决。git的教程有很多这里就不提供链接了,另:我的博客中有一篇关于git使用里常见问题的解决经验,希望也能对你们有帮助!
4.还有一些团队项目经验请参考前文内容
5.大三上的课程会很紧而且难度相对之前大很多(都是专业课,没有体育毛概马哲行测这一类);所以时间安排和目标取舍很重要,加油!
4.对未来的期许
1.虽然课程结束了,但是实践的项目并乜有达到自己的目标,还会继续修改下去;
2.希望自己在接下来的日子里,会以更加积极的心态学习新的知识;
3.在编码能力加强的同时,对于软件开发过程的各种思想理解会更深刻;
5.最后的总结
其实有些遗憾,本学期的软工实践课程没有很认真的去学习,特别是前几节关于各种工具的介绍和使用的时候,由于个人时间安排不合理,基本是应付过去的。
不管怎么说,万幸还是坚持走到了最后。
刚刚开始组队的时候还是穿着秋天的短袖;
到最后结束时已经穿上厚厚的冬装。
从10月到12月,从金秋到寒冬,两个月的共同奋斗也培养了几个人之间的友情,话不多但认真细心的俊达,偶尔会迟到、善于攻坚、幽默搞笑的毓顺、认真学习又经常犯二的昆明,还有挂着组长之名却经常没有耐心、做事急躁的自己...几个性格各异的人,为了一个共同的目标一起开会讨论、一起熬夜加班、一起交流学习,这段难忘的回忆,将刻在宝贵的大学生涯里。We are the code.R!
开学的时候栋哥说过一句话“靡不有初,鲜克有终”。能够坚持到底的同学都是好样的。一路走来,感谢栋哥每一次课程的认真规划,感谢助教老师的每一份博客的细致审核,以及提出的宝贵意见,感谢实践过程中同学的提醒和帮助,感谢一路走来、一直勤勤恳恳、完全配合、不闹情绪的队友。特别感谢一直提供技术帮助和解答的又帅又会写代码的伟鹏学长。
软工实践之路就到这里,但是成为一名合格的程序员之路还有很长。
靡不有初, 鲜克有终。
标签:
原文地址:http://www.cnblogs.com/malinlin/p/5058509.html