同学们在看到软件的时候,可能会想到WPS等办公软件,但是软件还有更广的应用。例如建造高楼大厦时,它内部的钢筋配置已经不再需要工程师们辛苦的计算,取而代之的是由软件工程师们设计的精妙程序,只需要设计者输入建筑的参数,钢筋的配置就由电脑完成了。在我们看来十分复杂的东西,通过电脑、软件,轻轻松松就搞定了!“把繁杂、重复的事情交给计算机,使人得到更大的解放”,这是软件工程师的能力。所以,今天小编准备“学习学习”这样的能力,让自己得到解放。快跟一号志愿一起走近“软件工程”专业吧!
一、专业概述
对于软件工程的定义,尚没有共识,不同学者与机构都有自己的定义,比较通用的是:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
而要细说软件工程,就应从软件的历史说起。在软件开发历史上曾经历了三个阶段:围绕硬件进行开发,规模很小的程序设计阶段;硬件环境相对稳定,出现了“软件作坊”的开发组织形式的软件设计阶段;软件危机的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法而到达的软件工程阶段。
软件工程涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都要用到计算机软件,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作和生活效率。
二、师兄师姐学习经验及建议
1.学习本专业的体会
软件工程,顾名思义就是一个和软件开发相关的工科类专业,和传统的计算机科学专业相比,软件工程专业较偏向于工程及实践,注重培养学生做工程及实践的能力,不像计算机科学偏向于理论。但是并不意味着软件工程不重视理论,相反,理论是一切工程的基础,只有熟练掌握基础的理论,才能将其付诸实践。
软件工程在专业课程设置上与计算机科学较为相似,基础课程包括程序设计、数据结构和算法、离散数学、线性代数、数据库、计算机组成原理、计算机网络、操作系统等与计算机理论相关的课程。除此之外,还包括一些软件工程特色课程,如软件测试、系统分析与设计等培养系统工程化思维的课程。
既然和计算机相关,那么平时除了学习一些如高等数学等的公共必修课外,极大部分时间都会用在学习相关的专业课程上(如上)。而这些专业课程的一个共同点就是少不了一定量的编程。可以说,在课后的学习时间中,如果想把这个专业学好的话,需要投入80%的时间,因为除了学习课上的一些知识外,还要学习课上老师没讲但是在实际IT界非常流行的技术。
毕竟这是个日新月异的学科,知识的更新速度是很快的,在这里不妨提一下在大学十分重要的学习方法,就是需要自己不断地学习课堂上没讲的知识。因为课堂上不会教给你具体的技术,知识教授了最重要的思想和方法(当然包括一些基础,如编程知识),实际更多的技术还是要自己学习。
关于编程,对我而言,这是个充满乐趣同时又充满挑战的事情。当你看到自己编写的程序可以在计算机中计算微积分从而帮你做作业,当你看到自己搭建的个人博客成功上线,当你看到程序可以将图片中的人脸识别出来的时候,心中会有无限的成就感和动力。但是,编程同时也要求有一定的逻辑思维和数学能力,毕竟计算机理论都是需要逻辑的,因此培养自己的逻辑思维能力也很重要。
关于专业相关的活动,其实有很多。如果你对算法感兴趣,可以参加程序设计大赛,厉害的可以到世界各地与各国选手一决高下;如果你对软件设计感兴趣,可以参加一些软件开发大赛,例如Google安卓手机软件开发大赛等。
2.大学四年的学习生活
先说说大一吧,那时刚学习编程,课程的作业和压力很小,基本上除了完成作业外,还是有很多时间学习其他知识和参加其他活动的。有兴趣的可以加入一些相关的计算机社团,和一些志同道合的同学一起研究技术,挖掘有意思的东西。
到了大二,逐渐地对这个专业有了更深的了解,同时相关的编程技术也有了一定的提升,这时也会萌生一些新的想法,想付诸实践。这时就会和小伙伴参加一些小比赛,开发一些小的软件,体会其中的乐趣,同时在这个过程中自己也得到很大的提升。而同时,专业课程也会相应地提高难度,需要花更多的时间和精力投入其中。
而且这一年也会逐渐接触一些称之为“Project”(项目)的东西,也就是老师布置的课程大作业。一般都需要将这门课学的知识融会贯通,然后开发一个软件或者实现某个想法。在完成这些Project的过程中,会开始遇到困难,但是同时也渐渐学习了怎么运用Google等来进行搜索。还会对课上以及其他专业课上的知识有了更高的一层的理解。
大三,几乎都是专业课了,而专业课难度更高,Project当然少不了,而且会接踵而至,通常一个星期有几个Project要交。而这时,你会觉得学到的东西越来越有趣,想法也会越来越多,在Project上学到的也更多了。
在大三下学期,大多数都会参加腾讯等企业的实习,你需要开始对三年所学的知识做总结和回顾,对一些细微的知识点谨慎揣摩,开始投递简历,笔试,面试,最后进入到实习中。大三除了面临课程外,也要开始考虑毕业后的方向,有的出国,有的保研,有的直接工作。这就要求能对自己做好规划,既不耽误当前学习,也明确以后的方向。
3.学习本专业后的能力提升
正如前面所说,本专业要求具有一定的数学能力和逻辑思维能力,还要有一定的动手解决问题的能力。但是对个人在这些方面的能力提升也有很大帮助,而这些能力,无论是对于以后的继续深造还是就业都是一笔巨大的财富。
三、专家提醒
当今社会信息技术高速发展,计算机应用已经渗透到经济与社会生活的方方面面。软件产业的发展水平,从某种程度上来说,决定着一个国家的信息产业发展水平及其在国际市场上的综合竞争力。因而,目前国内外对高素质软件工程人才的需求均十分旺盛,并有需求逐年扩大之趋势。