无论是电子商务平台还是金融机构,任何依赖其网站、数据库和应用程序的企业都会使用软件工程师或全栈开发人员。
这两个角色之间有明显的关系,实际上,全栈开发人员实际上是软件工程的一个子类别。那么,为什么不同的职称呢?
看待这一点的一种方法是将软件工程师广泛地视为系统架构师,就应该如何构建它做出决定。全栈开发人员(如果我们坚持使用实体类比)就像承包商一样,负责建造和维修。
描述这两个角色之间差异的另一种方式是注意全栈开发中涉及的任务的广度和范围,而不是软件工程师更专注的角色。话虽如此,这两个工作之间当然存在明显的交叉,但让我们仔细看看四个关键差异。
范围和技能
全栈开发人员和软件工程师都必须对编码语言有详细的了解。但是全栈开发人员往往需要比软件工程师更广泛的高级语言知识。这是因为他们工作的领域范围很广,从前端开发和核心应用程序到后端开发。
全栈开发人员的职责包括设计用户界面或管理应用程序的运行方式,以及其他电子商务开发要素。但他们还将致力于应用程序的后端支持,以及管理数据库和安全性。
由于职责范围如此广泛,全栈开发通常意味着监督技术组合,灵活地响应需求,并在需要时从一个领域切换到另一个领域。
软件工程师的职权范围较窄,但技能却不低。除了基本的软件开发外,他们还测试和解决编程错误,深入研究代码以进行调试,并经常使用QA自动化来加速测试。
软件工程师开发单独的应用程序,一次负责一个项目。他们的工作通常集中在下载到一个设备并仅从该位置使用的应用程序上。在开始手头的任务之前,有一个强大的计划和咨询元素。
个性和软技能
全栈开发人员角色所涉及的各种任务需要一个适应性强的个性,以及在切换到数据库和服务器工作或与客户交谈前一分钟快速工作、构建原型和进行临时测试的人下一个。
并不总是有时间专注于某个特定领域并积累知识,因此开发人员需要对此感到满意。他们很可能是那种开始一项任务并在进行过程中解决问题的人,而不是花费长时间的计划和咨询。
软件工程基于团队的性质意味着工程师需要成为良好的沟通者。软件工程师通常是规划者——那种乐于使用图表和图表并在开始工作之前仔细考虑手头问题的人。这项工作需要强烈的远见和远见。
软件工程师还需要能够清楚地向客户解释他们想要的东西是否实用或可实现。如果答案是否定的,工程师需要在概述替代解决方案时感到自在。
背景和培训
全栈开发人员往往不具有技术学位背景;这通常是一种在职学习的情况。许多开发人员开始获得无偿经验,但这种经验可能需要几年时间才能积累起来,潜在的开发人员肯定需要投入时间并学习代码。
除了编码之外,一个初出茅庐的开发人员真正需要掌握的是商业意识和对组织在前端和后端技术方面需要什么的了解。
对于软件工程师来说,一个人更有可能来自计算机科学或电子学学位背景。不过,这将取决于他们是从事嵌入式软件还是中间件开发。
职业道路和前景
全栈可以说是一条更具挑战性的职业道路,这是因为工作的综合性。每个责任领域都是一个不断发展的技术空间。这可能意味着在未来的某个时间点,这项工作需要分成更小的任务组,因为一个人能够跟上每个领域的每一项技术发展的可能性可能相当小。
就设计而言,这项工作似乎也有一种不那么有创意的趋势。这可能取决于图形设计师学习如何编码并进入开发人员职权范围的这一部分。然而,在解决问题方面的创造性思维对于工程师和开发人员来说始终是一项理想的技能。
软件工程师也面临挑战。根据公司的不同,这项工作可能意味着不同的事情。软件工程师最终可能会从事一项工作,他们基本上是在对现有且相当陈旧的代码库进行修复和维护。担任这种角色的工程师通常没有多少空间来扩展他们的视野。
在某种程度上,软件工程师面临着与全栈开发人员角色的扩展性相反的挑战。软件工程师最终可能会在应用程序开发的某一层变得高度专业化。这会使他们孤立地工作,没有经常伴随和丰富软件开发的团队合作元素。
对于开发人员和工程师来说,薪水可能是健康的,但这取决于地理位置、专业水平和经验。通常拥有特定的利基或专业技能可以吸引更高的薪水。这两个角色都是不断发展的行业的一部分,工作量很大。但条件和薪酬的质量显然会有很大差异。
有些人在角色之间迁移,这很常见,例如,从全栈开始,然后在一个人的职业生涯后期转向软件工程。
全栈开发人员和软件工程师都涵盖了所有软件开发要素。他们的不同之处在于他们