前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >终极版全栈工程师学习路线图

终极版全栈工程师学习路线图

作者头像
老九君
发布2018-03-06 18:01:46
5.1K0
发布2018-03-06 18:01:46
举报
文章被收录于专栏:老九学堂老九学堂
全栈工程师因为丰厚的待遇与较好的发展前景,一直是互联网行业较为热捧的岗位,因此有很多做前端、后端的程序员想要向全栈工程师方向转!

如果小伙伴想成为一个全栈 Web 开发人员,并找到第一份工作,下面给了一个参考指南,列出了大致需要学习的东西。

1. HTML5/CSS3

几乎所有程序,无论是在线的还是离线的,都在说明要成为 Web 开发者需要从 HTML 和 CSS 开始,因为它们是 Web 的基石。简单地说,HTML 是给网站添加内容,而 CSS 则为这些内容添上装扮。

2. JavaScript

JavaScript 语言一年比一年流行,新的库、框架和工具层出不穷。

Stack Overflow 2017 年的开发者调查指出,JavaScript 在全栈、前端和后端开发中都是最流行的语言。它是浏览器唯一支持的原生语言,同时也能作为服务器端语言(下面会看到 Node.js)。

3. 后端语言

一旦我们认为已掌握好 HTML/CSS 和 JavaScript 技能,之后就应该向一门后端编程语言进军,以便处理类似数据库操作、用户认证以及应用逻辑的任务。

所有在线练习平台和代码训练营通常集中于一门特定的后端语言,而实际上选择哪一门也并不重要,只要我们理解正在做的事情并学到了所选语言的本质。

如果问学哪一门后端语言最好,也许会得到各种各样的无数的回复,下图给大家列出了一些受欢迎的组合。

一个重要的提示:不管我们决定学习哪一门,请坚持下去,并尽可能深入学习-所有下图列出的语言都有相应的工作机会。

4. 数据库 & Web 存储

编写 Web 应用的过程中,有时候需要保存数据,以便稍后再进行访问。那么最好掌握下面这些有关数据库和存储的主题。

  • 理解关系型数据,比如 SQL,带来的好处。
  • 学习 NoSQL 数据库,比如 MongoDB。
  • 知道在某些情况下,哪一种更合适。
  • 知道如何使用你的后端语言连接数据库(比如 Node.js + MongoDB)。
  • 知道像 Redis 或 memcached 这类内存数据存储的优势。
  • Web 存储可在浏览顺中存储会话、Cookie 以及缓存数据。
  • 伸缩型数据库、ACID 和 ORM (都是可选的)。

5. HTTP & REST

HTTP 是应用于互联网的一项无状态应用协议 —— 它规范了客户端连接到服务器的行为(比如 JavaScript 代码通过 AJAX 请求后端服务器中运行的代码就是采用的 HTTP)。下面列出了我们应该了解的重要主题:

  • 什么是 REST 以及它为什么对 HTTP 协议和 Web 应用来说很重要。
  • 设计 RESTful API 的最佳实践。POST/GET 请求。
  • 学会使用 Chrome DevTools 是极其有用的。
  • SSL 证书是什么。
  • HTTP/2 & SPDY (可选)。
  • WebSockets、Web Workers,以及 Service Workers (均可选)。

6. Web 应用架构

当我们认为已经掌握了 HTML/CSS、JavaScript、后端编程、数据库 和 HTTP/REST ,就到了难对付的部分了。

这时,如果想创建一个稍微复杂的 web 应用,还需要了解如何组织代码,如何分割文件,往哪里保存大量媒体文件,如何结构化数据库里的数据,何处执行特定的计算任务(客户端还是服务器端),以及更多其他问题。

网上可以读到一些最佳范例,但是最好的学习应用架构的方法是自己实践一个包含多个分散部件的大型应用 —— 甚至更好的方法是:和团队合作开发一个相对大型/复杂的应用。

这也是为什么,比如有个七年以上工作经验的人,也许他未必比工作两年的另一个人更懂 CSS 或 JavaScript 。

但或许是多年各种不同应用和网站的工作经验,使他学习到如何最有效的架构和设计应用(包括学习其他重要事项),并且在开发过程中能看清“全局”。以下书籍或文章可以帮助小伙伴学习如何有效架构自己的网络应用:

  • 学习通用的平台即服务,比如 Heroku 和 AWS 。Heroku 允许做很少的配置或服务器维护,即可轻松上传代码,并执行应用。AWS 提供许多产品和服务帮助解决存储、视频处理、负载均衡以及其他更多其他的问题。
  • 应用和流行浏览器的性能优化。
  • 关于网络应用架构应该考虑哪些要素的一些观点。
  • 微软文档:设计网络应用。
  • 模型-视图-控制器编程模式(MVC)。
  • 当然,最重要的还是应该尝试与别人合作项目,阅读 Github 上受欢迎的代码,以及尽可能向资深开发员学习。

7. Git

Git是一套版本控制系统,它允许开发团队的开发人员跟踪代码库的所有更改。了解与 Git 相关的一些事项非常重要,它能让我们了解如何正确获取错过的最新代码,更新部分代码,修复并修改其他人的代码,而不会发生任何意外。

所以一定要学习 Git 背后的概念,并多做尝试。

8. 基本算法和数据结构

这个话题在开发世界中有点两极分化,因为有些开发人员认为在 Web 开发中不应该如此重视计算机科学的主题诸如树的遍历、排序、算法分析、矩阵操纵等。

然而,像谷歌这样的公司在面试中问这些类型的问题是出了名的。 有人说谷歌的前端工程师面试:

也就是说,正如 Ryan McGrath 所提到的,我们的前端(FE)工程师要有一个坚实的计算机科学(CS)背景,就像我们所有的工程师一样。

虽然有些公司确实要求申请人拥有计算机科学学位或同等学历,也有很多公司愿意雇佣没有这个技术资格的人,如果他们能够证明他们懂得如何开发应用程序和展示出对整个域的理解。

但是,作为一个合格的开发人员,而不是编写低效的代码或使用错误的工具,部分要求是理解一些基本算法和数据结构,能够分析权衡。所以你一定要学会一些东西:

  • 研究哈希表并试着在更深的层次上理解它们。这个数据结构构成了 JavaScript 中的对象(Python 中的字典,Ruby 中的哈希)的基础。
  • 理解树和图作为数据结构有何益处。
  • 理解算法复杂度分析的基础知识,所以你不会做傻事,像创建实际上没必要创建的3层嵌套的循环!
  • 懂得何时使用对象或是数组,并懂得取舍。
  • 了解为何在处理大量数据时缓存是如此重要。也要了解内存存储和磁盘存储各自的利与弊 。
  • 了解队列和栈的区别 。

学习所有这些是会很辛苦,但最终还是值得的,并且全栈开发充满乐趣!希望各位想转型或0基础想入行的小伙伴能够成功~

注:本文只是给出了全栈工程师需要的大致学习方向,而非详细的知识点结构。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老九学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档