还有几天就要跨入2020年了,又有一大波知识点,工具袭来,你准备好了吗? 这里有一份清单,能让你轻松get重点知识,赶紧mark下来吧~😊
ps: 做了 周周译 的第一期,没想到有不少同学看了,而且给了我很多鼓励,能给大家一点点帮助,又能让自己坚持下去的事情的确难得,第二期周周译来咯~
今天我最喜欢的老师Brad Traversy,发表了他建议你在2020年学习成为一名web开发者的概述。
Brad 删除了很多你在社会媒体上听到的不实传言,他的建议切实可行,我对他推荐学习的内容无比赞同。
我下面总结了一些他的主要观点方便你了解,也就是说,我推荐你观看他完整的视频(嵌入的),除了注释传达的内容以外他还添加了很多详细的方法,大概需要观看73分钟。
我还推荐去订阅他的TraversyMedia优酷频道,在过去的十年,Brad 一直是一位非常出色的教师,并发表了将近 800 个技术视频。
Brad 距离一百万的订阅粉丝还有一些距离,我们看看能否帮他在新一年达到一百万点击,你可以在这订阅
2020年的web开发:概述
视频的主要目的是介绍开发者常用的主流 web 开发相似的工具。
“我并不是想通过技术让你不知所措,这些只是你拥有的选择...那里有很多选择,当你听说 Nuxt 或者 Gatsby,我希望你能知道它是什么,然后你可以选择要不要学习”
Brad首先鼓励大家问问自己想做什么?想在一家产品公司工作?或者当技术顾问?想当一个自由职业者?或者想创建一个自己的产品?
他的建议都基于你的目标,因此,他在提出了很多工具建议。
首先,是他建议学习所谓的“必需品”
其中他指出一条与直觉相反的观点,你不需要用很花哨的电脑做web开发,"不像游戏引擎开发之类的东西,所以可以使用中型的笔记本或台式电脑,甚至是低端的电脑。
他将 MacOS , Windows 10 , 和 Linux 用于云服务器,甚至他的媒体服务器。
他是 VSCode 编辑器的忠实粉丝,使用 Chrome和 内置 DevTools 基于浏览器的调试,也就是说,他认为Firefox也已经走了很长一段路,也是可替代的方案。
他推荐从 HTML 标准和 CSS 开始学习,并学习一些新的CSS工具,像弹性盒,网格布局。
他说2020年应该学习响应式网页设计:“你创建的每个严格的项目应该看起来不错,并且在所有设备上都应该适配”。
建议不要依赖CSS框架 Bootstrap ,他推荐你练习构建自己的CSS组件,以便在你的个人项目中复用组件。
话虽如此,你可能在为不同雇主做项目的时遇到这些问题。
CSS框架
他特别提到了Tailwind,我之前从未听说过,Tailwind与其他css框架略有不同,它着重于“实用程序类”,所以你可以组合完成你想要的设计。
JavaScript
不出意外的 Brad 推荐了JavaScript 特别不错
freeCodeCamp 课程中也涵盖了其中的大部分】
踏实学习--基础部署
贯穿 Brad 的建议,他反复强调实用性的必要性。 是的,一切都有其最佳实践,但很多情况下,没有足够好的方式帮你快速完成更多的工作,不至于陷入工具的泥潭。
其中最有意思的(也许最离经叛道)是他说:
无需为小型网站学习 DevOps 和 AWS 以及所以内容,托管站点或管理托管站点的网站像 InMotion 或 Hostgator 都行,它让你在浏览器进行部署,无需过度复杂。
他认为,即使在 2020 年,也要说说使用熟悉的工具。
对于很多新接触web开发的人,Brad 建议首先要成为基本的前端web开发人员, 这样你可以作为自由开发者为本地企业建立网站。
“追赶潮流的人说:你肯定需要使用前端框架,我并不这么认为,如果你需要在服务端渲染模板而不使用前端框架,那绝对不错,但是很多工作只是想要用类似 React 或者 Vue 这样的工作”。
一旦当你准备好应对前端框架,他建议你探索 React , Vue , Angular,"尝试这三个框架,找出你最喜欢的一个"
他也同意Svelte “他们并不是框架,而是编译器,但在2020年重新启动还是太新了”
有两个特别流行的服务器端渲染 (SSR)工具 Next.js (用于React)和 Nuxt.js (Vue选项)。
另一个新趋势是“静态网站渲染”,他说你不用学习但是可以关注下,例如,盖茨比(Gatsby)网站站速度很快,但是不需要服务器。
后端开发工具
对于服务端开发,Brad 更喜欢 Node.js 因为它速度快,以及使用 JavaScript 写前端和后端。
对于服务端开发框架,他推荐学习 Express 因为它十分流行并且“能让你自由选择按你自己的方式去构建事物”
他也用 Python 做一些项目,同样也很推荐。
“
Python有两个很棒的框架,Django是一个大型且功能齐全的框架,Flask更加简约,它提供了您所需的内容,但你可以作出其余的决定,讲真我很难选择其中的一个,我两个都很喜欢并且会有这两个做不同的事情。”
并且他很快就来捍卫 PHP 了:
“很多人会讨厌PHP ,不幸的是,因为PHP 可以是一门很好的语言,它实战性强,并且可以在任何地方轻松部署, PHP非常适合需要快速解决问题的自由职业者。如果你打算在大公司工作, PHP也许不是最好的选择,但如果你是自由开发者搭建个人项目,PHP 可能是最好的选择,抨击PHP变得很酷,PHP 是我最开始学习的语言,我仍然很喜欢它... 如果你看
Laravel的代码会觉得很优雅。”
数据库
Brad还快速浏览了数据库,并推荐了常年喜欢的 PostgreSQL 。
其他可能会保留的工具
GraphQL 是 REST for API 的替代方法。 在Brad的频道和 freeCodeCamp 的频道上都有涵盖GraphQL的几门课程。 但是他说:“如今,您不必学习 GraphQL
了,但它足够大,我认为它会持续存在。这不仅仅是一种趋势。”
Brad也谈到了内容管理系统 CMS 以及他们如何演变成新的“无头”选项,您可以将他们用作后端并编写自己的前端。
CMS 对有想要有可以登录发表博客的客户端的自由开发者很好用。很多人使用 WordPress ,但在互联网中运行站点仍有很大比例使用 WordPress ,而且很流行。
对于web服务器比起 Apache 他更喜欢 Nginx ,因为"它看起来没那么复杂",我们在 freeCodeCamp 广泛使用 Nginx ,并且我也同意这种观点。
Brad也解释了虚拟化的工作原理,并讨论了虚拟化如何通过跨多台计算机标准化环境来简化更复杂的项目。但他告诫不要所有东西都尝试虚拟化。
“ Docker 对团队也非常好,我不喜欢人们总是说你应该使用 Docker,这仅仅是偏爱,如果你想运行一个本地的 LAMP 服务,这样没有什么错。不要感到压力。学习类似 Docker 的东西”。
他还提到,要强调一些我个人无法强调的事情:“我知道很多书呆子的类型只会把事情弄的更复杂,我很讨厌,仅仅因为我列出了所有内容并不意味着我会继续努力”。
他还很快指出,大多数大公司都有专门的 DevOps 团队(也称为“站点可靠性工程师”),他们可以为您做很多事情。
很高兴拥有可以作为专业学习的技能
如果你想测试下移动端应用开发的程序,Brad强烈推荐 Flutter 框架,它基于 Dart ,是一种比较晦涩的语言,他描述 Dart 介于 Java 和 JavaScript,并且他说你知道其中的一门语言,都可以使用它。
他在移动端应用开发第二选择是 React Native ,如果你已经知道 React 的话很容易上手。
Brad出色的解释了 PWA(渐进式web应用程序) ,和它的一些优点,这是幻灯片,但我强烈建议你去看看完整的视频。
接着,他谈到了 Electron ,让你可以使用 JavaScript 构建桌面应用,他最初保持怀疑,但是他最喜欢的一些桌面应用-例如VS Code 和 Discord 都是 Electron 构建的。
他也提到了 JAMstack (Javascript,API,和 标记)和无服务架构,这些都是更高级的主题,他的频道和freeCodeCamp的YouTube频道都提供了视频教程。
然后他进入到预测2020年的大趋势。
机器学习和 Web Assembly
仅仅因为所有人都在谈论机器学习,并不意味着您必须放弃所有东西并学习它。 这就是他在本演讲阶段的开头。
是的,您也可以使用 JavaScript 进行机器学习。
"
Python是机器学习之王. 即使是用JavaScript你也可以使用TensorFlow.js, 也可以使用Brain.js来创建神经网络做一些真正酷炫的事情."
在他谈论 Web Assembly的时候明显感到他很兴奋。
"
Web Assembly仍处于早期阶段,但我认为我们今年会看到更多,传统上,我们在网页上使用JavaScript来操作DOM并运行计算。JavaScript在速度方面有局限性。一种语言 例如C或C ++比JavaScript快得多。
因此,Web汇编是一种高效的低级字节代码,可以由浏览器执行,并且速度非常快。它可以由
C,C ++和Rust等语言生成。"Rust是Web Assembly可以使用的语言之一(除了C和C ++)。 它比C和C ++更容易学习和使用。但是需要特别注意的是,Web Assembly不会让您不必学习JavaScript。
"你几乎上可以认为
JavaScript是老板,告诉Web Assembly要做什么,所以,它使我们能够在我们的Web应用程序中使用非常快速的低级语言(例如C ++),这为我们提供了更多功能-例如 下一代视频游戏和视频编辑工具,就可以在浏览器中找到,这是JavaScript所无法想象的。"
最后他说“你学到的越多,将这些技术融合起来就越容易,不要被覆盖,一步一个脚印,做一些演讲,弄清楚你想做什么。”
再次感谢Brad Traversy整理了这段综合视频。
人们总是问我“如果我想成为一名Web开发人员,我应该学什么?” 我的回答是“只要使用 freeCodeCamp 作为您的核心课程,并随身携带其他学习资源。”
我很高兴地说,Brad的Traversy Media YouTube 频道是我最推荐的其他资源之一。