胡永安 + 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006
前言:选课情结
在本科的时候就上过一次软件工程的课,当时就听老师在课上讲PPT,我听得云里雾里的,不知所云。每次希望老师讲的自己能听懂,但自己见识有限,没得到真传。这次又选了这门课希望东山再起,现在回望这门课收获还是很大的,不论是务虚还是务实的层面。务虚就是了解了一个大型软件开发,维护的一系列方法,务实层面在于实验楼里学习了对一个C语言程序慢慢完善的工程,了解了微信开发的一些步骤,虽然最后转去做墨刀了。
我对软件工程的理解
我对于软件工程的理解是:软件工程是一门为了更科学高效的开发大型软件的理论学科。首先大型软件功能复杂,层次多,因此需要一个开发团队协同合作完成;第二软件维护是一个漫长的过程,在不断的发现bug,解决bug的过程中,软件逐渐变得强大完善。基于这两点原因,软件开发大牛们总结了一套套的软件开发流程、方法,这就是软件工程。
学习总结
收获心得
我的第一个心得就是:我入门了。
说实话,几节课听下来,我对自己的要求就是:多听一点就是多涨一点见识,听多少是多少,不求记住、学会。一开始还做一些笔记后来就没后来了。但我坦然接受这个事实,自己没经历过大型软件的开发,听老师高屋建瓴的讲解,没有切身的体会,但自己至少开始了解这个流程,习得九牛上的第一根毛。在老师上课以微信开发一个课程交流平台时,老师在黑板上画的用例图,一步步明确需求分析,包括分析SQL与mongoDB的优劣势时,以及后期分工三大部分来完成(原型+代码开发+技术文档)。慢慢的我了解参与这个过程。
我的第二个心得:学会请教牛人
在初期做微信开发的时候这个体会最深,从最初的云服务器如何获得,到后来使用meteor开发。整个过程不停的百度,(后来发现google更优秀)也经常的在群里问牛人,尤其感谢刘丞大神对我的帮助。后来我完成后帮助其他人重复这个过程时,发现自己问的一些问题其实很幼稚,关键在于想通。在这个过程中其实收货时蛮大的,因为我完成了对一个新事物的认知,学习了一种新的方法。当然有一点也很重要就是不要一直以来大神的帮助,要学会自己思考,自己解决问题,在自己真的无力回天时再去求助,否则自己不仅啥也没学会,还被大神鄙视,亏。
我的第三个心得:多关注行业变化
软件行业是一个生命力十足的行业,每天都会有新的理念潮流注入,也会有一些东西在被逐渐边缘化,我们要学会紧跟潮流,争取达到事半功倍。老师上课就推荐我们用meteor,说这是一个新事物,值得我们尝试。最近微信上流行说软件会使用组件化开发。反正这是一个大有可为的行业,我们应多关注一些这方面知识
遗憾
最大的一个遗憾就是后来放弃了微信开发,转去做墨刀原型了。这有点不符合软件人的品质。这个过程对我来说是有挑战,但如果我完成了,那将是一件多么引以为豪的事。
实验列表
1.写一个hello world的小程序
2.命令行菜单小程序V1.0
3.内部模块化的命令行菜单小程序
4.用可重用的链表模块来实现命令行菜单小程序
5.用callback增强链表模块来实现命令行菜单小程序V2.8
7.将menu设计成可重用模块