软件工程学位与职业如何成为软件工程师
软件工程是一个对整个计算机技术至关重要的领域。如果没有运行计算机硬件的软件,硬件就只是一堆塑料、硅和金属——可能就像一个昂贵的镇纸一样有用。
从最严格的意义上讲,软件工程是将工程原理应用于软件的设计、开发和实现。因为软件工程是一个独特的、科学和技术驱动的领域,所以需要特殊的培训和正式的学位。通过获得软件工程学位,毕业生可以在任何领域工作——制作视频游戏、开发互联网应用程序、运行计算机网络或为组织实施计算机安全措施。了解更多关于软件工程学位和职业的信息,了解这个专业领域的工资和就业预测。
软件工程师做什么?
结合业务意识和编程知识,软件工程师为业务问题设计软件应用解决方案。软件工程师在不同的平台上工作,如互联网、移动设备和台式计算机。
软件工程师的工资
市场对合格软件工程师的需求已经形成了一场顶级人才的军备竞赛。来自ComputerWorld、美国劳工统计局(Bureau of Labor Statistics)和罗致恒富国际(Robert Half International)的薪资研究都揭示了同一件事:公司愿意支付溢价来获得顶级人才,有些公司的年薪甚至高达六位数。《计算机世界》2015年IT薪资调查报告显示,软件工程师的平均薪资接近10.9万美元,而罗致恒富报告的薪资在9.6万美元至14.7万美元之间。金融环境对那些考虑在该领域发展的人来说是有利的——罗致恒富预计2016年的薪资将上涨6.6%。
软件工程的顶级职业 | 工资中位数 |
---|---|
软件工程师、应用 | 95510美元 |
软件工程师、软件 | 102880美元 |
资料来源:美国劳工统计局,《职业和工资估计》,2014年
成为软件工程师的步骤
软件工程是一个不断变化的职业,它随着新技术的发展而变化。由于其变化无常的性质,进入这一职业有多个切入点。虽然没有成为软件工程师的单一路径,但下面的步骤概述了就业的一般路径。
副学士学位(两年):虽然雇主通常更喜欢拥有四年学位的候选人,但副学士学位可以打开该领域入门工作的大门。学生可以选择几个相关领域的专业,如软件工程技术或软件系统工程。课程集中在软件工程、编程语言和软件开发的现代方法的核心原则。
学士学位(四年):计算机科学或相关领域的学士学位是雇主所青睐的传统最低学位。学士学位课程让学生接触到更广泛的课程,为数学和计算机科学打下基础。学生对编程、软件体系结构和软件测试有全面的理解。他们还可能学习应用领域的专门课程,如网络或嵌入式系统。
编码训练营(8到12周):对于有抱负的软件工程师或开发人员来说,编码训练营是一种相对较新的教育途径。这些项目通常持续8到12周,将学生置于动手、沉浸式的学习环境中。在毕业的时候,学生应该为软件工程师或开发人员的初级职业做好准备。
- Web开发
- DevOps
- 移动开发
- 技术堆栈(例如,Python、Ruby)
软件工程学位和专业
将目标与软件工程学位相匹配
职业目标和教育需求 | 联系 | 学士 | 硕士 | 博士学位 | 在线 |
---|---|---|---|---|---|
我已经在计算机技术领域工作了,但是我想发展我的事业。也许我可以通过管理大型软件开发项目来承担更多的责任,或者最终进入管理岗位。 |
|
||||
我没有计算机技术或计算机科学方面的教育背景,但我非常确定我想成为一名软件工程师,并尽快开始在该领域工作。 |
|
||||
我想我想学习软件工程,但我不能百分之百确定。我不想浪费四年的时间和大量的金钱在一个学士学位上,我可能不会喜欢的东西。如果有一种方法可以让我接触到软件工程的基础课程,而不需要投入四年的学校教育,我将非常高兴。 |
|
||||
我有广泛的软件工程背景,在私营部门工作了多年。我的经历给了我很多我想探索和研究的想法。还有,我可能想尝试一下教学。 |
|
||||
我想找一份软件工程师的工作,但我负担不起去上学的费用,也没有时间去上白天的校园课程。此外,我喜欢自我调节学习节奏,这样我就可以快速读完我所理解的内容,但在学习更具挑战性的材料时要花时间。 |
|
软件工程学位水平
对于那些对软件工程学位感兴趣的人来说,在研究生和本科阶段有很多选择。根据之前的工作和教育背景,以及职业抱负,一个学位可能比另一个更有意义。让我们来看看可用的软件工程学位。
软件工程副学士学位
软件工程的副学士学位大约需要两年的时间才能完成。对于想要获得学位的学生来说,副学士学位是一种很有用的方式,可以让他们不必花费时间和金钱来获得四年制学位,就可以从事入门级的软件工程工作。作为额外的奖励,一些副学士学位可以作为日后获得学士学位的垫脚石。
典型的软件工程副学士课程包括:
数据库管理系统
本课程涵盖了数据库管理系统的工作原理,以及如何在一个组织中设计、创建和实现系统以满足其特定的需求。
技能的获得
-
熟悉常用的数据库管理系统 -
学习关系数据库、层次数据库和面向对象数据库的原理 -
了解当前数据管理的趋势,如数据挖掘和业务分析
Web应用程序开发
本课程将回顾web应用程序的体系结构设计,以及帮助构建web应用程序的编程语言和技术。
技能的获得
-
设计一个web应用程序 -
实现和测试客户端和服务器解决方案 -
学习用户界面原则
操作系统
本课程将讨论操作系统设计和操作的基本概念和基本原理。
技能的获得
-
常用的操作系统编程语言 -
计算机体系结构设计注意事项 -
文件管理技术
网络
教授学生网络的基本原理,以及软件在网络功能和应用中所扮演的角色。
技能的获得
-
网络安全协议 -
类型的网络 -
网络设计注意事项
软件工程学士学位
对于刚从高中毕业(或从其他职业转行)的学生来说,如果他们想要最大化自己在软件工程方面的专业潜力,并为自己找到理想的研究生工作提供最好的机会,软件工程学士学位是值得追求的。事实上,大多数入门级的软件工程职位都需要这个四年的学位。一些更高级的职位可能需要软件工程硕士学位。在这种情况下,学士学位可能是入学的先决条件。
在大多数软件工程学士学位课程中可以找到的四个典型的课程描述如下:
面向对象的软件开发
学生将学习高级编程语言,以解决常见的计算机问题和任务。
技能的获得
-
计算机编程的表情 -
理解字段和方法是如何工作的 -
编程逻辑
计算机安全
学生将获得计算机安全的概述。还将讨论伦理、法律和实践方面的考虑。
技能的获得
-
灾难和数据丢失恢复 -
用户访问方法 -
密码学原理
项目管理
本课程应涵盖按期和按预算设计和开发软件项目的技术和方法。
技能的获得
-
了解项目生命周期 -
项目计划 -
风险管理
用户界面
通过应用人类交流方法的概念,学生应该学习如何创建用户友好的软件,可以与人交流。
技能的获得
-
用户界面设计注意事项 -
根据人类用户的具体情况定制软件 -
可用性测试
软件工程硕士学位
根据专业的不同,软件工程硕士学位需要大约两年的时间才能完成。许多课程都是为全职工作的学生设计的。硕士学位不仅提供了软件工程领域的额外知识,还提供了管理和领导力方面的教育,使毕业生能够承担更复杂的项目,能够成功地协调这些项目,并与团队合作。
进入软件工程硕士学位项目的学生可以预计涵盖以下课程:
数学建模
数学模型介绍数学模型在理解和预测自然现象和人性方面的应用。
技能的获得
-
将模型应用于现实世界的问题 -
对给定情况的特定数学模型的识别 -
变量和预期结果的量化
软件设计
软件设计学生应该研究不同的编程语言,并学习如何将它们的特点应用到软件创作中。
技能的获得
-
强化面向对象编程原则 -
严格分析现有的计算机代码 -
有效地设计程序的技术
软件测试
用于软件实际测试的工具和技术,以及分析理论测试模型,是本课程的重点。
技能的获得
-
如何解决 -
调试的方法 -
分析和解释测试结果
软件系统架构
涵盖软件体系结构范式的基本原理及其在软件开发过程中的应用。
技能的获得
-
识别软件体系结构技术 -
软件设计分析 -
用于软件架构设计的工具
软件工程博士学位
虽然软件工程博士项目确实存在,但它们远不如学士或硕士学位常见。软件工程博士学位通常需要至少四年的时间来完成,通常以研究为导向,最后以论文结尾。此外,学生将学习非常具体的软件工程领域的重点课程,如机器人、分布式系统、软件安全和定量研究方法。对于那些希望从事研究或学术工作的人,比如在学院或大学教书的人来说,博士学位通常是必要的。
通过注册软件工程博士课程,学生可以量身定制适合自己的课程。因此,同一个项目的学生之间很少有类似的课程表。然而,以下课程可能对博士课程列表有帮助:
软件建模与设计
开发大型软件系统的原则。
技能的获得
-
识别设计软件时要使用的设计概念 -
熟悉统一建模语言 -
先进的面向对象软件体系结构的使用 -
理解各种设计符号
软件工程经济学
学生将学习如何在设计和管理软件时考虑盈利能力和经济因素
技能的获得
-
软件生命周期的定量建模 -
软件设计中的成本效益分析 -
常用的软件评估指标
互联网软件工程
本课程讲授如何创建有用和有效的基于网络的软件和应用程序的原则
技能的获得
-
构成一个有用的交互式web应用程序的因素 -
客户机-服务器编程方法 -
了解中间件
软件工程实验
本课程涵盖了如何将科学过程应用于软件工程
技能的获得
-
运用科学的方法进行实证研究 -
软件工程实验技术的应用 -
以有效和有说服力的方式呈现调查结果
一个成功的软件工程职业的组成部分:技能,工具和技术
技能
软件工程师需要有广泛的知识基础和多种熟练的技能,包括非技术和技术领域。
非技术技能
因为软件工程师与非工程师一起工作,例如与供应商、客户和其他团队成员一起工作,所以雇主看重那些拥有非技术技能的个人。一个好的软件工程师应该是:
-
合作者
-
能够利用他人的输入来设计解决方案。 -
团队合作精神
-
在团队环境下有效工作。 -
创造性的思想家
-
能够开发新的发展方法。 -
问题解决者
-
了解复杂的问题并知道如何使用技术来解决它们。 -
沟通者
-
能够用技术和非技术术语对不同的听众讲话。
特定于行业的技能。
软件工程需要全面的技术技能和知识基础,范围从理解业务需求到测试产品。以下是来自国家新兴技术劳动力中心的核心软件工程能力列表。
技能 | 描述 |
---|---|
软件需求 | 确定软件用户的需求或软件目标的能力 |
软件设计 | 为软件解决方案规划和开发规范的过程 |
软件建设 | 通过面向对象编程(编码)、测试和调试来开发软件 |
软件测试 | 在产品发布之前对软件系统或组件的检查 |
软件维护 | 修改软件产品以改进或解决问题的过程 |
软件配置管理 | 软件变更的跟踪和管理 |
软件工程管理 | 软件开发过程的管理,从设计到产品交付 |
软件工程过程 | 应用于软件开发的方法(如敏捷方法、瀑布式编程) |
软件质量 | 创建和维护满足其功能需求的软件的能力 |
软件工程经济学 | 了解软件成本、生产估算和当前市场趋势 |
根据Robert Half Technology的说法,在以下编程、数据库和Web领域拥有宝贵技术技能的计算机软件工程师可能会有相应的收入增长潜力。
技能领域 | %增加工资 |
---|---|
Java | 9% |
c# | 8% |
Java EE / J2EE | 8% |
net | 8% |
PHP | 8% |
Web服务 | 8% |
Hadoop | 7% |
ASP | 5% |
c++ | 5% |
DCOM / COM/Active X | 5% |
软件工程的专业证书确立了个人在该领域的资格。认证证明了专业特定领域的概念理解和技术专长。软件工程师可以根据他们的职业需要和职业目标从各种各样的证书课程中选择。下面是潜在认证的快照。
- c++认证。
c++研究所为C和c++编程语言设计了多个认证程序。随着难度的增加,每种编程语言都有初级、专业和高级考试。副证书本质上是基础的,展示了候选人的C/ c++编程的基本知识。专业证书是高级的,衡量候选人对复杂的C/ c++编程技术的理解。高级是专家级认证,测试候选人对高度复杂的C/ c++编码问题的知识。证书包括:
- C程序设计语言认证协会
- C认证专业程序员(CLP)
- 认证高级程序员(CLS)
- c++注册助理程序员(CPA)
- c++认证专业程序员(CPP)
- c++认证高级程序员(CPS)
- IEEE专业软件开发人员认证(PSD)
由IEEE计算机协会发起的专业软件开发人员认证(PSD)测试候选人在软件工程需求、设计、构建和测试方面的知识。
- IEEE专业软件工程过程硕士认证(PSEPM)
PSEPM衡量候选人在软件工程方面的关键知识。测试分为两部分,第一个测试包括软件需求、软件构建和测试、软件设计、维护和配置管理。第二次考试回顾了软件工程管理、软件工程过程、软件模型和方法、质量和工程经济学以及软件项目管理。
- IEEE软件工程硕士认证(PSEM)
作为一种高级认证,psm通过应用考试测试候选人的软件工程原理知识以及技术技能。应用考试将考生置于专业开发人员的位置,并要求完成两项性能任务,这两项任务将被审查和评级。
- 微软认证解决方案开发人员(MCSD)
MCSD认证是为使用微软语言和企业开发工具的专业人员设计的。MCSD涵盖了多个认证领域,包括Windows Store应用程序、Web应用程序、SharePoint应用程序、Azure解决方案架构、应用程序生命周期管理和通用Windows平台。
工具和技术
软件工程师拥有多学科的、多功能的技能集,超越了编程语言,将从项目管理到计算机科学的一切都包括在内。反过来,他们依靠各种工具和技术来发挥他们的技术才能,例如:
集成开发环境。
环境是指软件开发中使用的编程工具和应用程序。- Microsoft Visual Studio .NET
- 甲骨文Netbeans
- Eclipse
- DreamWeaver
面向对象的编程语言。
软件工程师在编程和软件应用程序开发中使用面向对象的编程语言。语言通常包括:- Python
- c++
- Ruby
- PHP
- Java
操作系统软件
操作系统软件同时管理计算系统的软件和硬件资源,是应用程序运行所必需的。例子包括:- 窗户
- iOS
- 安卓
- Linux
程序测试软件。
程序测试软件用于发现错误并验证应用程序按设计运行。例子包括:- LoadRunner
- Testcloud
- Jira
- Critiware
Web开发软件
Web开发软件用于制作网站和应用程序。一些常用的开发软件包括:- Apache Tomcat
- WebMatrix
- Xamarin的
- Coda
软件工程的职业趋势
对软件工程师的需求是由信息经济的出现和基于消费者和企业的市场对技术解决方案的需求所驱动的。例如,Robert Half Technology报告称,医疗保健机构正在寻求新的软件解决方案来改善患者护理,而金融服务机构正在寻找方法为客户提供更有效的技术驱动服务。加上这些传统行业,新兴市场——如大数据、移动计算和安全——正在为软件工程师创造新的机会。最后,因为软件工程师的复杂技能适用于任何行业,所以它几乎是每个商业部门的必备职位。
相关的职业
根据美国劳工统计局(Bureau of Labor Statistics)的数据,以下是2012年至2022年预计将出现两位数就业增长的相关职业机会列表。
业务信息分析师
业务信息分析师将业务知识与计算专业知识相结合,帮助公司将业务需求转化为技术解决方案。在他们的角色中,业务信息分析师利用分析技能集来研究、计划和管理如何使用信息系统和软件来解决业务问题。
就业增长: 19%Web开发人员
Web开发人员对Internet约定和Web应用程序有很强的掌握。使用Web技术和编程语言,如JavaScript、HTML或AJAX, Web开发人员为网站编写代码,集成后端系统(如网站的数据库),并开发新的网站功能和应用程序。
就业增长: 20%帮助台支持专员
帮助台支持专家对软件、硬件和网络系统有全面的了解。他们为公司及其员工提供各种技术支持,从解决硬件问题到管理软件程序安装,再到排除网络问题。
就业增长: 20%计算机系统分析员
计算机系统分析师利用对硬件和软件系统的深入了解来确定一个组织如何最好地利用这些资源来有效地运行。它们协助各公司确定技术基础设施的需要,研究计算套件的设计和安装,并编写信息系统的成本效益分析。
就业增长: 25%信息安全分析师
信息安全分析师处于计算机和网络安全的前沿,如加密技术和防火墙保护。他们执行安全审计,进行风险评估,并提出建议,以提高公司数据系统的安全性。通过识别弱点,信息安全分析师制定适当的安全策略以保证数据安全。
就业增长: 37%数据库管理员
数据库管理员具有数据库结构、安装和维护方面的技术基础。他们掌握关系数据库语言(如Oracle、Microsoft SQL Server)的相关知识,管理公司数据库,维护数据库稳定性,执行数据库备份,并根据公司的数据需求修改数据库结构。
就业增长: 15%聚光灯下的职业
由于移动网络、手机和商业的爆炸式增长,目前最热门、最需要的软件工程技能是移动应用程序开发。阿拉巴马大学伯明翰分校(University of Alabama at Birmingham)的数据显示,到2017年,全球移动应用市场的价值将达到770亿美元,移动行业咨询公司Digi-Capital的数据显示,到2018年,移动网络市场的价值将达到8500亿美元。因此,移动应用程序开发人员拥有公司需要的技能。以下是根据罗致恒富科技公司的一项调查,列出的软件工程领域的三个热门职业及其相应的薪资数据。
移动应用程序开发人员
工资中位数:134500美元
移动应用程序开发人员使用JavaScript、。net和Objective-C等语言和平台为移动设备(如iPhone、iPad、三星Galaxy)构建应用程序和网站。使用iOS和Android等移动操作系统,开发人员设计、编码、测试、调试和记录移动应用程序开发过程。建议拥有计算机科学或计算机工程专业学位。在当今移动至上的世界,对个人和企业的需求日益增长移动应用程序导致了对开发人员的巨大需求。Gartner Inc.预计,到2017年底,市场需求与企业移动应用程序开发人员可用人才的比例将至少达到5:1。
质量保证工程师
工资中位数:76,000美元(QA工程师手册);$89,000 (QA工程师-自动化)
质量保证工程师设计并执行测试和质量评审计划,以确定软件开发过程中的问题。通过对软件开发生命周期和质量保证原则的理解,QA工程师定义测试的范围,执行手动和自动测试计划,并与开发人员密切合作,确定需要改进的领域。美国劳工统计局(Bureau of Labor Statistics)将职业领域列为一个新兴的高增长领域,预计在2012年至2022年期间,该领域将在全美创造10万个新就业岗位。
应用程序架构师
工资中位数:126625美元
应用程序架构师将开发工具和系统体系结构的知识与业务洞察力和团队领导技能相结合,以协调企业级应用程序的创建。应用程序架构师是一个重要的职位,作为团队联络人,将每个项目的用户体验和前端开发人员、程序员和质量保证专家联系在一起。传统上要求有计算机科学或信息系统学士学位,这是信息技术领域薪酬最高的职业之一。
软件工程师的工作增长、前景和展望
根据CompTIA的研究,如今,软件占美国IT市场的19%。多种因素共同促成了软件工程师时代的到来:转向基于云的基础设施、移动设备和计算的兴起、大数据分析的爆炸式增长、社交媒体尚未开发的潜力,以及企业提供托管服务的需求。
相关职业挣多少钱?
无论是在线技术服务、数据存储、网络管理还是安全,技术创新都是由一个核心需求驱动的:更有效、更强大的计算解决方案。由于编程语言和框架(如HTML、SQL、Java、c++)跨越行业渠道,具有教育背景和经验的个人可以在当今拥挤而竞争激烈的IT市场中脱颖而出。相应地,其他技术职位也在与软件工程师一起增长,有经验的专业人士的薪水可能超过10万美元。
相关职业:你需要知道的
对高技能信息技术人才的需求横跨各个专业,从信息系统到网络,从数据库到商业智能。计算机科学和软件开发方面的教育可以为整个技术行业带来各种相关的职业机会。以下是一些职业途径的例子:
商业智能分析
工资
90860美元
教育和培训:
学士学位
计算机系统管理员
工资
79770美元
教育和培训:
学士学位
数据库管理员
工资
82280美元
教育和培训:
学士学位
帮助台/用户支持
工资
51500美元
教育和培训:
有些大学,没有学位
信息系统经理
工资
136280美元
教育和培训:
学士学位
网络支持专家
工资
66140美元
教育和培训:
大专文凭
系统分析师
工资
87320美元
教育和培训:
学士学位
技术作家
工资
71950美元
教育和培训:
学士学位
资料来源:美国劳工统计局,《职业与就业工资》,2014年
相关职业一览
软件工程学位和职业资源2022年世界杯赛程时间
教唆ABET是一个在科学、技术和工程领域认证本科生和研究生课程的领先组织。
计算机协会ACM是世界上最大的计算机协会,其使命是在教育和专业领域促进计算机科学和相关领域的发展。
前年中国信息技术协会通过为信息技术专业人员宣传、为从事信息技术工作的人员提供专业证书和教育机会来促进信息技术专业人员的利益。
IEEEIEEE是一个领先的专业组织,其目标是通过先进技术的支持帮助人类。
计算机专业人员认证协会ICCP是一个提供许多国际公认的计算机认证的非营利性组织。
软件工程无线电这个优秀的播客大约每两周更新一次,有引人注目的专家嘉宾和软件工程世界的内部信息,包括过去、现在和未来。
尝试工程:计算机软件工程师这个网站提供了对各种工程职业的洞察,包括软件工程师。这是对软件工程师工作的一个很好的基本描述。
最新的文章
LearnHowToBecome.com是一个广告支持的网站。特色或值得信赖的合作伙伴项目和所有学校搜索,查找者,或匹配结果的学校补偿我们。此补偿不影响我们的学校排名,资源指南,或其他编辑独立的信息发表在本网站。
查看与你感兴趣的最相关的课程,并根据学费、录取率和其他对你重要的因素进行比较。