【发布时间】:2016-07-24 06:49:36
【问题描述】:
在成为 IT 运营方面的多面手多年后,我踏上了 Web 服务(全栈)编码的道路。 Ruby、Python、C# 和 JavaScript 很有趣,Launch School 看起来有一个很好的方法和课程来学习全栈,从后端的 Ruby 开始。
C# 和 .net Core 呢?
不过,最近一位朋友让我对 C# 产生了兴趣,这显然是一门很好用的语言。上个月发布的 .net Core 使这更有吸引力。但是,从简单开始并首先学习编程并不是一个坏主意,不幸的是,C# 与 .net 密不可分。所有代码示例似乎都通篇使用 .net,这可能不利于初学者学习编程概念。
C# 的结构和严格的类型对我很有吸引力,但 Ruby 和其他动态语言的“简单性”也是如此。 Ruby 的 OOP 和该语言的固执己见也很有吸引力。实际上,每种语言似乎都有令人信服的理由。
关于 JavaScript
因此,持续的研究表明,JavaScript 有充分的理由作为一种伟大的第一语言,它将扩展到许多领域(Web 前端和后端、DevOps 等)并创建,正如 Jeffrey Snover 所说,'@ 987654321@'.
JavaScript 看起来也不错。它似乎比 C# 更简洁。但是,它的缺点是没有 C# 的严格类型,也没有 Ruby 的固执己见,无法帮助程序员编写更好的代码。太松了ES6 和 TypeScript 可以解决这个问题,最初我只想学习 TypeScript。但是,我是一个原教旨主义者,所以我觉得这不是正确的方法。
可能的路径
这使我或多或少地基于:
- 学习编码,使用 ES5(大量可用资源开始 使用 Eloquent JavaScript,添加 Speaking JavaScript、JavaScript:The Good Parts 等);
- 将 Smalltalk 添加到组合中,因为这听起来像是一个很棒的基线,而且从各方面来说,它都是一种漂亮、简单/直接的语言,专注于纯粹的 OOP;
- 学习 CSS 和 HTML、JSON、ReST;
- 在我熟悉 ES5 后学习 TypeScript、ES6,包括避免其中的许多陷阱;
- 根据需要学习 Node.js 和其他 JS 变体;
- 根据需要添加框架。
无论如何,JavaScript 对全栈“一切”网络服务都有意义。学习非 Microsoft 堆栈也很棒。
谢谢, 尼克
编辑:
我听过 podcast,其中 Kyle Simpson、Ashley Williams 等人正在谈论初学者使用 JavaScript 来学习编程概念。并且,他们称赞 ES5 中缺乏抽象和糖分,并将其与 ES6 中引入的抽象进行比较,其中一些使初学者难以理解语言的某些方面。
在 ES6 使初学者更难的背景下,他们似乎非常强烈地指向类,并且实现似乎与该语言奇怪地契合。但是,他们也提到了解构是多么棒,以及它如何使它更容易学习。这是一个有趣的讨论。
Ashley 还在 jsconf2015 上发表了演讲(上面链接的页面上的链接),她在使用 ES6 学习编程概念的背景下着眼于 ES6。
【问题讨论】:
-
太棒了。那么问题是什么?无论如何,这很有可能完全脱离主题。
-
Node.js 不是 JS 变体。 Node.js 是 JS 运行的环境。JS 的能力是用 ECMAScript 标准(ES)定义的。语言本身之外的一切都是关于 API 和框架的。
-
Smalltalk 是如何进入这个讨论的?你打算用它做什么,怎么用?
-
@JulienBernu 我在原始帖子中添加了更多内容,但主要问题是:“我应该学习 ES5 还是 ES6 编程?”
-
@t.niese 感谢您的更正。我知道 node.js 不是一个框架,但不清楚它与原生 JavaScript 之间的区别。
标签: javascript ecmascript-6 smalltalk ecmascript-5