如果对这个专业有兴趣,不妨看看下面的详细介绍:学科本身、学科知识结构、深造与就业、专业氛围。
1 关于学科本身
当下社会,手机上的软件已经充斥在我们生活的各个角落,最大程度的改变了人们的生活,包括移动支付、网上购物、社交聊天、娱乐休闲都离不开「软件」,而这些软件的编写、安装、优化正是软件工程专业同学们的看家本领。
但是软件工程专业的同学们能做的远不止这些,和软件相关的底层所有工作都离不开软件工程学科人才。
举个例子,例如网上购物的淘宝软件,是由软件人编写代码并开发完成,包括交互页面的实现、页面背后的逻辑设计、推荐系统工程决定给哪些人推荐哪些商品、利用银行卡绑定移动支付完成付款并实现对账、保证整个支付流程正确性、保证账户的安全性防止受到不法分子的攻击等等。
软件工程人能做到的不仅仅是一个软件中能看到的部分,更多的是其中「看不见」的底层逻辑的设计和实现。
软件工程专业在国内是一门 21 世纪新创立的学科,在 2001 年,全国 35 所高校一起创立了首批软件学院、软件工程专业,这时软件工程专业与计算机科学与技术专业拆分开,很多院校的软件学院的教师队伍是从计算机学院或计算机专业划分来任职。
因此,当下时期,可以发现各个高校的软件学院与计算机学院仍旧过从甚密,公用同一套教师、行政班子,与计算机学科同根同源,但是在学科的设置和重点关注的方向上略有不同。
软件工程的学科建立是希望培养具有扎实的软件基础理论,熟练掌握软件设计、开发、测试、维护技术,具备软件开发组织管理能力的专业人才,可从事高层次软件研发、管理和软件产品开发项目管理岗位的工作。专业注重培养服务于国家重大的战略需求,培养出一批卓越的软件工程师。
当今社会社会对于高素质的软件工程人才需求十分旺盛,软件人才培养的速度和质量均难以满足实际需求,因此,软件工程学科可能仍是未来几十年热门的专业。
2 学科的知识结构
2.1 培养方案
通常情况下,各院校的培养方案中有校级通识课、专业课程两大类。各院校对通识课的安排不尽相同,但专业课程的设置较为类似。
以清华大学软件工程为例,专业课程按照知识深度递增,可分为以下几类:
基础课:通常在大一一年学完。数学和物理相关的课程更接近在高中已有的数学与物理知识上的拓展,使用微积分、线性代数求解略微复杂一些的数学问题。
专业相关的有一些信息科学技术基础、数字电子基础等,用于了解信息技术领域的基础概况,作为软件工程的入门课程。
- 数学课程:微积分、线性代数、概率论
- 物理课程:大学物理
- 专业课程:信息科学技术概论、数字电子技术基础
核心专业课:课程分布在大二、大三两年。这些课程建立在上一阶段课程的基础上,培养动手能力与应用实践能力,注重在理论的基础上,培养学术研究与应用落地实践的思维。
这一阶段的数学课程,如离散数学与图论,也是为了学习计算机类学科常用的符号表达和概念。
- 数学课程:离散数学与图论
- 专业课程:软件工程、面向对象程序设计基础、数据结构、计算机组成原理、操作系统、计算机网络、汇编与编译原理、数据库原理
按细分方向的选修课:这些选修课的内容或是为接触科研前沿做铺垫,或是为了培养学生的应用技能开设的理论课,课上通常同时有本科生和研究生。
- 学术科研基础课程:机器学习、计算机图形学基础、云服务性能优化、物联网导论
- 软件应用技能课程:嵌入式系统、模型驱动的软件开发、大数据系统软件
其中数理基础课和核心专业课程都属于必修内容,而后续的选修课程则与各类细分的专业方向相关。
如深度学习领域课程的机器学习、计算机图形学领域的计算机图形学基础课程、系统基础架构领域的云服务性能优化课程、硬件与软件领域的物联网工程课程和嵌入式系统课程。
2.2 细分方向
软件工程内部的细分方向相当之多,未来一般可以分为软件系统领域与其他的学术领域,其中最主干的方向包括:
软件测试:包括软件的形式化验证、软件的自动化测试等领域研究。就业方向也与软件系统的形式化验证有关,如华为操作系统团队,或者相关科研院所。
软件安全:研究对象针对区块链或者软件系统,检验系统的安全可靠性,防止受到攻击,与科普文章经常听到的「黑客」相对抗。
当今社会非常缺乏网络安全、信息安全等领域的人才,也是信息时代必不可少的一部分,符合国家战略需求。就业方向从国家信息安全相关的研究院到各个互联网、工业界公司网络安全部门。
基础架构与系统内核:主要研究系统调度、分布式架构,方向俗称的「基础架构」,是针对一个软件系统底层的性能和可靠性的研究,也是近些年各个互联网公司的就业方向中非常吃香的方向,难度和薪酬均高于普通的软件开发人员。
工业系统软件与数据智能软件:主要研究有国产数据库、国产工业场景使用的大数据软件、国产的机械设计制图软件(CAD)等,其中的细分方向包括软件的性能研究、分布式数据库的存储等。
国内的软件发展起步较晚,现阶段在尽可能填补软件系统流程中国产软件的空白,该方向是国家发展的重要方向,研究的是工业流程中被「卡脖子」的必不可少的软件。
深度学习与迁移学习:该方向和计算机大类的研究方向重合,研究的方向包括传统的机器学习、深度学习、迁移学习、半监督学习、神经网络等等方向,或者是以上方向和工业场景相结合的交叉方向。
物联网或网络相关:该方向和物联网工程的研究方向重合,包含物联网、智慧城市、射频识别技术等和传感器有关的方向,也包括无人车、无人机等方向,研究对象和硬件关联度较大。
这几个方向是软件工程学科之下的细分方向中最主要的几个,除了这些方向外,发展出了一些非常新方向:
如,数据可视化技术、数字货币等随着时代变迁较逐渐衍生出的新兴方向,由于软件工程存在于各个领域,因此有与不同的学科交叉的方向,如车辆、核电、金融等方向,因规模相对较小,在此不再赘述。
2.3 交叉学科
软件工程基本上与所有使用到软件的专业都有交叉,很难总结出交叉学科列表,一个优秀毕业生可以在一段时间的补课后胜任大多数学科的理论研究,只要是需要计算机类、信息技术类人才的各个领域,包括金融、工业界等等,也均可以作为交叉研究方向。
2.4 软件工程、计算机科学与技术、物联网工程
部分院校会在信息学院或者计算机学院下设计算机科学与技术学科、软件工程学科、物联网工程学科。它们都属于计算机类学科,但是在课程设置和培养目标上略有不同:
如软件工程设立了更多与软件有关的课程,包含软件系统测试等,偏重于应用实践;
计算机更多偏向于学术研究的,包括计算机系统底层体系研究、深度学习、人工智能、操作系统等方向侧重;
而物联网工程更偏向于硬件编程开发,或者网络相关的如传感器等,更加侧重区别于软件的「硬件」知识学习。
在被软件包围的社会中,高中生、家长可能认为软件工程学的是安软件、修电脑,或者觉得不像计算机科学与技术专业,软件工程没有可以学术研究的领域,只有应用。
实际上,软件工程不仅可以研究和计算机技术相关的领域,还有很多软件独有的专业领域。软件工程也非常适合于希望未来培养更加偏向于应用技能的同学。
另外值得提醒的是,很多学校的计算机专业的录取分数线往往高于软件工程专业,但是培养方案和学习课程却非常相似,因此,如果是为了报考录取性价比考虑,也可以考虑软件工程专业。
3 前景:深造与就业
根据不同学校的样本,软件工程学科的本科生毕业之后的去向差异性非常大。
有的学校的软件工程的学生继续攻读研究生的比例非常高,有的学校依据学院的就业风气,就业的比例非常高,因此,本科生毕业不具备通用的读研比例或就业比例,这样也恰恰说明,软件工程本科毕业的同学完全支持就业的,达到了就业的水平。
但是不得不承认的是,大部分情况下学历越高,就业的机会越广,未来的就业发展也越高。
以下按照几个方面介绍本科毕业的前景:
文章评论