全栈开发人员与软件工程师
如今,这两个职位的交叉现象相当普遍,有些人可能很难区分它们。然而,在区分这两个职位时,还是有不少方面是至关重要的。
全栈开发人员职位
全栈开发人员能够处理网站和 Web 应用程序的前端和后端。这意味着他们应该精通 HTML、CSS 和 JavaScript,并熟悉 React、Vue 和 Angular 等前端框架。这类开发人员能够进行设计,并且擅长处理面向客户的工作。在后端技能方面,他们还应该了解数据库和服务器的工作原理,并能够创建连接到客户端前端应用程序的 API。他们通常还至少掌握几种后端编程语言,例如 Node、Python、Kotlin、Java、C# 或类似的用于编写服务器端代码的语言。
如今,全栈开发人员通晓多种语言已是司空见惯,这意味着他们精通多种脚本语言,能够胜任各种工作。这包括 Web、移动甚至原生技术栈。此外,他们还需要了解如何部署代码,并具备一定的 Dev Ops 经验。创建一款在不同环境中以相同方式运行的应用程序对生产环境至关重要,因此 Docker 和 Kubernetes 是值得了解的优秀工具。
软件工程师职位
软件工程师更专注于为桌面、移动设备甚至其他平台(例如游戏机、机顶盒和电视)创建原生应用。与通常从事 Web 开发的全栈开发人员相比,该职位更注重系统开发。这些工程师是各自领域的专家,通常使用 C#、Kotlin、Java、Swift 等编程语言以及 C++ 等通用编程语言。在工作方面,他们习惯于构建可在 Windows、macOS 和 Linux 等操作系统上运行的应用程序。
在这些类型的职位中,软件工程师往往会负责他们负责的应用程序的各个方面。而全栈开发人员则可能负责应用程序的所有方面,并且可能不需要像全栈开发人员那样专注于团队,尽管这取决于具体职位。由于使用不同操作系统的技术性,软件工程师在应用于这一领域时,需要很好地掌握系统架构和计算机科学的概念。
结论
这两个职业领域都非常抢手,所以无论你选择哪条路,你都会找到工作机会。全栈开发人员负责开发可在互联网上任何地方访问的应用程序。这意味着你访问的每个网站以及存储在其中的所有数据。相比之下,软件工程师创建的应用程序安装在操作系统中。例如 Microsoft Office、Adobe CC、Visual Studio Code 或你电脑上的任何应用程序。你从应用商店安装的任何应用程序也是如此,因为如果是 Android 应用,它很可能是用 Kotlin/Java 创建的;如果是 iOS 应用,它很可能是用 Swift 创建的。
尽管存在这些差异,两者之间的界限开始变得模糊。例如,可以使用 React Native 创建移动应用,这扩展了全栈开发人员的技能组合。如果使用 Electron,您甚至可以使用 HTML、CSS 和 JavaScript 创建桌面应用。许多流行的应用都是使用 Electron 创建的,例如 Slack、Visual Studio Code 和 Discord。
鏂囩珷鏉ユ簮锛�https://dev.to/andrewbaisden/full-stack-developer-vs-software-engineer-3ljk