初级程序员——是从 ES5 还是 ES6 入手

Beginner Programmer - Whether to start with ES5 or ES6

在成为 IT 运营通才多年后,我正在踏上 Web 服务(全栈)编码的道路。 Ruby、Python、C# 和 JavaScript 很有趣,Launch School 看起来有很好的学习全栈的方法和课程,从后端的 Ruby 开始.

C# 和 .net Core 呢?

但是,一位朋友最近让我对 C# 产生了兴趣,这显然是一种非常适合使用的语言。上个月发布的 .net Core 使它更具吸引力。但是,从简单开始并首先学习编程并不是一个坏主意,不幸的是,C# 与 .net 密不可分。所有的代码示例似乎都使用 .net,也许这对初学者来说不太适合学习编程概念。

C# 的结构和严格类型对我很有吸引力,Ruby 和其他动态语言的 'simplicity' 也很吸引我。 Ruby 的 OOP 和语言的自以为是也很有吸引力。实际上,每种语言似乎都有令人信服的理由。

继续 JavaScript

因此,持续的研究表明 JavaScript 有充分的理由作为一种伟大的第一语言,它将扩展到许多领域(Web 前端和后端、DevOps 等)并创造,如 Jeffrey Snover 表示,'a virtuous cycle'。

JavaScript 看起来也不错。它似乎没有 C# 冗长。但是,它的缺点是没有 C# 的严格类型,也没有 Ruby 的自以为是,无法帮助程序员编写更好的代码。太松了ES6 和 TypeScript 解决了这个问题,最初我只想学习 TypeScript。但是,我是一个原教旨主义者,所以我觉得这不是正确的方法。

可能的路径

这导致我或多或少基于以下路径:

  1. 学习编码,使用 ES5(大量可用资源开始 with Eloquent JavaScript, 添加 Speaking JavaScript, JavaScript:The Good Parts, etc);
  2. 将 Smalltalk 添加到组合中,因为这听起来像是一个很好的基准,而且从各方面来看,它是一种漂亮的 simple/direct 语言,具有纯粹的 OOP 重点;
  3. 学习CSS和HTML、JSON、ReST;
  4. 一旦我对 ES5 感到满意,包括避免了它的许多陷阱,就学习 TypeScript、ES6;
  5. 根据需要学习 Node.js 和其他 JS 变体;
  6. 根据需要添加框架。

无论如何,JavaScript 对于全栈 'everything' 网络服务来说是有意义的。也很高兴学习非 Microsoft 堆栈。

谢谢, 尼克

编辑:

我听过 podcast,其中 Kyle Simpson、Ashley Williams 等人在谈论初学者使用 JavaScript 学习编程概念。并且,他们称赞 ES5 中缺乏抽象和糖分,并将其与 ES6 中引入的抽象进行比较,其中一些抽象对初学者来说模糊了语言的某些方面。

在 ES6 让初学者更难的情况下,他们似乎非常强烈地指出 类 并且该实现似乎不适合该语言。但是,他们还提到解构是多么的棒,以及这如何让它更容易学习。这是一个有趣的讨论。

Ashley 还在 jsconf2015 上发表了演讲(link 在页面 linked 到上面)中,她在使用 ES6 学习编程概念的背景下看待 ES6。

在你精通JavaScript的时候,ES6很可能会得到全面支持。我会直接去 ES6。然后,我会学习 JavaScript 框架,比如 Angular 2.

ES6几乎包含了ES5的所有特性,它们并没有完全不同。有 very good ES6 description 个可用。

当你看到:

ES5

[{lb:'Email',val:'ab@kg.co.sa'}].map(function(e){
      return '<div><label>'+e.lb+'</label>'+'<input value="'+e.val+'" />'+'</div>'
             
})

可以写成ES6:

[{lb:'Email',val:'ab@kg.co.sa'}].map(({lb,val})=>`<div><label>${lb}</label> <input value="${val}" /></div>`)

你自己做决定。

==> ES6.

的优雅和生产力

Javascript 是一门很棒的语言,但它也非常令人困惑,并且那里有很多糟糕的文章。与其他答案不同,我建议您先学习ES5,因为您提到的所有书籍都是用ES5编写的。您不想将自己与箭头语法和其他语法糖混淆。一旦你在 ES5 上受了一点苦,你也会更加欣赏 ES6,但我相信这是学习的必要部分。它还会让您更好地了解为什么将这些新功能添加到 ES6 中。

关于学习 Javascript,我的意见是选择多种来源,例如视频、在 Twitter 上关注合适的人、收听播客、文章等。这里是指导您的好地方你的旅程:http://jstherightway.org/

你提到的书都很棒,但我还要再添加两本书。 Javascript 权威指南,你不懂 JS。

我已经阅读了 Eloquent JS,权威指南和 Javascript 好的部分,但是我觉得在阅读 "You don't know JS - by Kyle Simpson" https://github.com/getify/You-Dont-Know-JS 之后我才真正开始掌握 JS

我强烈推荐他的视频课程"Advanced Javascript for serious Programmers"。它真的让我对 javascript 范式大开眼界。

不要跳到框架上,因为你会在配置上浪费很多时间,而不是学习实际的 javascript。