和《从小工到专家》一样,这本数并没有讲编程的技巧,而是作者自己的感触和对于软件工程的理解。
“程序=数据结构+算法”,这句话是我从接触计算机专业老师就一直说的,以至于让我们产生一种错觉,好像我们只要搞懂数据结构和算法,所有程序就都不在话下了。但是,当我们看到我们前辈出现的一些疑问时,却让我们起了疑心:数据结构中常用的指针,在Java和其他的一些语言中似乎并没有;所有算法早就被你的前辈们写好了,你所要做的就是维护和调用,等等。
这都是我们就业后所要面临的问题,因此,软件工程概论这门课就显得尤为重要了,它可以帮助我们了解软件工程整体结构,了解其中的各个流程,使我们能够了解到我们今后将会遇到的问题,提前让我们熟悉这个行业,意识到自身所学真正的作用。
软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。它包含多个领域,和多个学科相关。软件又有许多特性:复杂性、不可见性、易变性、服从性、非连续性。之后又给我们讲解了软件工程和计算机科学的不同之处。一个是偏理论,一个偏实践,两者并非水火不容,而是互相促进,共同发展的。而软件工程最主要的目标便是让我们学着去创造足够好的软件——用户满意度高,可靠性好,流程质量高,可维护性好。如果能知道了解这些,我们算是大体上认识了软件工程。
从开始的软件=程序+软件工程,到软件企业=软件+商业模式,都在谈软件是什么。只有了解之后,我们才可以从生活中对它开发,如玩具阶段,业余爱好阶段,探索阶段,成熟的产业阶段。兴趣是最好的老师,对软件充满热情,是做一个好项目的基础。在软件开发中我们会因为它的复杂性,不可见性,易变性,等特性而焦头烂额,但这也正是它的魅力所在。