Javascript 初学者程序员-是从ES5还是ES6开始

Javascript 初学者程序员-是从ES5还是ES6开始,javascript,ecmascript-6,smalltalk,ecmascript-5,Javascript,Ecmascript 6,Smalltalk,Ecmascript 5,在做了多年IT操作的多面手之后,我开始为web服务(全堆栈)编码。Ruby、Python、C#和JavaScript都很有趣,Launch School似乎有一个很好的学习完整堆栈的方法和课程,从后端的Ruby开始 那么C#和.net内核呢? 然而,一位朋友最近让我对C#感兴趣,这显然是一种很好的语言。上个月发布的.NETCore更吸引人。然而,从简单开始并首先学习编程并不是一个坏主意,不幸的是,C#与.net密不可分。所有的代码示例似乎都贯穿了.net,这可能会使初学者学习编程概念不太好 C#

在做了多年IT操作的多面手之后,我开始为web服务(全堆栈)编码。Ruby、Python、C#和JavaScript都很有趣,Launch School似乎有一个很好的学习完整堆栈的方法和课程,从后端的Ruby开始

那么C#和.net内核呢?

然而,一位朋友最近让我对C#感兴趣,这显然是一种很好的语言。上个月发布的.NETCore更吸引人。然而,从简单开始并首先学习编程并不是一个坏主意,不幸的是,C#与.net密不可分。所有的代码示例似乎都贯穿了.net,这可能会使初学者学习编程概念不太好

C#的结构和严格的类型对我很有吸引力,但Ruby和其他动态语言的“简单性”也是如此。Ruby的OOP和语言的观点性也很吸引人。事实上,每种语言似乎都有令人信服的理由

打开JavaScript

因此,持续的研究表明,JavaScript作为一种优秀的第一语言有着充分的理由,它将扩展到许多领域(web前端和后端、DevOps等)并创造,正如Jeffrey Snover所说的那样

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

可能路径

这让我找到了一条或多或少基于以下因素的路径:

  • 学习使用ES5编写代码(大量可用资源) 有口才的JavaScript,加上会说话的JavaScript,JavaScript:好的部分等)
  • 将Smalltalk添加到混合中,因为这听起来像是一个很好的基线,并且是一种漂亮、简单/直接的语言,具有纯面向对象的重点
  • 学习CSS和HTML、JSON、ReST
  • 一旦我熟悉了ES5,包括避免了它的许多陷阱,就可以学习打字脚本,ES6
  • 根据需要学习Node.js和其他js变体
  • 根据需要添加框架
  • 无论如何,JavaScript对于完整堆栈、“一切”web服务都是有意义的。学习非微软堆栈也很棒

    谢谢, 尼克

    编辑:

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

    在ES6使初学者更难学习的背景下,他们似乎非常强调课堂,而且这种实现似乎非常适合这种语言。但是,他们也提到了解构是多么可怕,以及它如何使学习变得更容易。这是一次有趣的讨论


    Ashley还在jsconf2015(链接到上面的页面上)上做了一次演讲,在演讲中,她从使用ES6学习编程概念的角度来看待ES6。

    当您精通JavaScript时,ES6很可能会得到完全支持。我会直接去ES6。然后,我将学习JavaScript框架,如


    ES6包含ES5的几乎所有功能,它们并不是完全不同的。有一个可用的解决方案。

    当您精通JavaScript时,ES6很可能会得到完全支持。我会直接去ES6。然后,我将学习JavaScript框架,如

    ES6包含ES5的几乎所有功能,它们并不是完全不同的。当您看到以下内容时,有一个可用的。

    ES5
    [{lb:'Email',val:'ab@kg.co.sa'}].map(函数(e){
    返回“+e.lb+”+“””
    })
    
    可以用ES6编写:

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

    ==>当您看到以下内容时,优雅和生产力将与ES6融为一体:

    ES5
    [{lb:'Email',val:'ab@kg.co.sa'}].map(函数(e){
    返回“+e.lb+”+“””
    })
    
    可以用ES6编写:

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


    ==>ES6的优雅和高效性Javascript是一种很棒的语言,但它也非常令人困惑,而且有很多不好的文章。与其他答案不同,我建议您先学习ES5,因为您提到的所有书籍都是用ES5编写的。您不想将自己与箭头语法和其他语法糖混淆。当你在学习ES5的过程中遇到一些困难时,你也会再次欣赏ES6,但我相信这是学习的必要部分。它还可以让您更好地了解为什么ES6中添加了这些新功能

    说到学习Javascript,我的意见是选择多种来源,如视频、在twitter上跟踪合适的人、收听播客、文章等。这里是一个很好的地方来指导您的旅程:

    你提到的书很好,但我想再加两本书。Javascript是权威指南,您不知道JS

    我读过雄辩的JS,权威指南和Javascript的好部分,但我觉得在读了“你不知道JS-由Kyle Simpson编写”之后,我真正开始掌握JS

    我强烈推荐他的视频课程“面向严肃程序员的高级Javascript”。这真的让我看到了javascript范式

    不要跳到框架上,因为你