- 原文地址:Modern JavaScript for Ancient Web Developers
- 原文做者:Gina Trapani
- 译文出自:掘金翻译计划
- 译者:sun
- 校对者:xilihuasi、 Reid
用 JavaScript 学习 JavaScript。图片来自 learnyounode。javascript
有这样一种守旧的后端 web 开发者,他们好久之前就掌握了诸如 Perl 、Python、PHP 或 Java Server Pages 一类的东西,甚至还掌握了 Rails 或者 Django。他们使用巨大的关系型数据库构建 JSON API 服务,呃甚至是 XML。php
他是个后端开发者, 所以对他而言,JavaScript 一直只是个能够添加一些前端花招,使网页上的东西变色的有趣小玩具。若是说 JavaScript 真的颇有用,那也不过是给表单添加验证,以防止错误的数据进入数据库。八年前 jQuery 让这我的十分震惊。JavaScript 自己依然是能够被容忍但从未被接纳的语言。前端
随后 JavaScript 及其现代框架侵蚀了后端、前端和他们之间的一切,对于 JavaScript 开发者而言,2017年正是从新成为一个全新 web 开发者的时刻。java
Hi.我是一个正在学习现代 JavaScript 的“老派” web 开发者。我才刚刚起步玩得也还算尽兴,固然也踩了一些坑。有一些现代 JavaScript 的概念我但愿我能在开始学习以前就融会贯通。node
在旧编程语言的惯性思惟模式之上学习一个新的生态系统,我在心态和指望方面得作下面一些改变。react
现代 JS 的特色就是朝气蓬勃和发展迅速,因此很容易就选择了过期的框架、模板引擎、构建工具、 教程或者已经不是最佳实践的技术。(若是真有一个被普遍接受的最佳实践的概念的话)android
这种状况下,就有必要向你身边的 JavaScript 工程师朋友伸手求助了,和他们聊一聊你的技术路线。我很荣幸在 Postlight 获得了工程师朋友(特别是 Jeremy Mack)的精湛指导,感谢他们容忍我无穷无尽的问题。ios
我要说的是,学习现代的 JavaScript 须要人为干预。事物还在不断发展变化,各类教程还没有成熟和定型,所谓最佳实践也未造成正式规范。若是你身边没有大牛,那么至少也得检查 Medium 上文章或教程的日期,或 GitHub 仓库的最近一次提交时间。若是时间超过了一年,基本上能够肯定已通过时。git
走相似这样的路线:当你在学习现代 JavaScript 时,你遇到的问题的解决方案还在渐渐获得解决,这正是一个好机会。事实上,极可能仅仅差一次 code review,你在使用这个包时就能够修复问题。github
当你在使用一种像 PHP 这样的古老的语言的时候,你能够 Google 一个提问或者问题,几乎百分之百能找到一个 5 年前的 Stack Overflow 回答来解决它,或者你能在(详尽的、大量评论的、无与伦比的)文档里找到整个描述。
现代 JavaScript 就并不是如此了。 我曾经徜徉在 GitHub issues 和源码的时候不止一次找到的都是一些过期的文档。剖析 GitHub 版本库是学习和使用各类包的一部分,并且对于我这样的“老派人”,差之毫厘的学习老是使人迷惑。
在 2017 年学习 JavaScript 还有另外一个不同的地方:建立程序花费的时间感受和写应用的时间同样多。须要以“正确的方式”去作的工具、插件、软件包和依赖以及编辑器配置和构建配置所需的绝对数量足以使你在启动项目以前望而却步。
不要所以止步不前。我不得不放手去作,从起步到正确配置,容许本身的不完美甚至一些业余,只为温馨地使用本身的工具。(我不会告诉你我曾用 nodemon 作代码检查)随后我会找到更好的方法而且在每一个新项目中归入进来。
这方面 JS 还有大量的工做要作。现代 JavaScript 领域依然是不断变化的,但我一个现代 JS 工程师亲友告诉我,这份来自 Jonathan Verrecchia 的教程是目前构建一个当代 JavaScript 栈的不二之选。对,就是如今。
不管学习什么语言都要经历写代码 - 舍弃 - 写更多代码这个过程。个人现代 JavaScript 学习经历已经成为一个个教程组成的阶梯,而后作一个小巧简单的项目,期间总结出现的疑问和困惑列出清单。而后和个人同事碰头以得到答案和解释,而后刷更多的教程,而后作一个稍微大一些的项目,更多的问题,再碰头,如此重复。
这是迄今为止我在这个过程当中经历过的一些研讨会和教程的不完整列表。
npm i -g how-to-npm
learnyounode——我打算专一于服务端 JavaScript,由于那有令我安逸的东西,那就是 Node.js。Learnyounode 是一个交互式教程,结构上相似 how-to-npm。
expressworks —— 和前面两个项目相似,Expressworks 是 Express.js 的介绍,一个 Node.js 的 web 框架。在 Postlight 公司 Express 没有获得普遍使用,但对于初学者,它值得学习去上手构建一个简单的 web 应用。
burger.resolve() — 图片来自 The Promise of a Burger Party.
我知道在这会陷入各类各样的麻烦,好比尝试使用 Jest 测试,使用 Botkit 让 Slack 机器人更有趣,使用 Serverless 真正打破函数式编程的价值。若是你不知道这些是什么意思,其实也不要紧。这是一个大世界,咱们都有属于本身的路要走。
最后这件最重要的事我必定要提起:不断去作就是学习的过程,作得很糟糕?那也是学习的过程。
这年头学习现代 JavaScript 感受就像是在不知因此然得作无用功。当你在想有这么多时间搬搬砖不是更好吗的时候,Google 的 Addy Osmani 有个不错的建议
我鼓励人们采用这种方法来跟上 JavaScript 生态系统:首先作,而后作对,而后才是作得更好. […]
掌握任何新技能的基本要求都须要时间,实践和技巧。若是不使用每日一库或者响应式学习,容易产生挫败感。学会正确使用 Babel 和 React 花费了我数周时间,学习 Isomorphic JS,WebPack 和其余全部相关的库花了更多的时间。 简简单单地开始而且从基础作起就好.
这里感谢 NodeSchool 和 Free Code Camp,帮助初学者学习 JavaScript 的两个神奇的网站.
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、React、前端、后端、产品、设计 等领域,想要查看更多优质译文请持续关注 掘金翻译计划。