千锋带你学习全栈工程师终极修炼指南
大势所趋的全栈开发,千锋一部终极修炼指南助你升职加薪,走上人生巅峰……全栈网络开发,是给从未学习过编程的你,提供一个明确的指引,包括如何成为全栈网络开发人员最必不可少的技能以及如何找到工作。
全栈开发人员是能够工作在应用程序的前端和后端的开发人员。前端通常是指应用程序中用户将看到或交互的部分,后端是应用程序中处理逻辑、数据库交互、用户认证、服务器配置的部分。全栈开发并不意味着你已经掌握了前端和后端工作所需的一切,而是意味着你可以在双端工作并理解构建应用程序时发生的情况。
如果你想成为一个全栈开发人员,并找到你的第一份工作,下面是一个参考指南,列出了你需要学习的东西。
1. HTML/CSS
几乎所有程序,无论是在线的还是离线的,都在说明要成为 Web 开发者需要从 HTML 和 CSS 开始,因为它们是 Web 的基石。简单地说,HTML 让你给网站添加内容,而 CSS 则为这些内容添加样式。
语义化的 HTML。
解释 CSS 盒模型。
CSS 预处理器的优点(你不需要深入理解,但应该知道这是什么以及它们对开发起到的辅助作用)。
使用 CSS 媒体查询针对不同的设备编写响应式的 CSS。
Bootstrap (一个辅助页面设计和布局的框架,大量在线程序或学校都关注 Bootstrap 教学。实际上,深入理解基本的 CSS 比理解特定的 Bootstrap 特性和方法更为重要)。
2. Java
Java 语言一年比一年流行,新的库、框架和工具层出不穷。Stack Overflow 2016 年的开发者调查指出,Java 在全栈、前端和后端开发中都是最流行的语言。它是浏览器唯一支持的原生语言,同时也能作为服务器端语言(下面会看到 Node.js)。下面是一些作为全栈开发者所需要了解的主题:
理解如何使用 DOM。了解 JSON 并知道如何操作它。
重要的语言特性,比如函数式成分、原型继承、闭包、事件委托、作用域、高阶函数等。
异步控制流、Promise 和 回调。
了解如何正确地通过模块化组织你的代码,像 webpack、browserify 或者 gulp 这样的构建工具对此大有裨益。
至少会使用一个流行框架(很多程序将重要放在教你使用像 React 和 AngularJS 这样的库或框架,但实际上更重要的事情是深入理解 Java 语言而不是特定的框架特性。只要你精通 Java,选用一个框架将不费吹灰之力)。
虽然有些人可能认为你应该减少使用 jQuery,因为它正趋于死亡。但 jQuery 代码仍然存在于大量应用中,彻底理解它会对你很有帮助。
了解一些关于测试框架的知识,以及明白它们的重要性(有人甚至会认为这个话题可有可无)。
学习重要的 ES6 新特性(可选)。
3. 后端语言
一旦你认为已掌握好 HTML/CSS 和 Java 技能,你会向一门后端编程语言进军,以便处理类似数据库操作、用户认证以及应用逻辑的任务。所有在线练习平台和代码训练营通常集中于一门特定的后端语言,而实际上你选择哪一门也并不重要,只要你理解你正在做的事情并学到了你所选语言的本质。如果你问学哪一门后端语言最好,你会得到各种各样的无数的回复,所以下图我给大家列出了一些受欢迎的组合。
一个重要的提示:不管你决定学习哪一门,请坚持下去,
Node.js:这是一个很好的选择,因为 Node.js 本身就是 Java 环境,这意味着你不需要学习新的语言。这也是很多在线平台和训练营为什么选择教学 Node.js 的原因。这里你最有可能学习的也是最受欢迎的能帮助你开发网络应用的框架就是 Express 。
Ruby:用 Ruby 开发比较受欢迎的开发框架有 Rails 和 Sinatra 。很多教学平台把 Ruby 作为首选后端语言。
Python:Python 受欢迎的开发框架有 Django 和 Flask 。
Java:现在 Java 语言很少被选中作为全栈网络开发的教学语言,但是一些公司现在还是使用 Java 作为后端语言,所以现在也还是一门有相当需求量的语言
4. 数据库 & Web 存储
编写 Web 应用的过程中,有时候需要保存数据,以便稍后再进行访问。那么最好掌握下面这些有关数据库和存储的主题。
理解关系型数据,比如 SQL,带来的好处。
学习 NoSQL 数据库,比如 MongoDB。
知道在某些情况下,哪一种更合适。
知道如何使用你的后端语言连接数据库(比如 Node.js + MongoDB)。
知道像 Redis 或 memcached 这类内存数据存储的优势。
Web 存储可在浏览顺中存储会话、Cookie 以及缓存数据。
伸缩型数据库、ACID 和 ORM (都是可选的)。
5. HTTP & REST
HTTP 是应用于互联网的一项无状态应用协议 —— 它规范了客户端连接到服务器的行为(比如 Java 代码通过 AJAX 请求后端服务器中运行的代码就是采用的 HTTP)。下面列出了你应该了解的重要主题:
什么是 REST 以及它为什么对 HTTP 协议和 Web 应用来说很重要。
设计 RESTful API 的最佳实践。POST/GET 请求。
学会使用 Chrome DevTools 是极其有用的。
SSL 证书是什么。
HTTP/2 & SPDY
WebSockets、Web Workers,以及 Service Workers (均可选)。
6. Web 应用架构
当你认为已经掌握了 HTML/CSS、Java、后端编程、数据库和 HTTP/REST ,你就到了难对付的部分了。这时,如果你想创建一个稍微复杂的 web 应用,你需要了解如何组织代码,如何分割文件,往哪里保存大量媒体文件,如何结构化数据库里的数据,何处执行特定的计算任务(客户端还是服务器端),以及更多其他问题。
网上你可以读到一些最佳范例,但是最好的学习应用架构的方法是自己实践一个包含多个分散部件的大型应用 —— 甚至更好的方法是:和团队合作开发一个相对大型/复杂的应用。
这也是为什么,比如有个七年以上工作经验的人,也许他未必比工作两年的另一个人更懂 CSS 或 Java ,但或许是多年各种不同应用和网站的工作经验,使他学习到如何最有效的架构和设计应用(包括学习其他重要事项),并且在开发过程中能看清“全局”。
7.Git
Git是一套版本控制系统,它允许开发团队的开发人员跟踪代码库的所有更改。了解与 Git 相关的一些事项非常重要,它能让你了解如何正确获取错过的最新代码,更新部分代码,修复并修改其他人的代码,而不会发生任何意外。你一定要学习 Git 背后的概念,并多做尝试。
这里是一个参考列表,它列出了你将会使用到的 git 命令。
这里是一本手册 对 Git 和 GitHub 的初学者很有用。
8. 基本算法和数据结构
这个话题在开发世界中有点两极分化,因为有些开发人员认为在 Web 开发中不应该如此重视计算机科学的主题诸如树的遍历、排序、算法分析、矩阵操纵等。然而,像谷歌这样的公司在面试中问这些类型的问题是出了名的。有人说谷歌的前端工程师面试:
也就是说,正如 Ryan McGrath 所提到的,我们的前端(FE)工程师要有一个坚实的计算机科学(CS)背景,就像我们所有的工程师一样。
虽然有些公司确实要求申请人拥有计算机科学学位或同等学历,也有很多公司愿意雇佣没有这个技术资格的人,如果他们能够证明他们懂得如何开发应用程序和展示出对整个域的理解。但是,作为一个合格的开发人员,而不是编写低效的代码或使用错误的工具,部分要求是理解一些基本算法和数据结构,能够分析权衡。所以你一定要学会一些东西:
研究哈希表并试着在更深的层次上理解它们。这个数据结构构成了 Java 中的对象(Python 中的字典,Ruby 中的哈希)的基础。
理解树和图作为数据结构有何益处。
理解算法复杂度分析的基础知识,所以你不会做傻事,像创建实际上没必要创建的3层嵌套的循环!
懂得何时使用对象或是数组,并懂得取舍。
了解为何在处理大量数据时缓存是如此重要,也要了解内存存储和磁盘存储各自的利与弊,了解队列和栈的区别。
猜你喜欢LIKE
相关推荐HOT
更多>>Java培训需要多少钱?大概多长时间能学会?
如今各行各业都需要比较全面的人才,尤其是在计算机方面,毕竟企业都在不断的朝数字化转型方面发展,对于计算机方面的人才更加渴求,很多人因为...详情>>
2023-03-13 10:58:25现在参加广州Web前端培训班学习,还来得及吗?
Web前端开发岗位可以说是如今IT招聘中需求比较大的岗位之一,很多人萌生了转行的想法,同时也担心自己学完过后Web前端开发是否还会像现在这样火...详情>>
2022-03-11 14:23:00广州Java培训怎么样,有推荐的吗?
为了有一好的工作前景和薪资,很多人都会将目光放到IT开发行业上来,而Java作为IT开发语言中的常青树,自然受到了很多人的青睐。对于想通过培训...详情>>
2022-03-10 11:57:00在广州Web前端培训学习后,可以应用到哪些方向?
对于新手来说,在Web前端培训机构学习后可以应用到哪些方向是他们比较关心的问题。下面,千锋广州Web前端培训小编给大家解答一下。详情>>
2022-02-15 15:03:00热门推荐
现在学it什么专业好?it学习难吗?
沸java培训要多少钱?java培训后容易找工作吗?
热云计算培训一般多少钱?需要培训多长时间?
热Java程序员学习路线是什么?多久能学会?
新Java培训时间通常要多久?需要注意哪些问题?
Java培训需要多少钱?大概多长时间能学会?
广州云计算培训多少钱才是比较合理的呢?
为什么更多人会比较好奇云计算培训班多少钱?
web前端能干一辈子吗?找专业机构学习机会更多
广州web前端培训费用大概多少是比较合理的范围?
如何成为一名合格的程序员?扎实的基础和丰富的经验
哪些人适合学编程呢?逻辑思维很重要
怎样学电脑编程入门可以快速上手?
什么样的人适合学it呢?这个行业好在哪里?