你今天摄入知识了吗?
软件开发和软件工程师有什么区别?答案取决于你问谁!
这两个角色之间没有官方的区别,但公司根据自己的经验和知识来定义适合他们工作的内容。此外,在这个判断过程中,更令人困惑的是,区域差异和教育水平也将被定义为差异。然而,还有另一种方法可以通过评估和分析各种数据源来得出结论。
根据计算机科学学位中心(ComputerScienceDegreeHub)软件开发人员和软件工程师是两个不同的角色:
软件工程是指应用工程原理创建软件。通过连接客户的需求和适当的技术解决方案,软件工程师参与软件开发的生命周期。因此,他们系统地开发并提供特定的功能。一般来说,软件工程是利用工程概念开发软件的。
另一方面,软件开发人员是程序创造性背后的驱动力。软件开发人员负责整个开发过程。他们应该与客户合作创建设计理论。然后,让程序员编写操作软件所需的代码。程序员将与软件开发人员一起测试和解决问题。此外,软件开发人员需要在软件开发生命周期的每个阶段提供项目领导和技术指导。
Udacity两者之间也有明显的差异:
与人们普遍看法相反,Udacity认为软件开发人员和软件工程师这两个术语是不可交换的。开发人员知道如何编写代码,并可能具备构建产品所需的技术技能。软件工程师遵循理解需求的系统过程。他们应该与利益相关者合作,开发满足他们需求的解决方案。如果开发人员更喜欢独自工作,软件工程师更喜欢团队工作。
那么在实践中呢?接下来,让我们详细讨论差异。
软件工程师的技能和工作描述
软件工程师是高度熟练的软件开发人员,能够管理复杂的系统。他们不仅可以构建一个功能齐全的应用程序,而且有足够的经验来知道如何构建一个易于重建、自我记录和调试的应用程序。
他们知道提前考虑和计划前端可以节省大量的工作时间,缓解未来的头痛。软件工程师不需要编写最聪明的代码,重点是让代码明显。因为他们知道最好的代码是永远不需要重写的代码。
软件工程师应:
- 具有技术专长,并有广泛的项目经验
- 精通模式设计,建立弹性和容错系统
- 使用Gherkin、Cucumber或Ansible实现自动化测试
- 了解如何创建和维护IT基于云的架构、大规模数据存储和系统。
- 构建可扩展的部署管道,支持持续集成和交付
- 他们必须能够独自高效地工作,并能够有效地与远程团队合作。
- 高级软件工程师必须监督复杂的系统分析、设计和开发程序。
软件工程师的角色通常包括:
- 研究、设计、开发和测试他们的软件,并通过网络编译和分发软件
- 修改现有软件来解决缺陷,适应新硬件或提高性能。
- 分析用户需求,评估软件需求,包括设计可行性和成本/时间限制。
- 与客户讨论规格和设计。
- 协调系统软件的部署和安装
- 监督项目是技术人员和工程师的工作
软件工程师的技能和工作描述
软件开发人员不仅要负责编写代码,还要审查当前的系统,提出改进的想法,包括所需的努力。软件开发人员还应与分析师、终端用户/营销人员和设计师密切合作。
软件开发前,软件开发人员必须在可控的真实情况下测试代码,以确保其代码能够正常工作。这就要求他们有完美的眼光,正确解决程序的错误和修改,提高运行效率。
一个好的软件开发人员应该有创造力和技术专业知识,提出创新的想法来解决客户问题,并有丰富的经验,可以预测许多尚未出现的问题和风险。
软件开发人员通常遵循开发生命周期或交付框架的方法Scrum、XP或Kanban。
软件开发人员必须具备:
- 出色的分析技能,因为他们需要不停地对需求和软件功能进行比较。
- 他们必须熟悉计算机语言,以便有效地使用计算机程序,比如Java、c#、c 、Python等。
- 有使用GitHub等开源工具的经验
- 良好的反馈和沟通技巧,要非常注重细节,因为小错误可能会导致大问题。
- 注重细节,因为有助于管理不同开发阶段的同步项目。
- 理解代码的逻辑,即使在遇到不熟悉的语言的情况下。
- 软件开发人员必须持续地监控他们所做的更改,包括解决方案的缺陷,确保高质量和一致性。所以,他们必须不断地在分配工作、管理截止日期和时间表之间转换。
小结
软件开发人员和工程师之间的主要区别:
开发人员主要在执行上面。他们的开发才能往往集中在一个领域。并不需要“大局”。所以,软件开发人员主要关注的是开发代码,这也是软件开发周期的一部分。
工程师要把工程原理应用到软件开发中,进行设计和计划。所以,他们要时刻关注“大局”,拥有多方面才能。工程师也可以承担开发人员的角色,不过他们的核心重点是架构。
总之,软件工程和软件开发之间的主要区别在于,前者负责监督工程,而后者专注于创建功能程序。
任何人都可以成为软件开发人员。即使你只懂一点编程概念,那你也拥有成为软件开发人员的基础。他们是在没有任何性能和可伸缩性分析的情况下编写代码的。而这些元素更多是由软件工程师完成的,这也是软件工程师和软件开发人员的不同之处。
如果你是软件开发人员或工程师,总会有新的东西需要你去学习,很多人会在项目和客户两种角色之间进行切换。
原文作者:Claire
翻译作者:Lea
美工编辑:过儿
校对审稿:JiaweiTong
原文链接:https://shecancode.io/blog/software-developer-or-engineer-whats-the-difference
本周公开课预告
顺利通过机器筛选的简历长什么样?
如何在电商数据分析中做CustomerSegmentation客户细分?
面试当中的背景调查是怎样进行的?
Tiktok如何比你更懂你?
大数据告诉你Tiktok为何让人如此上头?
点「在看」的人都变好看了哦