至此,软件工程专业本科四年的全部专业课程的学习结束了。感慨颇深,因为学到现在我才算彻底明白什么是软件工程专业,软件工程专业的培养目标是什么。我应该感到悲伤但也应该感到庆幸。悲伤自己没有早早深入地了解自己的专业,白白浪费了3年的大好时光;庆幸自己最终还是明白了自己的专业!
软件工程,工科,是计算机科学的一个分支学科,是将开发软件作为一项工程来研究的一个学科。何为工程?工程是对大型项目研发的一个称谓。工程是对项目的大型性、影响力大、资源投入多、开发周期长、团队规模大等特点的描述。这也就注定了对于一个工程我们不能像对“修理自行车”一样随意、任性而为,需要我们有固定且科学的流程、实用且有效的方案、清晰且正确的思路。所以我认为软件工程正是对开发软件的过程中这三点的培养。这也相应地涉及到软件工程专业的三门特色课程:软件工程、系统分析与设计、软件工程过程。回想2003年,全国第一批软件工程专业建立时,全国的软件工程专业都处于探索之中,当时的专业特色课程只有“软件工程”一门课,现如今我航软件工程专业特色课程变成了三门,丰富了学科培养内容,同时也更加凸显了软件工程专业与计算机科学专业的差别。
我认为软件工程专业培养的是从软件开发思路到软件开发流程再到软件开发各部分实现的整体把控。软件工程强调的是对工程思想的把握。按照某一过程,对已有经验的适应性调整,从而实现更好更快地开发出满足客户需要、满足市场的软件产品。软件工程专业的学生有很多可选就业方向,如:项目经理,系统架构师,测试人员,前端开发,后端开发等。当然这些都需要自己去选择并为之努力学习!
软件工程专业本科阶段的学习比较基础。首先我们需要有专业的数学功底:离散数学,高等数学,线性代数,概率论。然后我们需要选择、学习并熟练掌握一门开发语言如:C/C++,Java,C#等。然后是数据结构、算法的学习,二者是计算机方面最基础的东西需要认真学习!之后我们需要了解、掌握并熟练运用面向对象思想进行软件开发(这个思想很重要!)。接下来就需要掌握一些功能强大的工具的原理和使用如:数据库,编译器。这就涉及到数据库系统原理(讲的是关系型数据库,自己也可以学习对象数据库)和编译原理(个人认为有较高的理论价值,实用性不强)两门课。然后就需要掌握一些计算机底层的运行情况,涉及到:计算机组成、操作系统。还需要掌握计算机网络方面的知识,计算机网络课程。至此我们已经有了较好的计算机基础,接下来就是软件工程特色课程的学习。本科阶段教授的都是一些基础性的知识,我们也可以根据自己的未来规划去寻找相应书籍进行阅读学习。
从当时的无知到如今对软件工程更加地了解,我觉得我真的是喜欢上了这个专业。计算机知识的学习和软件工程思想的培养建立都是我本科阶段的财富!