你是否应该专一于全栈?"_。

如果你想把学习作为你的职业,请关注全栈。

全栈开发人员将一直倒退的软件世界视为机会,而不是威逼。他们利用古代语言和新框架。他们一直倒退本人的各种技能。他们就像技术自身一样前沿。

全栈开发人员可能适应。每个公司都有一个独特的堆栈,在前端和/或后端有不同的挑战。因而,利用多样化技能组合的能力使得全栈开发人员真正有价值。

最初,全栈开发人员利用了软件中最令人兴奋的局部:摸索未知。如果你第一百次都在编码雷同的解决方案,工作就会很无聊。但全栈开发者永远有机会深刻到新的问题空间。


如果你是一个新人,你从哪里开始?

本文中的图表追踪了你如何成为一名全栈开发者。它列出了你须要学习的技术。请留神,工夫预计是基于集体教训,以及我的共事的教训。另外,估计值假如你每天投入2-3个小时来学习。如果你能够投入更多或更少的工夫,请调整估计值。

即便你很有教训,你也会发现这个图表很有用。看看你的落脚点并跟踪你的进度。无论是哪种形式,无论是老手还是有教训的人,在图表完结时,都能够认为本人是一个全栈开发者。????

前端(约5个月)

HTML/CSS(1周以上)

从学习网络的构件开始。你必须学习超文本标记语言(HTML)。它是用来构建网站的语法。侥幸的是,它是列表中较快学会的技术之一。

接下来,你有层叠样式表(CSS)。学习这个次要是通过试验来实现。一旦你学会了基础知识,包含flexbox,就不要花太多工夫进一步开掘。你能够在其余我的项目中必要的时候学习其余的CSS细节。

JavaScript (1 month+)

你的很多工夫将被用来学习JavaScript编程语言。JavaScript能够让你的网站变成动静的网络应用。

JavaScript是一个必不可少的检查点。侥幸的是,有大量的资源能够用来加紧学习JavaScript。但依然要留神专一于基础知识。将中级和高级概念留到当前再学。随着学习的深刻,它们会变得不那么凌乱/令人丧气。

框架(2个月以上)

当你应用JavaScript的势头越来越好的时候,请学习一个JS框架。一个框架能够让你重用罕用性能,更快地实现大型利用。

有几个抉择。React,Angular,Vue,等等。在我看来,要学的是React.js.,它既对初学者敌对,又受到很多有教训的开发者的青睐。

这并不是说你应该齐全疏忽Angular和Vue。至多要读懂它们,晓得它们与React的区别。甚至做一两个教程。

但你的工夫是一种资源。我会把大部分工夫用在React上。

相干的前端概念(1个月以上)

测试(2周以上)

毋庸置疑,牢靠的软件公司都会测试他们的代码。因而,一个全栈开发人员应该相熟测试实际和库。既然你懂JavaScript和React,那么Jest和Enzyme就是不错的抉择。

Redux (2 weeks+)

如果你在学习React,就无奈防止Redux。确实,它们是不同的概念。React是出现层。Redux治理的是外部数据。然而,将Redux与React一起利用曾经成为业界的规范。

相干软件概念(约1个月)

尽量将以下概念尽快融入到学习过程中。

HTTP和客户端-服务器架构(2周以上)

一个全栈开发人员应该晓得数据是如何在万维网上进行通信的。在HTTP中,函数遵循申请和响应模式。它是这样的。一台计算机作为客户端。客户端应用Web浏览器向服务器发送HTTP申请。服务器,也就是另一台计算机,用HTML和CSS等资源来响应客户端。

我倡议建设一个向公共API发出请求的我的项目,让你对HTTP脏手。

Git (1 week+)

尽快学习Git。Git是一个版本控制系统,用于跟踪仓库(软件我的项目)中的变动。你能够把它看成是有版本的Google Drive。你能够与别人共享仓库。文件有多个贡献者。但在Git中,你能够领有我的项目仓库的分支,用于代替版本。Commits 记录了增加、更新或删除文件的确切工夫。而这仅仅是它性能的开始(小贴士:git reflog是一个秘密武器)。

此外,其他软件工程师和招聘人员也会心愿在Github上看到你的作品。

后盾(约3个月)

Node.js(1个月以上)

利用你的JavaScript教训,在后端摸索Node.js。将其与 Express.js 中间件一起应用,构建您本人的 API。Node.js在基于聊天的利用和流媒体方面大放异彩。利用这些劣势,尝试构建一个Facebook Messenger/WhatsApp克隆。

就像你第一次接触JavaScript一样,Node.js会显得很宏大。有大量的资源是很好的。但如果你不晓得从哪里开始就不行了。专一于基础教程,自然而然地晋升程度。

SQL和关系型数据库(1.5个月以上)

你不能漠视SQL和关系模型。后盾的一个根本方面是数据存储。结构化查询语言(SQL)是应用最宽泛的语言,以协调如何读取、写入和更新数据。学习关系模型。这是MySQL、PostgreSQL和Oracle等工业规范关系数据库系统背地的概念。

当你在学习Node.js的时候,你会遇到很多MongoDB的教程。MongoDB是一个NoSQL数据库--关系型数据库系统的替代品。小心,只关注MongoDB可能很迷人。当初,理解一下NoSQL数据库和语言是很好的。也要理解它们的劣势/劣势。但不要跳过SQL,也不要跳过关系模型。它们在行业中的利用如此宽泛。你最终会遇到它们。

????????????????????

就这样,你曾经实现了图表!开香槟吧! 派对就像你5岁生日时一样冷落!那么,在这种状况下,香槟可能是不适合的... ...

无论如何,蛋糕应该说。你是一个全栈开发者。

然而,它并没有进行在这里... ...

超过

一个将所有内容整合在一起的我的项目(2周以上)

你有全栈技术。心愿你始终在积攒作品集。然而为了帮忙你,真的很难在网上找到一个将所有全栈概念分割在一起的教程。你得本人去拼凑一个我的项目。

所以我建设了一个课程来解决这个问题。到最初,你的作品集里会有一个全栈我的项目。其重点是React.js、Redux、Node.js和PostgreSQL。它还关注那些能让你怀才不遇的小细节:代码设计的最佳实际,以及办法命名。

Master Full-Stack Development | Node, SQL, React, and More

计算机科学(5个月以上)

一个全栈开发人员也应该懂计算机科学。是的,从工夫估算上看,大学四年的工夫的确能够归结为五个月。那是不是说拿到CS学位就没有意义了呢?当然不是,取得计算机科学学位是一项微小的投资。你能够和许多聪慧的人建立联系。而且你还能够摸索你可能感兴趣的其余工程课题。

但那些在行业中立刻实用的货色--数据结构和算法、操作系统和软件开发原理--能够在高度集中的五个月内实现。

我的很多共事都是非CS业余毕业的(有的甚至是非迷信业余)。他们要么自学,要么上过训练营。

其余语言/技术全栈(正在进行)

正如一开始提到的,全栈开发者在未知中茁壮成长。学习的过程是继续的。一旦你在一种技术上变得很危险,是时候把它的竞争对手/替代品增加到你的工具箱中了。用另一个JS框架(如Vue.js)构建一两个我的项目。开始摸索NoSQL数据库,比方Redis。

真正让本人怀才不遇的办法是理解每种技术的劣势/劣势。晓得什么时候最好应用Node.js,与什么时候应该应用Go或Scala。

理解语言的哪些局部值得称赞。_晓得哪些局部值得埋怨。

最终,如果你想把学习作为你的职业,请专一于全栈开发。


David是旧金山Zendesk的全栈开发人员和软件工程师。他喜爱制作教育内容。他有17门课程,有来自世界各地的约20万名学生。看看他们吧 https://www.udemy.com/user/54cd8dd54e49b/

Highlights:

Master Full-Stack Development | Node, SQL, React, and More

Build a Blockchain and a Cryptocurrency from Scratch

React — Mastering Test and Behavior Driven Development

Also, feel free to connect with David by finding his social media links on davidtkatz.com