软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。如在超市购物结账时,营业员一般通过计算机进行业务操作,先扫描物品条形码,使之传输到计算机得出销售价格并累加、汇总出物品总金额,再计算找零数目,并记录结账时间、金额和购物地点——这里条形码与价格间的相互转换以及金额汇总功能便是通过内嵌在计算机的软件程序发布指令实现的。软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员、软件设计师、系统架构师、程序员、测试员等等。人们也常常用程序员来泛指各种软件工程师。
考生在选择这一专业时,要注意以下几点:第一,学习本专业需要有较好的数学、物理、英语基础和对计算机浓厚的兴趣。第二,本专业对学生的动手能力要求很高,并需要同学们具备很强的自学能力。因为IT行业变化很快,发展也很迅猛,具备自主学习能力则是保障就业路途坦荡的通行证。另外,无论编写软件程序还是架构系统,具备缜密的思考能力和开阔的设计思路,才是自身不断进步的“王道”。第三,软件工程专业学习压力大。为了在高年级时能选择专业方向和开展实习工作,本专业在低年级集中了较多基础课程,因而低年级阶段的课程压力较重;另一方面,进入高年级实习阶段以后,除了完成好实习工作任务之外,还需要继续学习相关专业知识,除了普通的书本学习之外,学生还要完成大量的专业实验课程、软件项目开发实践训练和工程实践环节,学习压力比较大。第四,本科学费较高、软件工程专业一年的学费一般都三倍于普通专业,专科学费相对便宜。另外,报考时最好以国家颁布的36所试办示范性软件学院高校为首选。
“计算机导论”学习计算机系统的基本概念、硬件基础知识和软件基础知识,掌握Windows 操作系统、Internet工具、Office (Word、Excel、Access、PowerPoint)软件的常用操作方法。“离散数学”学习离散数学的基本概念、内容和验算技能。“C语言程序设计” 研究计算机解题的一般过程、算法概念、结构化程序设计方法和解决问题的技巧,学习C 语言结构化编程。“数据结构与算法”学习软件设计中常用的数据结构以及相应的存储结构和实现算法;介绍了常用的多种查找和排序技术。“计算机硬件基础”学习计算机硬件系统的基本组成原理和各种接口技术,包括计算机工作原理、微机系统的构成、微处理器的结构与工作原理、基本指令系统、存储器、系统总线、中断技术、接口电路、外部设备等。“面向对象程序设计(Java) ”学习新一代程序设计思想和逻辑思维方式进行计算机编程研究,初步运用Java技术和基本开发工具进行计算机软件代码设计。“编译技术”研究编译系统的结构及各部分的功能、深刻理解计算机程序的运行机制、掌握设计和构造程序语言编译系统的基本原理和主要实现技术。“人机界面设计”学习软件界面的基本概念、要求、基本特性和分析方法;人机界面的快速原型及其开发工具、可视化界面、人机接口技术等内容。 相近专业新媒体与信息网络、信息与计算科学、生物信息技术、地理信息系统、地球信息科学与技术、生物信息学、电子信息科学类、光信息科学与技术、信息科学技术、影视艺术技术、信息显示与光电技术、计算机软件、电力工程与管理、仿真科学与技术、电机电器智能化、传感网技术光、电子材料与器件、电子信息工程、电子科学与技术、通信工程、信息工程、广播电视工程、医学信息工程、网络工程信息安全、物联网工程、数字媒体技术、智能科学与技术、空间信息与数字技术、信息对抗技术、信息管理与信息系统、数字媒体艺术
重点院校:清华大学、北京航空航天大学、天津大学、大连理工大学、大连海事大学、南京理工大学、浙江大学、中国科学技术大学、暨南大学、重庆大学、电子科技大学、西安电子科技大学、中国农业大学、西南交通大学、安徽大学、东北大学、南京信息工程大学、新疆大学普通院校:北京电子科技学院、北京信息科技大学、北方工业大学、大连民族学院、中北大学、南京邮电大学、杭州电子科技大学、浙江理工大学、中南民族大学、南昌航空大学、深圳大学、成都信息工程学院、沈阳航空航天大学、江苏技术师范大学、安徽师范大学、山东科技大学、五邑大学、东莞理工学院、合肥学院、梧州学院、聊城大学、宁波大学、河北大学、山西大学、黒龙江大学、浙江工业大学、江西师范大学、烟台大学、深圳大学、重庆邮电大学、天津师范大学、杭州师范大学、井冈山大学、曲阜师范大学、洛阳师范学院、西华师范大学、辽宁石油化工大学
软件工程专业主要的研究生方向有人工智能、软件工程与管理、网络信息安全、嵌入式软件等。1.人工智能。人工智能是开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。2.软件工程与管理。该方向主要培养学生两方面能力:从设计的角度着力培养学生的软件系统的分析设计能力和软件构架能力;从管理的角度着力培养学生的软件项目统筹规划能力、软件项目管理控制能力。3.网络信息安全。信息安全是软件工程和信息化技术的重要研究领域。随着信息技术的发展,特别是互联网的迅速普及和广泛应用,网络和信息安全的地位越来越重要,网络和信息安全成为保障国家安全、经济发展和社会稳定的重要基石。4.嵌入式系统。该方向融合了微电子、计算机硬件、通信和电子工程等多种技术,广泛应用于航天、航空、仪器仪表、工业控制、通信、信息家电、移动计算设备、网络设备、仿真、医疗仪器、汽车电子等领域。二十一世纪计算机技术开始进入一个被称为后PC技术的时代,嵌入式软件成为数字化产品设计创新和软件增值的关键因素,是未来市场竞争力的重要体现。
该专业的毕业生可以从事以下几种工作:1.程序员。程序员可以分为很多种,像Unix程序员、Windows程序员,或是C++程序员、Delphi程序员等等,主要负责户的需求分析,策划程序框架、流程;编写代码,开发程序,测试,运行程序;程序员的职业生涯则是一个要求不断学习的过程,所以好多程序员都是做上三五年就往技术管理方面转型。2.项目经理。项目的直接负责人,这个角色相当于一个中间接口,不管是团队成员还是需求方(客户),或者是上级领导,有事都直接找他,所以这个职位着重于管理与沟通。对于项目经理来说,重点会要求沟通能力、协调能力、危机把控能力、执行力、团队管理能力,着重于沟通、管理与计划。3.技术经理。也可能叫系统分析员。技术经理承担的角色主要是系统分析、架构搭建、系统构建、代码走查等工作,如果说项目经理是总统,那么技术经理就是总理。对于技术经理来说,你需要知道某种功能用哪些技术合适,需要知道某项功能需要多长的开发时间等。4.产品经理。主要负责产品的设计、产品的改良等工作。产品设计与设计师是两个不一样的工作,产品设计主要会从用户体验、业务需要等层面去设计产品,而设计师更多是从用户的视觉上去做。产品经理应该是最懂业务的人,比如说你在设计一个微博的产品,就要求你对微博这个东西非常熟悉,从用户习惯、用户体验、公司的发展战略上去设计这个产品,还要对比同类产品会有什么优势等等。一般来说,产品经理要求对业务最熟悉,项目经理次之,技术经理排最后。对于程序员来说,刚开始工作的前几年可以埋头扎到技术里面,一般这个时间在2-3年的时间,然后就应该多关注业务了。程序员的发展基本上都会经历这么几条路径:程序员-系统分析员-架构师-技术经理-CTO;程序员-项目组长-项目经理-项目总监-CTO;程序员-产品设计师-产品经理-CTO。国家设立的认证:软件资格准入证;有两三年开发经验的人员就可以考取系统分析师、需求分析师、网络工程师、系统架构师。各大企业或是商业机构设立了自己的认证,比如:微软的认证、Sun的认证以及Oracle的认证等等。
随着全球经济一体化进程加速,大量外企的进入,我国缺乏软件系统理念指导的传统企业将面临严峻的挑战。现在中国政府正在大力支持中国软件行业的发展,经过了系统化体系培训的软件人才更容易走向国际化,也受国内大中型规模软件公司的欢迎。但目前我国软件行业规模不是很大,有些软件企业在软件制作上,也只是采用了一些软件工程的思想,距离大规模的工业化大生产比较还是有一定的差距。软件工程的研究和应用,以及我国软件行业的进一步发展,都需要一定的既有软件工程的理论基础和研究能力,又有一定的实践经验的软件工程科学技术人员来推动。软件工程师跟一般程序员工作内容有差别,程序员的工作仅按照指定的分工来做源代码。因此在薪酬方面也有相应体现,智联招聘网的统计显示,软件工程师的年薪在10万元左右,一般编程人员的年薪只有四五万。从晋升角度来看,软件工程师理想的状态是走向软件架构师、项目总监、研发经理等职位。