软件开发人员和软件工程师:有什么不同?

与软件开发相关的职业正在复兴,这不是什么秘密。在我们生活的这个世界里,只要点几下鼠标,就能找到一款应用程序,从愚蠢的到非常有用的,而且我们需要有技能的专业人士来帮助设计、构建和维护这些程序。
考虑到这一点,追求这个职业领域的潜在经济和工作机会好处似乎是显而易见的。但是不太明显的是软件开发人员和软件工程师的具体角色之间的决定和区分。是什么让这些重要的软件职业与众不同?它们重叠吗?你怎么知道哪种选择最适合你的计划呢?
“在行业中,你会发现这些头衔有时会被错误地互换使用;然而,它们实际上是不同的,”的首席执行官兼创始人梅勒妮·麦克萨利说WyzeTribe®。
McSally说,这两个角色都是团队的重要组成部分,因为软件开发人员和软件工程师往往拥有不同的技能集和关注领域。“这两种心态将有不同的方法和视角。”
如果你正在考虑进入这个职业领域,你需要更好地了解这些职业的区别。继续往下读,你会发现软件开发人员和软件工程师之间的本质区别。
软件开发人员和软件工程师:基本角色
虽然两者最终都在软件项目上工作,但他们的工作重点通常是不同的。软件工程师的任务通常是设计使功能或应用程序工作的整体计划,而软件开发人员可能专注于创建和连接工程师布置的各个元素。
“软件开发人员关心工程师所做的一切——但仅限于有限的范围,”InfoTracer首席技术官兼首席软件工程师本•哈特威格(Ben Hartwig)说®.Hartwig还解释说,软件开发人员经常使用现成的工具和库来构建他们的作品,并专注于确保软件应用程序在各种类型的计算机设备上顺利运行。
根据McSally的说法,软件开发人员倾向于用创造性和开箱即用的思维来寻找解决方案。“他们更有可能接受在职培训,通过试错来工作。他们的解决方案可能非常天才和创新,尽管他们通常不会将这些解决方案基于工程原理。”
相比之下,软件工程师倾向于用系统的、基础的概念来处理他们的工作。McSally说:“软件工程师接受过教育和培训,可以利用科学方法和工程原理来创建解决方案。她强调这种方法适用于所有类型的工程,在软件中仍然适用。“工程师们考虑解决方案的各个方面,从如何贯穿项目生命周期,到部署后如何在家庭环境中进行交互。”
软件开发人员和软件工程师如何一起工作?
这可能是一个复杂的问题,取决于组织如何构建其开发团队并定义其角色。因为在技能上可能有很大的重叠,一些组织可能无法区分工程师和开发人员。
对于那些这样做的人来说,想想专业餐厅厨房是如何运作的会有所帮助。厨师长(软件工程师)负责制定餐点的总体规划。他们有一套技能,知道什么是一顿完整的饭菜,以及如何执行烹饪。副厨师长(软件开发人员)的任务是执行厨师长的愿景所需的各个元素。
角色之间有很多重叠的技能,就像厨房的比喻一样,在职业生涯中在这些职位之间移动是相当常见的。也就是说,软件工程师通常在开发团队层次结构中拥有更大的权威,并且更关注项目的总体技术需求。
软件工程师或开发人员的一天是什么样的?
虽然他们所承担的具体工作类型有所不同,但软件开发人员和软件工程师通常都有相似的时间表。大多数人会积极地在至少一个大项目上工作,而且在特定的一天里经常会有一些小项目或任务。根据组织的项目管理风格,他们可能会以一个快速签到会议开始(也可能结束)他们的工作日,在这个会议上,团队可以对工作进行优先级排序,并确定哪些工作落后于计划。
公司的开发人员Sylv Zarzycki说:“我一天的工作是从一杯热茶和一个内部web开发团队的scrum会议开始的designdough.“这些晨会绝对是我一天中最重要的部分,因为这是一个与每个人交谈并相互激励的好机会。”
在这些会议和重组之外,大多数软件开发人员和工程师将有机会适应一种工作节奏,使他们能够专注于当天最紧迫的项目。
扎里基说:“午饭后,对我来说,这是一段外挂时间。”“这是我戴上耳机,花时间构建一周的主要网络项目的时候。”
除了“大项目”时间之外,一天中剩下的大部分时间经常被解决小的故障排除任务、回复电子邮件、检查代码、参加客户会议以及与更大的团队协调所消耗。
Zarycki说道:“我的工作充满了与其他开发者、设计师和文案的合作。“我们参加研讨会、会议,为客户组织网络培训课程。这绝对不无聊。说实话,我真不敢相信日子过得这么快。”
软件开发人员vs.软件工程师:需要教育和经验
这可能并不令人惊讶,但这两个高度技术性的职位都可能需要大学教育。我们分析了过去一年里超过78000个软件开发职位,发现92%的人在寻找至少拥有学士学位的候选人。1对于软件工程师,94%的招聘广告要求应聘者至少拥有学士学位。2
这两个职位对教育水平的要求差不多,那么他们的经验要求如何呢?以下是我们通过研究这些招聘信息得出的结论。
软件开发人员按职位招聘的百分比列出了工作经验要求:1
- 0 - 2岁:3%
- 3 - 5年:5%
- 6 - 8岁:2%
- 9年以上:7%
软件工程师的工作经验要求如下:2
- 0 - 2岁:8%
- 3 - 5年:9%
- 6 - 8岁:4%
- 9年以上:9%
正如您所看到的,尽管许多软件工程角色对经验的要求可能略高一些,但对经验的要求仍然是类似的。请记住,雇主观点的细微差异可能会扭曲这种分析。例如,他们需要两年的软件工程师工作经验,还是需要两年的相关工作经验?
软件开发人员vs.软件工程师:重要技能
根据我们的招聘广告分析,这些职位所需的技术技能也有很大的重叠。这两个职位通常都要求应聘者对SQL、Java®、JavaScript®、c#、c++和Python®有很强的理解。1、2
的创始人兼前端开发人员加里•史蒂文斯(Gary Stevens)表示,最大的区别在于这些技能如何应用以及应用的规模举办加拿大.“软件开发人员从零开始开发软件,比如web应用程序。另一方面,软件工程师将工程原理应用于软件的设计、开发、维护和评估,系统地处理大规模问题。”
史蒂文斯说,开发人员所做的工作和工程师差不多,只是规模更小,在工作中通常更有创造性。
软件开发人员与软件工程师:如何选择?
这两个职业之间有如此多的相似之处,人们该如何选择最适合自己的呢?两者都没有固定不变的蓝图,但McSally说,那些对数学和科学有热情的人,喜欢秩序和结构,倾向于更有分析性和系统性地思考,往往最适合软件工程师的角色。
麦克萨利说:“如果你是一个自由的人,不墨守规矩,把规则更多地看作是一种建议,更倾向于创造性地思考,而不是分析性地思考,那么软件开发人员可能是适合你的角色。”
史蒂文斯在很大程度上呼应了这一思路。
“如果你喜欢用系统的方法解决问题,你应该考虑做一名软件工程师;如果你喜欢创造性地解决问题,那么软件开发可能就是你想要的。”
软件开发vs.软件工程:适合你的道路
你认为软件开发或软件工程职业是你未来的一个很好的选择吗?无论你倾向于哪一种方式,这两种职业都始于涵盖计算机科学基础的教育。
如果你能再详细一点,看看什么样的人能在这些职位上茁壮成长——如果那个人就是你——看看吧。”你应该考虑成为软件开发人员的8个迹象.”
1Burning-Glass.com(分析了2021年3月1日至2022年2月28日的78367个软件开发人员招聘信息)
2Burning-Glass.com(分析了2021年3月1日至2022年2月28日的363,692个软件工程师职位)
WyzeTribe是WyzeTribe LLC的注册商标。br / >InfoTracer是Accucom corporation的注册商标。
Java和JavaScript是Oracle公司的注册商标。
Python是The Python Software Foundation, Inc.的注册商标。
