2017年成为全栈开发工程师的权威指南

10年服务1亿Tian开发工程师

根据 显示,全栈开发工程师是当今最受欢迎的开发者职业。 毫无疑问,有许多在线和现场教学可以帮助你成为全栈开发工程师,甚至帮助这些新开发人员找到高薪本赛季开发工作。

国内外有很流行的在线,比如:? , , , , ,,,,, 等等。

除了这些在线,还有许多 正在教人们成为 Web 开发人员所需的技能。

在这篇文章中,我不会讨论哪些在线或现场教学比较好。相反,我将提供一份我认为当今要成为一个全栈开发工程师所需最重要技能的权威指南,如果你以前从未编写过代码的话,或许可以获得一份好工作。我会从三个方面列出成为一个全栈开发工程师所需的最重要技能:

  1. 2017年教给学生最多的是什么。
  2. 我过去去面试开发者岗位 和 在我现在公司全栈开发工程师的个人经验。
  3. 在 接受现场教学,然后从事全栈开发工作的开发者们的故事和反馈。

权威指南

全栈开发工程师是指能够独立开发应用程序的Tian和后端工作的开发人员。Tian通常是指用户在应用程序中能看到或交互的部分,后端是应用程序中处理业务逻辑,数据库交互,用户认证,服务端配置等部分。作为一个全栈开发工程师并不意味着你必要完全掌握Tian或后端所需的一切开发技术,而是意味着你可以进行前后端开发工作,并且了解构建应用程序时发生了什么。

如果您想在2017年成为一个全栈开发工程师,并找到你的第一份工作,以下是参考指南,列出你应该学习的事项。

1. HTML/CSS

几乎每一个,无论是在线还是在场,教你成为全栈开发工程师都是从 HTML 和 CSS 开始的,因为它们是 Web 构建的基石。简单地说,HTML允许你向网站添加内容,CSS允许你为内容设计风格。与 HTML / CSS 相关的以下主题经常在面试时和实际工作中出现:

  • 能够解释 。
  • 的优点 (您不一定需要了解如何深入使用它们,但是您应该了解它们的用途以及它们对开发的帮助)。
  • (注:原文是) 定位不同的设备并编写响应式CSS。
  • (一个框架,帮助设计和布局页面内容,并且许多在线或学校重点关注和教学 Bootstrap ,事实上相对于 Bootstrap 的功能和方法,更重要的是深入掌握 CSS 的基础知识)。

2. JavaScript

JavaScript 语言每年都越来越受欢迎,新的库、框架和工具都在持续不断的涌现。根据 ,JavaScript 已经成为 全栈,Tian 和 后端开发中最流行的语言。它是在浏览器中本机运行的唯一语言,并且也可以将其作为服务端语言(比如您将在下面看到的 Node.js )。以下是你成为一个全栈开发工程师所需要了解的一些主题:

  • 知道如何 ,同时也知道 JSON 是什么,以及如何操作它。
  • 重要的 ,如 ,prototypal inheritance(原型继承),closures(闭包),event delegation(事件委托),scope(作用域)(注:作用域可以查看?深入理解JavaScript中的作用域和上下文 这篇文章),higher-order functions(高阶函数) 等。
  • , 和 。(注:当然还有 ES 7 中的 async / await 也可以作为一个了解点。)
  • 学习如何正确地构建你的代码,并将代码 ,像 , ,或者像 这样的构建工具将会很有帮助。
  • 至少知道如何使用一个 (许多将重点放在一些库、框架上,如 或 ?(注:还有 Vue 等),但实际上,你需要更加深入地了解 JavaScript 语言,而不是非常重视框架特定的功能。一旦你对 JavaScript 有了很好的了解,拿起一个框架就不会太难了)。
  • 虽然有些人 说,你应该尽量少使用慢慢地消亡的东西,但是现在的实际情况是 代码在大多数应用程序中仍然存在,并且理解它将会很有帮助。
  • 了解有关 测试框架 的知识以及它们的重要性(有些人甚至认为这个主题应该是可选的)。
  • 了解一些重要的 (可选)。

3. 后端语言

一旦你感觉 HTML / CSS 和 JavaScript 掌握的很好的时候,那么你将需要转到后端语言,来处理数据库操作,用户认证 和 应用程序逻辑 等操作。所有 在线 和 现场教学 通常集中教学一门特定的后端语言,只要你了解一门后端语言,并且学习与所选择的语言的细微差别,那么在实际中,无论你学什么都会比较轻松。如果你问某些后端语言是最好的学习方法,你将收到,所以下面我列出了一些流行的组合。一个重要的说明:无论你决定学习什么,只要坚持下去,尽可能多地学习它 – 所有以下列出的语言都可以找到相关的工作。

  • Node.js:这是一个很好的选择,因为 Node.js 本身只是一个 JavaScript 运行环境,这意味着你不需要学习一种新的语言。这是很多在线和现场教学选择教 Node.js 的重要原因。最有可能学会,帮助你开发 Web 应用程序的框架是 。
  • Ruby:Ruby 开发的一些流行框架是 Rails 和 Sinatra 。许多 都把 Ruby 作为第一选择的后端语言。
  • Python:Python 开发的一些流行框架是 Django 和 Flask 。
  • Java:涉及到全栈 Web 开发,Java 语言目前并没有太多的学习,但是一些公司确实将 Java 作为后端,它仍然是一个需求量很大的语言(见上图)。
  • PHP:现在很少有教 PHP 的,但是它和 JAVA 一样,它仍然是非常需要的语言,它是当今 Web 开发的基石。

4. 数据库 和 Web 存储

当学习构建 Web 应用程序时,在某些时候你可能想要在某个地方存储数据,以便以后再访问它。你应该很好地掌握与 数据库 和 存储 有关的以下主题。

  • 理解 的好处,例如: 。
  • 学习 (非关系型) 数据库,例如: 。
  • 理解 中选择哪些会更好。
  • 知道如何使用你选择的后端语言连接数据库(例如: Node.js + MongoDB)。
  • 理解像 或 这样的内存数据存储的 。
  • 掌握 Web storage(存储) 可以在浏览器中存储 session ,cookies 和 cached 数据。
  • 了解 , 和 (全部可选)。

5. HTTP & REST

HTTP 是互联网上的无状态应用协议 – 它允许客户端与服务器进行通信的方式(例如,您的 JavaScript 代码可以通过 HTTP 发起一个 AJAX 请求 ,来获取服务器上运行某些后端代码的结果)。你应该掌握的重要主题如下:

  • 什么是 ,以及它对 HTTP 和 web 应用的 .
  • RESTful API 的 。 请求。
  • 学习如何使用 非常有用。(注: Chrome DevTools 中文文档
  • 什么是 ?
  • (可选)
  • ,Web Workers 和 (全部可选)

6. Web应用架构

一旦你认为你掌握了 HTML / CSS ,JavaScript ,后端本赛季 ,数据库 和 HTTP / REST,那么接下来就是棘手部分了。这时,如果你想创建一个有点复杂的 Web 应用程序,你需要知道如何构建代码,如何分离文件,在哪里存储您的大型媒体文件,如何在数据库中组织数据,在哪里执行某些计算任务(客户端 vs 服务器端)等等。

你可以在线阅读许多最佳实践的文章,但是实际上,了解应用程序架构的最佳方式是通过对自己的大型应用程序(包含几个 )进行处理总结出来的 – 更好一点的方式是,在一个团队工作,一起开发一个 大型/复杂 的应用程序。

为什么这么说呢?例如,具有 7 年以上经验的开发人员可能不一定比具有 2 年经验的开发人员更好地了解 CSS 或 JavaScript ,但是在这些年中,他们参与开发了许多不同的应用和网站,并 建构和设计应用程序,在实践中学习通常是最有效的,往往是 能掌控“大局”。以下是你可以阅读的一些内容,可以帮助你了解如何高效地构建Web应用程序:

  • 学习公共 ,例如 和 。Heroku 允许您轻松上传您的代码,并且不需要多少的配置 或 服务器维护就可以轻松启动和运行应用程序。AWS 提供了数十种产品和服务来帮助存储,视频处理,负载均衡等等。
  • 针对应用和现代浏览器进行 。
  • 关于Web应用程序架构应该采纳的 。
  • 微软的 。
  • 最重要的是,你应该尝试与其他开发人员合作,看看 GitHub 上热门的项目代码库,并从高级开发人员那里 的东西。

7. Git

Git 是一个 ,允许开发团队中的开发人员跟踪代码库的所有更改。了解与 Git 有关的一些重要事项很重要,以便你了解如何正确获取你错过的最新代码,更新部分代码,修复,并修改别人的代码,而不会搞破坏。你一定要学习 Git 背后的 ,同时也要自己玩弄。

  • 这个是你可能会使用的 。
  • 这是一个为初学者准备的 。

8. 基本算法和数据结构

这个话题在开发者中有点两极化,因为有些开发者认为,在 web 开发中,不需要过分的注重计算机科学这个课题,比如树遍历,排序,算法分析,矩阵处理等。不过一些公司,比如 Google ,在面试中 这些问题是出了名的,也经常被一些面试者吐槽。 Google 的Tian工程师面试时说:

也就是说,正如 所说,我们希望Tian(FE)工程师像所有的工程师一样拥有扎实的 CS 背景。

虽然有些公司几乎都要求求职者拥有计算机科学学位或同等学历,然而也有很多公司会 那些没有这种技术资历的开发人员,如果这些开发人员可以证明他们知道如何开发应用程序,并展示出对整个领域了解。但是我认为,作为一个有实力的开发者,不写出低效的代码,或使用错误的工具,非常有必要了解一些基本的算法和数据结构,并能够分析权衡。所以这里有一些你应该学习的东西:

  • 。这种数据结构在 JavaScript 中使用对象表示( Python 中是字典,而在 Ruby 中是哈希 )。
  • 理解 树 和 图形 如何 作为数据结构。
  • 理解 的基础知识,所以你不要做 ,比如创建一个嵌套3层的循环,如果你不需要!
  • 知道什么时候使用应该 ,并能作出很好的权衡。
  • 学习为什么使用大量数据时 非常重要。 还要了解内存存缓与磁盘存储的 。
  • 学习队列和堆栈之间的 。

总结

学习所有这一切将是非常艰苦,但最终是很有收获的,全栈开发非常有趣!欢迎你评论留言,说出你的观点和已经。同事推荐查看 的一些算法练习。

原文链接:

赞(0) 打赏
未经允许不得转载:WEBTian开发 » 2017年成为全栈开发工程师的权威指南

评论 3

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    Python:Ruby 开发的一些流行框架是 Django 和 Flask 。

    错了

    Null2年前 (2017-06-15)回复
    • 收到,马上修改

      2年前 (2017-06-15)回复
    • 已经修改,谢谢

      2年前 (2017-06-15)回复

Tian开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏