路过的小游侠SA17225272 + 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006
1. 学习心得
时间飞快, 十一周的课程就这么结束了, 三个月, 说短不短, 说不短, 却总有写不舍, 话不多说, 还是谈谈我所理解的软件工程吧.
说实话, 学了这么多年的计算机, 却没学过软件工程设计. 在修这门课之前, 所谓软件工程在我看来就是管理人员学的, 是"软件管理", 是管理人员要学的. 事实却非如此, 或者非仅仅如此. 软件工程涉及管理,包括计划、资源、质量、成本等, 但不仅限于管理, 还包括规范制定, 系统设计, 以及计算机,数学相关的知识. 总的来讲, 我觉得这是一门交叉学科.
这学期, 学习收获主要是软件质量, 软件设计思想, 以及最重要的技术实践, 虽有艰辛, 但迈过坎坷之后的成功的收获, 也是物超所值.
另外, 这学期断断续续的把软件工程的经典书籍 <<人月神话>> 和<<黑客与画家>>看完了, 不谈多高深的领悟, 起码谈论起来, 也能说上两句.
最后, 我有点心里话要讲, 平庸者怨天尤人, 平凡着循规蹈矩, 而只有那些卓尔不群, 敢想敢做的人, 才会活出自己的精彩. 线下课程有挑战性并不可怕, 天赋有限也不必自馁, 可耻的是某些平庸者.
以上, 同时自勉.
实验报告
实验一: Hello World!
程序员的开始
实验二: 命令行菜单程序v1.0
要求是规范化的代码
实验三: 内部模块化的命令行小程序
如题, 强调模块化, 使用规范合适的接口来耦合链表和主程序. 这算是软件设计初试牛刀.
实验四:用可重用的链表模块来实现命令行菜单小程序
提到了可重用的概念, 这就是关注代码的通用性(扩展性).
实验五: 用callback增强链表模块来实现命令行菜单小程序V2.8
什么是callback函数, 如何使用callback函数, callback函数的优点, 本例是个很好的学习例子.
实验六: 测试
只有一个课程测试
实验七:将menu设计为可重用的子系统
这次的目标是把menu作为一个模块给其他系统调用.
给命令加了参数, 练习了makefile, 再加上了解实践了getopt函数.
我们就完成了一个Linux下的程序用户接口程序.
总结
这门课带领我们建立了再软件工程领域的思维框架, 这个框架我get到的核心要点是: 软件质量(规范), 工程思想, 设计模式等等.
线下实践(vue.js)是一个需要我们自主学习, 拓宽视野, 挑战自己的目标, 也是对这门课实践的最好的渠道. 遗憾的是, 不是做前端方向的, 否则赚大了.
最大的收获还是提升了视野, 老师对工程的理解, 人月神话, 黑客画家这样的经典之作给了我很多的启迪, 也构建了我对对整个领域的框架. 这种见识的整体提升是我最大的收获.
最后, 谢谢老师, 也谢谢自己.