查看原文
其他

软件开发人员与软件工程师的有什么重大差别?

21CTO 21CTO 2023-01-28

导读:以下是一篇译文,显然是非技术系的人在讲解软件开发人员与软件工程师的区别,思路很细腻。区别一定有,但重大的区别需要大家在文中品鉴了。

如今,你很难找到像科技行业这样有价值、这样令人兴奋的行业。

在科技行业最常见、最受欢迎以及最赚钱的职业中,没有比软件工程师(Software Engineer)和软件开发人员(Software Developer)更突出的。

在它们中间,有两个非常相似的职位。当你更仔细地分析时,它们彼此又完全不同,这和人们普遍的看法相反。 

尽管进入这两个行业的人经常发现自己在监督软件或者系统设计,软件工程师的工作范围会更广,他们不仅参与架构和建设,而且能够代表雇主参与整个平台和系统的测试。

对软件开发人员和软件工程师的需求持续增长


根据领先的科技行业就业网站之一Hired的报告指出,2021 年对软件工程领域的总体需求增长了 100%。这一趋势可能会在2022 年到2025年甚至更长时间内持续上升。


根据美国劳工统计局数据,美劳动力市场对软件开发人员的需求上升。该局近日数据趋势显示,在未来十年内该行业对软件开发人员的需求每年将增长 25%。

在整个计算机技术工作领域,特别是在软件开发人员和工程师职位方面,对额外需要的推动继续呈上升趋势,这对任何对这些领域之一感兴趣的人来说都是好消息。

但是,对于考虑做这两种职业道路的人来说,很重要的是,要了解这两个职位之间存在独特的差别,还有进入领域的兴趣,到最终担任该职位所需的技能组合。

本文围绕这些非常受欢迎的科技行业工作之间的差异,包括关键问题展开。描述每个变量的关键,讨论每个潜在候选人在踏上一个方向的职业道路时需要考虑的重要因素。

软件开发人员与软件工程师:工作要求和薪水的主要区别


软件开发人员将利用他们的教育、能力和专业技能组合来构建、修改和修复应用程序和软件,然后才能进入消费者手中。在整个过程中,他们将记录并彻底测试项目的所有方面。


至少,软件开发人员必须对 Java、ASP.net、Python 和 C# 等有清晰的了解,才能保持自己的领域中成功。然而要成为一名蓬勃向上的软件开发人员,需要的不仅仅是编程原则和编程的基本知识。


软件开发人员工作描述的一个组成部分涉及在工作中的任何系统或应用程序的整个生命周期的每个模块中都要处于活跃状态。这包括参与项目的所有初始研发阶段,一直到最终测试和上线阶段。


尽管他们的责任和义务范围广泛且多种多样,但软件开发人员在其职业生涯的某个时间点专注于某个特定的利基市场并最终在该利基领域取得成功的情况并不少见。


例如,企业可能会找到专门从事移动应用开发领域的软件开发人员。而其他软件开发人员可能仍然明确专注于物联网平台。


软件开发人员与软件工程师的薪酬水平存在差异


Payscale 做为受欢迎、受尊敬的薪酬研究和数据公司之一,它的报告如下:

资料来源:https ://www.payscale.com/research/US/Job=Software_Developer/Salary

软件开发人员的年基本工资中位数为 74,136 美元,薪酬范围为 52,000 美元至 108,000 美元。

资料来源:https ://www.payscale.com/research/US/Job=Software_Engineer/Salary

  • 软件工程师的年基本工资中位数为 89,086 美元,薪酬范围为 65,000 美元至 131,000 美元。


无论软件开发人员或软件工程师的薪水在哪个范围,有几个不同因素决定年薪。 

这些因素包括:

  •  当前工作的雇主

  •  工作的特定行业

  •  个人经历和教育水平

  •  生活和工作的地理位置


两者薪水之间存在的差距,可以用每个人特定工作职能的差异来解释。

由于软件开发人员本质属于软件工程行业子集的个体,因此软件工程师会发现自己处于软件工程食物链的顶端。

因此,软件工程师每次都会要求更高的薪水。

软件工程师的工作描述与软件开发人员有很大不同


选择成为软件工程师的责任远远超出具有技术和计算机知识的人所处理的范围。软件工程师在创建系统时需要应用最佳实践工程原则和技能。


软件工程师还须是有效的沟通者,可以与参与的任何项目的利益相关者进行交互沟通。这些利益相关者将包括开发人员、用户以及对整个过程至关重要的其他所有人。


因此与普通软件开发人员相比,软件工程师需要拥有更广泛的技能组合。软件工程师还必须具有成功地将分析、评估和扩展应用于他们可能承担的任何流程或项目所必需的独特才能。


工作场所可能会有所不同


与软件开发人员相比,软件工程师在工作场所的环境中总是扮演着更加协作的角色。


开发人员可能会发现自己将更加独立地运作,无论是作为公司的全职员工,自己处理项目,还是作为独立开发商远程工作。


另一方面,软件工程师需要成为工作场所的团队成员。这是因为它本质上是每个软件工程师工作描述的一部分。个人需要与许多不同的人一起工作,从软件开发人员到其他软件工程师,他们拥有不同程度的知识、理解、熟悉和技能。软件工程师也可能发现自己处于直接与最终用户合作的境地。


相反,软件开发人员仅在非常有限的基础上在团队环境中工作,至少与软件工程师相比是这样。如果你是一个孤独的人,软件工程师职位可能不适合你,你应该考虑一个软件开发人员的职位。


软件开发人员与软件工程师:特定的教育要求和其它选项


根据普遍共识和证据,个人只有获得计算机科学、信息技术、软件工程或其他类似领域的本科学士学位,才能实现软件开发人员或软件工程师的梦想.


尽管在少数情况下获得大专学位可以帮助个人在该领域获得一些入门职位,但学士学位始终是最好的选择,尤其是如果想在这些竞争激烈的领域取得成就的人。


来观察一下就业数据收集公司Zippia提供的数据中的教育细分。

软件工程师的相关数据如下:

  • 73% 的软件工程师毕业于相关领域,获得学士学位。

  • 20% 的现有软件工程师毕业于相关领域的硕士学位。

  • 4% 的软件工程师获得专科学位。

软件开发人员的统计数据和上面有些类似:

  • 72% 的软件工程师毕业于相关领域的学士学位。

  • 20% 的现有软件工程师毕业于相关研究领域的硕士学位。

  • 5% 的软件工程师拥有大专学位。


而技术认证对于目前作为软件开发人员或工程师工作的人来说具有难以置信和估量的价值。通过认证计划,人们可以增加自己的整体专业知识,也是你正在期待的工作岗位、晋升或项目的准备条件。

软件开发人员、软件工程师的职业道路是如何相似又存在不同

将两种人各自的职业道路分开的一个主要区别是:软件开发人员通常是一个在灵活性、多样性和独立性方面茁壮成长的人,尤其是在工作场所环境中。另一方面,那些在职业道路上冒险成为软件工程师的人将在团队或团队环境中更加茁壮成长。

沿着职业道路,软件工程师最终会成为领导者或管理者。他们总是发现自己需要在更大的群体结构中与许多人一起工作。软件工程师通常在传统的办公环境中工作。简而言之,软件工程师的职业道路是线性的,而软件开发人员的道路通常遵循自己选择的领域内的各种轨迹,跨越领域成为职业生涯的完整景观。

软件开发人员的职业道路令人兴奋且多变


这也不代表软件开发人员没有与软件工程师相同的机会进入管理岗位,或在选择的领域内攀登更高的阶梯。


软件开发人员,尤其是不想在各自领域担任管理职位的个人,可能会继续工作并继续追求专业的软件开发角色,专注于有利的工作机会。


希望达到软件开发最高级别职位的人应考虑像首席开发人员和系统架构师这样的工作。通常这些角色最终负责架构设计、维护以及实施 IT 系统。任何踏上这条特定职业道路的人最终可成为团队负责人、软件开发经理、主管或开发总裁。


软件工程师的职业道路总是向上


典型软件工程师的共同职业道路,通常由他们在多年不断攀登阶梯,还有通过继续教育和增加经验,从而提升自己所获得的经验来衡量。


刚开始时,处于入门级职位的软件工程师可能希望在三年到五年成为高级软件工程师,然后再维持三到五年,这将需要处理一些的管理职责和监督其他团队成员的日常。


在他们第六年到第九年的某个时候,这个人可能已经准备好跳槽到一个承担更多责任的工作角色,比如技术主管,主要负责自己管理和监督整个团队。


一旦一个人在软件工程职位上完成了大约 13 年的工作,大多数成功人士都会找到更严肃、更赚钱的工作,比如软件工程经理或副总裁。


将自己的职业生涯奉献给努力工作、建立机构意识和提高个人技能的软件工程师甚至可能获得首席技术官的职位。而这一岗位代表了大多数市场和行业中最高的技术高管职位。首席技术官负责监督公司的研发以及管理其所有技术需求的重要任务。


一个成功的软件工程师甚至可能会发现他们的职业道路会将他们带到一个有机会获得公司产品或特定流程所有权或至少部分所有权的地方。


软件开发人员与软件工程师的主要收获


软件开发人员和软件工程师在行业中需求量很大,这种趋势将会持续下去。


选择软件开发人员或软件工程师职业的个人未来前景光明。这主要是因为对于只有受过教育的软件开发人员或软件工程师才能为组织带来的人才、经验和专业知识永无止境的需求。


从雇主的角度来看,这两个角色对公司的成功都至关重要。


毫无疑问,这种持续的需求将继续获得牵引力,正如我们周围的所有新兴技术将继续以闪电般的速度发展一样,这两种工作职能对于许多行业来说都越来越有价值。


对创新软件解决方案的持续、不断增长的推动意味着行业将继续雇用具有担任这些重要角色所需的技能、机构经验和教育背景的个人。


软件开发人员和软件工程师的不同


在公众,甚至科技行业内部人士,甚至在他们的职位发布、对话以及其他方面,都错误地将“软件开发人员”与“软件工程师”混淆,做为通用术语,就好像它们可以互换一样。但是,重要的是要记住,这些术语中的每一个及其所代表的工作并不一样。


它们确实存在相似之处,但无论我们谈论的是应用程序开发还是系统构建,每个人在处理日常任务、总体任务和行业背后的科学方面都大相径庭。


当然,当我们查看与这两个职位相关的特定特征时,存在相似之处。两者都非常注重细节,并显示出无可挑剔的解决问题能力。每个人都表现出一定的敏感性,并结合了良好的想象力和健康的好奇心。


毫无疑问,两者都将在数学方面表现出色。


在某种程度上,他们的技术能力也会重叠。但是,与作为软件开发人员工作的人相比,软件工程师在他们的角色中会有更多的责任。因此,他们需要更广泛和非常具体的技能组合,并且他们需要展示在团队环境中工作和蓬勃发展的能力。

  

软件开发人员和软件工程师都可以提供很多价值


尽管软件工程师是一个很容易并且很可能拥有与软件开发人员角色相同的技能,但相反的情况并不总是正确的。软件工程师更有可能发现自己处于整个系统上工作的位置,这将要求他们在管理和设计时考虑全局。


对于与软件工程师相比,对于软件开发人员来说,这是一个好消息。随着时间的推移,软件开发人员找到新的创造性工作机会也很多,这将使他们能够扩展和发展现有的技能,进一步拓展他们的职业生涯,最终获得成!


作者:场长


相关阅读:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存