全栈开发工程师是指能够独立开发应用程序的前端和后端工作的开发人员。前端通常是指用户在应用程序中能看到或交互的部分,后端是应用程序中处理业务逻辑,数据库交互,用户认证,服务端配置等部分。作为一个全栈开发工程师并不意味着你必要完全掌握前端或后端所需的一切开发技术,而是意味着你可以进行前后端开发工作,并且了解构建应用程序时发生了什么。
如果您想在 2017 年成为一个全栈开发工程师,并找到你的第一份工作,以下是参考指南,列出你应该学习的事项。
几乎每一个课程,无论是在线还是在场,教你成为全栈开发工程师都是从 HTML 和 CSS 开始的,因为它们是 Web 构建的基石。简单地说,HTML 允许你向网站添加内容,CSS 允许你为内容设计风格。与 HTML / CSS 相关的以下主题经常在面试时和实际工作中出现:
-
语义化的 HTML。
-
能够解释 CSS 盒子模型。
-
CSS 预处理器 的优点 (您不一定需要了解如何深入使用它们,但是您应该了解它们的用途以及它们对开发的帮助)。
-
CSS Media Queries (媒体查询) (愚人码头注:原文是这个链接) 定位不同的设备并编写响应式 CSS。
-
Bootstrap(一个框架,帮助设计和布局页面内容,并且许多在线课程或学校重点关注和教学 Bootstrap ,事实上相对于 Bootstrap 的功能和方法,更重要的是深入掌握 CSS 的基础知识)。
JavaScript 语言每年都越来越受欢迎,新的库、框架和工具都在持续不断的涌现。根据 2016 年 Stack Overflow 开发者调查 ,JavaScript 已经成为 全栈,前端 和 后端开发中最流行的语言。它是在浏览器中本机运行的唯一语言,并且也可以将其作为服务端语言(比如您将在下面看到的 Node.js )。以下是你成为一个全栈开发工程师所需要了解的一些主题:
-
知道如何 处理 DOM ,同时也知道 JSON 是什么,以及如何操作它。
-
重要的 语言特性 ,如 functional composition(函数组合),prototypal inheritance(原型继承),closures(闭包),event delegation(事件委托),scope(作用域)(愚人码头注:作用域可以查看 深入理解 JavaScript 中的作用域和上下文 这篇文章),higher-order functions(高阶函数) 等。
-
异步流程控制,promises 和 callbacks 。(愚人码头注:当然还有 ES 7 中的 async / await 也可以作为一个了解点。)
-
学习如何正确地构建你的代码,并将代码 模块化 ,像 webpack ,browserify ,或者像 gulp 这样的构建工具将会很有帮助。
-
至少知道如何使用一个 流行的框架 (许多课程将重点放在一些库、框架上,如 React 或 AngularJS (愚人码头注:还有 Vue 等),但实际上,你需要更加深入地了解 JavaScript 语言,而不是非常重视框架特定的功能。一旦你对 JavaScript 有了很好的了解,拿起一个框架就不会太难了)。
-
虽然有些人 可能会争论 说,你应该尽量少使用慢慢地消亡的东西,但是现在的实际情况是 jQuery 代码在大多数应用程序中仍然存在,并且理解它将会很有帮助。
-
了解有关 测试框架 的知识以及它们的重要性(有些人甚至认为这个主题应该是可选的)。
-
了解一些重要的 ES6 新特性(可选)。
一旦你感觉 HTML / CSS 和 JavaScript 掌握的很好的时候,那么你将需要转到后端语言,来处理数据库操作,用户认证 和 应用程序逻辑 等操作。所有 在线课程 和 现场教学 通常集中教学一门特定的后端语言,只要你了解一门后端语言,并且学习与所选择的语言的细微差别,那么在实际中,无论你学什么都会比较轻松。如果你问某些后端语言是最好的学习方法,你将收到不同的答案,所以下面我列出了一些流行的组合。一个重要的说明:无论你决定学习什么,只要坚持下去,尽可能多地学习它 – 所有以下列出的语言都可以找到相关的工作。