怎样正确地选择大学专业？
软件工程专业在国内是一门 21 世纪新创立的学科。在 2001 年，全国 35 所高校一起创立了首批软件学院、软件工程专业，这时软件工程专业与计算机科学与技术专业拆分开，很多院校的软件学院的教师队伍是从计算机学院或计算机专业划分来任职。 因此，当下时期，可以发现各个高校的软件学院与计算机学院仍旧过从甚密，公用同一套教师、行政班子，与计算机学科同根同源，但是在学科的设置和重点关注的方向上略有不同。 软件工程本科毕业的同学完全支持就业的，达到了就业的水平。现阶段下市场的环境比较好，因此就业难度较低，往往大部分同学都可以找到较为满意的工作，但是本科毕业的同学待遇普遍会低于继续攻读研究生的同学，进入一些优质的互联网大厂难度也会更高。 如果对这个专业有兴趣，不妨看看下面的详细介绍。 本文作者：陈同学，清华大学软件学院软件工程硕士在读。 当下社会，手机上的软件已经充斥在我们生活的各个角落，最大程度的改变了人们的生活，包括移动支付、网上购物、社交聊天、娱乐休闲都离不开「软件」，而这些软件的编写、安装、优化正是软件工程专业同学们的看家本领。 但是软件工程专业的同学们能做的远不止这些，和软件相关的底层所有工作都离不开软件工程学科人才。 举个例子，例如网上购物的淘宝软件，是由软件人编写代码并开发完成，包括交互页面的实现、页面背后的逻辑设计、推荐系统工程决定给哪些人推荐哪些商品、利用银行卡绑定移动支付完成付款并实现对账、保证整个支付流程正确性、保证账户的安全性防止受到不法分子的攻击等等。 软件工程人能做到的不仅仅是一个软件中能看到的部分，更多的是其中「看不见」的底层逻辑的设计和实现。 软件工程专业在国内是一门 21 世纪新创立的学科。在 2001 年，全国 35 所高校一起创立了首批软件学院、软件工程专业，这时软件工程专业与计算机科学与技术专业拆分开，很多院校的软件学院的教师队伍是从计算机学院或计算机专业划分来任职。 因此，当下时期，可以发现各个高校的软件学院与计算机学院仍旧过从甚密，公用同一套教师、行政班子，与计算机学科同根同源，但是在学科的设置和重点关注的方向上略有不同。 软件工程的学科建立是希望培养具有扎实的软件基础理论，熟练掌握软件设计、开发、测试、维护技术，具备软件开发组织管理能力的专业人才，可从事高层次软件研发、管理和软件产品开发项目管理岗位的工作。专业注重培养服务于国家重大的战略需求，培养出一批卓越的软件工程师。 当今社会社会对于高素质的软件工程人才需求十分旺盛，软件人才培养的速度和质量均难以满足实际需求，因此，软件工程学科可能仍是未来几十年热门的专业。 常情况下，各院校的培养方案中有校级通识课、专业课程两大类。各院校对通识课的安排不尽相同，但专业课程的设置较为类似。以清华大学软件工程为例，专业课程按照知识深度递增，可分为以下几类： 基础课：通常在大一一年学完。数学和物理相关的课程更接近在高中已有的数学与物理知识上的拓展，使用微积分、线性代数求解略微复杂一些的数学问题。专业相关的有一些信息科学技术基础、数字电子基础等，用于了解信息技术领域的基础概况，作为软件工程的入门课程。 核心专业课：课程分布在大二、大三两年。这些课程建立在上一阶段课程的基础上，培养动手能力与应用实践能力，注重在理论的基础上，培养学术研究与应用落地实践的思维。这一阶段的数学课程，如离散数学与图论，也是为了学习计算机类学科常用的符号表达和概念。 按细分方向的选修课：这些选修课的内容或是为接触科研前沿做铺垫，或是为了培养学生的应用技能开设的理论课，课上通常同时有本科生和研究生。 其中数理基础课和核心专业课程都属于必修内容，而后续的选修课程则与各类细分的专业方向相关。如深度学习领域课程的机器学习、计算机图形学领域的计算机图形学基础课程、系统基础架构领域的云服务性能优化课程、硬件与软件领域的物联网工程课程和嵌入式系统课程。 软件工程内部的细分方向相当之多，未来一般可以分为软件系统领域与其他的学术领域，其中最主干的方向包括： 软件测试：包括软件的形式化验证、软件的自动化测试等领域研究。就业方向也与软件系统的形式化验证有关，如华为操作系统团队，或者相关科研院所。 软件安全：研究对象针对区块链或者软件系统，检验系统的安全可靠性，防止受到攻击，与科普文章经常听到的「黑客」相对抗。当今社会非常缺乏网络安全、信息安全等领域的人才，也是信息时代必不可少的一部分，符合国家战略需求。就业方向从国家信息安全相关的研究院到各个互联网、工业界公司网络安全部门。 基础架构与系统内核：