作为第三次工业革命的主角,电子计算机深刻地改变了人类社会的生产和生活方式。从载人飞机的发射到繁忙穿梭的地铁,从逼真的电影特效到高清的动画大片,从快速便捷的网上消费到无所不及的智能手机……计算机已深入渗透到社会生活的各个领域,可以说影响无处不在。
软件工程
【是什么】
软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科,是计算学科的分支。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。通俗地讲,软件工程就是研究如何把计算机软件当作普通产品,以“工程化”方式大规模生产的技术。比如在日常生活中使用手机、电脑等电子产品进行工作、娱乐活动时,我们看到的是文字、图片,而计算机运行的底层语言则是电子信号和二进制符号,像这样构建机器与人之间的沟通互动平台,就是软件所要实现的功能。
软件工程专业的学习内容以计算机科学与技术为基础,进一步研究不同系统环境软件面临的各种问题。一个完整的软件需要经历三个阶段,分别为定义阶段、开发阶段、运行和维护阶段,每个阶段都涉及不同方面的计算机知识,且由于运行环境、操作系统、编译语言的不同,软件的种类也非常多,因此软件工程专业的学生需要学习的知识比较广泛。但在本科阶段,主要学习的内容可大致分为软件开发技术和软件工程管理技术两方面。
软件工程的研究和实践涉及人力、技术、资金、进度的综合管理,是开展最优化生产活动的过程。软件工程必须划分系统的边界,给出系统的解决方案。因此,软件工程的相关学科有计算机科学与技术、数学、计算机工程、管理学、系统工程、人类工程学等。
软件工程对软件的快速生产、普及、维护、升级等有着重要而深远的影响,是计算机领域发展最快的学科分支之一。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,覆盖工业、农业、金融、航空等各个领域。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率。
【学什么】
高等数学、线性代数、概率论与数理统计、程序设计语言、数据结构、离散数学、操作系统、编译原理、软件工程概论、统一建模语言、软件体系结构、面向对象程序设计、数据库原理与实现技术、软件项目管理、计算机安全等课程。
【做什么】
一、在各种规模的 IT 企业,从事软件设计、软件开发、项目管理等工作。二、在对 IT 技术依赖度较高的金融、电信等行业的 IT 部门从事行业内的业务软件开发、测试、维护等工作。三、在对软件开发、运行、维护有需求的各类单位,如政府、媒体、学校等单位从事软件相关工作。就是在各相关领域做软件工程师。
【看前景】
软件产业的发展水平决定一个国家信息产业的发展水平及其在国际市场上的综合竞争力。中国的软件行业规模不是很大,有些软件企业在软件制作上,也只是采用了一些软件工程的思想,距离大规模的工业化生产还有一定差距。所以软件工程的研究和应用,以及中国软件行业的进一步发展,都需要一定数量的既有软件工程理论基础和研究能力又有一定实践经验的软件工程科学技术人员来推动。目前,我国软件高级人才的短缺已经成为制约我国软件产业快速发展的一个瓶颈。在中国十大 IT 职场人气职位中,软件工程师位列第一位,软件工程人才的就业前景还是相当乐观的。
【提个醒】
各个学校由于传承不同,在专业方向、培养侧重等方面也有所差异,考生报考时要全面了解,选择适合自己兴趣爱好和能力水平的院校。另外,该专业对数学和物理水平的要求较高,学习专业时还要学习更深层次的知识,尤其是数学学科。而且,有些学校的计算机主干课还会采用双语教学。所以,数理和英语学科基础扎实、有较强钻研能力的考生更适合报考该专业。
【辨异同】
计算机科学与技术& 软件工程
这两个专业都与计算机和编程技术相关,都要掌握计算机科学的基础知识和编程的基本功,前两年的课程非常相似,只是软件工程专业对硬件的知识要求相对少一些。但是,这两个专业的关注点有很大的不同:计算机科学与技术专业,学习技术是为了改进技术,做出更好的技术,研究出更好的理论,只有扎实地知道计算机底层是怎么工作的,才能研究出更好的计算机;软件工程专业,学习技术是为了知道计算机在什么情况下可以用什么样的技术更好地解决问题,更关注开发大型软件系统的组织方法和流程,因此会有专门的系列课程,训练学生详细了解软件工程的各个环节。用建筑行业来打个比方:计算机专业主要研究相关理论和新型材料;软件工程专业则听取客户要求,选择合适的材料和技术,组织成百上千的工人把房子盖起来,两者工作的难度和重心是不同的。再从同学们熟知的偶像角度打个比方,计算机专业仰慕图灵,而软件工程专业仰慕盖茨和乔布斯。(图片来源于网络,如有侵权请联系删除。)