原文: Full Stack Engineer – Career Guide

全栈工程师在过去十年中越来越受欢迎,是科技就业市场上最受欢迎的职位之一。

但究竟什么是全栈工程师?他们每天都在做什么?你如何才能成为一名全栈工程师呢?

在这篇文章中,我将介绍全栈的定义,并涵盖全栈工程师所从事的一些工作。我还会提到一些你成为一名全栈工程师需要学习的技能。

什么是全栈工程师

现代 web 应用由两层组成:前端和后端。

前端,也被称为客户端,由内容、内容的展示和布局以及互动性元素组成。它包括用户在屏幕上看到的并可以与之互动的所有可见部分。

后端,也被称为服务器端,包括一个运行代码的服务器,它有必要的逻辑来接收、处理以及加工请求,还有一个用于安全地存储用户数据的数据库。它包括用户不直接知道的所有幕后过程。

栈是技术的集合,指的是软件、工具、编程语言、框架和数据存储技术的组合,它们共同构建和运行 web 应用。

有许多技术栈。最流行的 JavaScript 语言的栈之一是 MERN,它代表 MongoDB、Express、React 和 NodeJs。

MongoDB 是一个文档数据库,Express 是 Node.js 的后端 web 应用框架,React 是一个前端 JavaScript 库,NodeJS 是一个后端 JavaScript 运行环境。

全栈工程师是指知道如何从头到尾构建一个 web 应用的工程师,包括前端部分、后端部分和它所处的基础设施。他们处理整个技术栈,了解其中的每一部分。

全栈工程师的任务和职责

全栈工程师致力于解决一系列广泛的问题,通常对项目有端到端的所有权——从概念化到部署。

一些日常职责可能包括:

  • 通过与客户和利益相关者的沟通来收集项目需求,了解软件产品的愿景。
  • 集思广益,与设计团队合作,在将设计原型编码成产品之前审查设计原型。
  • 解决应用程序面向客户端的 HTML、CSS 和 JavaScript 问题,并处理应用程序内使用的前端框架。
  • 确保 web 应用对终端用户的响应,应用能在大多数设备上运行。
  • 遵循可访问性的最佳实践。
  • 管理和维护数据库和服务器,以确保客户端高效和优化地工作。
  • 确保应用程序的安全性、维护、性能、正常运行时间和可扩展性。
  • 监控软件并编写测试,以确保代码按预期运行。寻找并修复代码中的错误,以优化软件。
  • 编写干净的、设计良好的、高效的代码,遵守行业最佳实践。
  • 跟进新的技术进展,以改善业务需求。
  • 创建一个最小可行产品,向利益相关者展示并与决策者沟通。
  • 在收集反馈意见后实施新功能。
  • 审查其他工程师编写的代码,并提供建设性的反馈。
  • 阅读和编写概述软件开发过程的文档。

任务和责任将取决于公司的规模。

例如,一个小公司可能只有一个处理整个应用程序的全栈开发人员。一个较大的公司可能有前端和后端开发人员,他们在自己的领域和专业知识范围内从事具体的工作。

全栈工程师的平均薪资是多少

软件工程师,包括全栈工程师,一般都有不错的薪水。

根据 美国劳工统计局 的数据,软件工程师的年薪中位数为 109,020 美元。

具体到全栈工程师, Glassdoor 列出的平均工资约为每年 120,300 美元。

Indeed 列出的平均工资为 120,749 美元。而 Stack Overflow 的开发者调查 显示,全栈开发者的平均工资为 14 万美元。

请注意,这些数据是面向在美国的全栈工程师统计的。报酬是多少将取决于你的位置和经验年限。

搜索一下你所在地区与你有相同经验的软件工程师的平均工资,以帮助你更好地了解。

如何成为一名全栈工程师——全栈工程师所需的技能

在下面的章节中,我将介绍成为全栈工程师所需学习的一些技术。

成为全栈工程师需要时间,你不可能成为所有工具和技术的专家——更多的是要对技术有全面的了解,并充分理解使用代码解决问题。

学习互联网和 web 基础知识

作为一名全栈工程师,了解互联网的工作原理并熟悉一些网络术语,如 DNS 和 IP 地址,会让你受益匪浅。

要了解更多关于 DNS、IP 地址以及互联网如何运行的信息,请查看以下资源:

你还需要知道 HTTP(超文本传输协议),这是万维网的基础,因为它管理着客户(如 web 浏览器)和服务器之间的通信。

具体而言,你需要了解 HTTP 请求方法(如 GET、POST、PUT、PATCH 和 DELETE)和 HTTP 响应代码(如 200、404 和 500)。

要了解更多关于 HTTP 的信息,请查看以下资源:

学习前端 web 开发基础知识

只有三种前端 web 语言在所有现代网络浏览器中运行: HTML、CSS 和 JavaScript。

HTML(超文本标记语言的简称)定义了网页的结构和内容,如文本、链接、表单、图像、视频等。

要学习 HTML,请查看 这个课程

CSS(层叠样式表的简称)对 HTML 内容设计样式,并使其具有美感——它决定了网页的外观和感觉。

CSS 负责确定页面上元素的大小、显示、布局和呈现。CSS 还负责使网页在所有屏幕尺寸上都能使用。

要了解更多关于 CSS 的信息,请查看 这个课程 ,其中包括 Flexbox 和 Grid——两个重要的 CSS 主题。当你了解了基础知识,你可以学习一个 CSS 框架,如 Tailwind CSS

JavaScript 是一种动态脚本编程语言,用于在浏览器中运行。

它是唯一可以用于前端 web 开发的编程语言,是 web 开发的重要组成部分。它与 HTML 和 CSS 一起被用来创建交互式网页。

要了解更多关于 JavaScript 的信息,请查看 这个课程

学习 Git 和 GitHub

Git 和 GitHub 是开发工作流程的核心部分,是每个软件开发工作中使用的工具。

Git 是一个分布式的版本控制系统,它提供了一种方法来对你的项目进行修改、备份这些修改、跟踪它们,甚至在需要时回溯到它们。它还可以让你在同一时间与其他团队成员协作。

GitHub 是一个在线托管服务,让你更容易使用 Git,是你和你的团队上传和审查代码的地方。

要了解更多关于 Git 和 GitHub 的信息,请查看 这个课程

学习一个前端库和框架

当你理解了 JavaScript 的核心概念,你就可以继续学习 JavaScript 的前端库和框架之一。

前端库是预先写好的可重复使用的代码,包含各种函数、方法或对象,你可以在你的 JavaScript 项目中使用,以执行任务和实现特定功能。而 web 框架是一种工具,可以使创建 web 应用更容易、更快速。

根据 2022 年 Stack Overflow 调查 ,最受欢迎和最常用的 JavaScript 库是 ReactJS。

要了解更多关于 ReactJS 的信息,请查看 这个课程

还有其他框架你可以使用和考虑学习,如 Vue Angular Svelte 。每个框架都有其组织和编写代码的方式,以及其自身的优势和局限性。

在学习这些工具之前,请确保你有一个坚实的 JavaScript 基础。

学习后端 web 开发

作为全栈 web 开发人员,你需要了解前端技术和后端工具,所以你还需要能够使用服务器端的脚本编程语言。

有很多可供选择的语言,如 Python、Ruby 和 Java,仅举几例。

尽管 JavaScript 被广泛用于前端开发,近年来,因为 NodeJS,它也被用于后端网络开发。

NodeJS 是一个提供后端功能的 JavaScript 运行时,旨在建立动态可扩展的 web 应用。

首先, 学习如何使用 NPM ,这是一个 Node 包管理器,用于安装和管理 JavaScript 包的本地依赖。它是专门为与 NodeJS 一起使用而设计的。

要学习 NodeJS 的基础知识,请查看 这个课程

你可以将 NodeJS 与 ExpressJS 服务器端 web 框架结合,创建全栈 web 应用。要学习使用 NodeJS 和 ExpressJS 的后端开发,请查看 这个课程

学习数据库管理系统和 SQL

作为一名全栈工程师,你将与数据库打交道,因为你所开发的大多数 web 应用都有一个数据库。你将花很多时间编写数据库查询,以获取你需要的数据。

数据库是一个存储容器——一个存储项目中所有数据的地方,如用户数据。

有两种主要的数据库类型:

  • SQL 或关系型数据库,也被称为 SQL 数据库,它以结构化的、有组织的、表格的形式存储数据。
  • 非关系型或 NoSQL 数据库,它们不以表格形式存储数据。

一个数据库有一个叫作数据库管理系统(DBMS)的程序,它作为数据库之间的接口,允许用户或程序来检索、更新和管理数据。

要了解关系型数据库,请查看 freeCodeCamp 的关系数据库课程

为了与关系型数据库通信并操作存储的数据,你要使用查询语言,如 SQL(结构化查询语言的简称)来查询它们。要了解更多关于 SQL 的信息,请查看 这个资源

如果你想开始使用 NoSQL 数据库管理系统,MongoDB 是一个不错的开始。要开始使用 MongoDB,请查看 这些课程

总结

希望这篇文章能帮助你更好地了解全栈工程师的工作。

在这篇文章中,我们介绍了全栈工程的定义,并涵盖了全栈工程师所从事的一些工作。

我们还介绍了一些你成为全栈工程师需要知道的工具和语言。

感谢你阅读本文!

freeCodeCamp 是捐助者支持的 501(c)(3) 条款下具有免税资格的慈善组织(税号:82-0779546)。

我们的使命:帮助人们免费学习编程。我们通过创建成千上万的视频、文章和交互式编程课程——所有内容向公众免费开放——来实现这一目标。学员在世界各地自发成立数千个 freeCodeCamp 学习小组。

所有给 freeCodeCamp 的捐款都将用于我们的教育项目,购买服务器和其他服务,以及聘用员工。

你可以 点击此处免税捐款 about:blank 是什么意思 打开 .dat 文件 Node 最新版本 反恶意软件服务 Windows10 产品密钥 Git 切换分支 AppData 文件夹 Windows 10 屏幕亮度 JSON 注释 MongoDB Atlas 教程 Python 字符串转数字 Git 命令 更新 NPM 依赖 谷歌恐龙游戏 CSS 使用 SVG 图片 Python 获取时间 Git Clone 指定分支 JS 字符串反转 React 个人作品网站 媒体查询范围