既然你找到这篇文章来,说明你是真心想学好JavaScript的。你没有想错,当今若是要开发现代网站或web应用(包括互联网创业),都要学会JavaScript。而面对泛滥的JavaScript在线学习资源,倒是很难找到一份高效而实用的方法去学习这个“web时代的语言”。javascript
有一点须要注意,几年前咱们须要知道一个真正的服务器端语言(好比PHP,Rails,Java,Python 或者 Perl)去开发可扩展,动态的,数据库驱动的web应用,而如今只用JavaScript就能够实现了。html
学习时长:6~8周java
学习前提:中学水平,无需编程经验node
在Reddit上建立了一个学习小组
January 2014, “Learn JavaScript” Study Group on Redditjquery
上面的课程大纲提供了一个结构化和富有启发性的学习线路,从初学者到有所建树,把JavaScript学对学透。git
不要一开始就埋头在成堆的JavaScript在线教程里 ,这是最糟糕的学习方法。或许在看过无数个教程后会有点成效,但这样不分层次结构地学习一个东西实在是十分低效,在实际用JavaScript创建网站或web应用时你仍是会频繁的卡住。总的来讲,这种学习方法会让人不知道如何将语言当作工具来使用——当作我的工具来用。程序员
另外,也许有人会建议从尊敬的JavaScript教父Douglas Crockford写的《JavaScript语言精粹》开始学习JavaScript。然而,虽然Crockford先生对JavaScript无所不知,被誉为JavaScript世界的爱因斯坦,但他的《JavaScript语言精粹》并不适合初学者学习。这本书没有通透、清晰、明了的阐述JavaScript的核心概念。但对于更高级的学习路线,我倒会建议你看看Crockford先生的视频。github
还有,不要只从Codecademy等网站学习JavaScript,由于即便知道怎么编写一大堆JavaScript代码小片断,仍是不能学会怎么创建一个web应用程序。即使如此,在后面我仍是会建议把Codecademy当作补充的学习资源。web
更新:Reddit用户d0gsbody
4月8号在Reddit上创建了一个学习小组。他和其余组员都很是积极和乐于助人。我建议你加入这个小组,他们会让你保持积极性且帮助你更好的学习JavaScript。毕竟独自折腾JavaScript仍是有点难度的。连接:Learning JS Properly – Study Group on Reddit正则表达式
请在如下两本书中选一本,第一本比较适合有编程经验的人,而另外一本则适合彻底没有编程经验的初学者。我我的推荐第一本书,由于做者对各个知识点都阐述得很是好且涵盖了一些高级JavaScript知识点。可是,要看懂这本书你至少要对web开发有必定的基本了解。因此,若是你有一点点编程经验或者web开发经验(不必定是JavaScript),那就买这本书吧。
若是你没有编程经验,能够买这本:
免费注册Stack Overflow,这是一个编程领域的问答论坛。在这里提问题获得的回答比Codecademy要好,哪怕你的问题很是基础,看起来很傻(记住,历来没有愚蠢的问题)。
完成整个课程大纲须要花上6~8周的时间,将学会完整的JavaScript语言(包括jQuery和一些HTML5)。若是你没有时间在6个星期里完成全部的课程(确实比较有挑战性),尽可能不要超过8个星期。花的时间越长,掌握和记忆各类知识点的难度就越大。
Introduction to JavaScript
部分。位操做
部分,在你的JavaScript生涯中通常不会用上这个。再次说明,记得要不时停下来把书本的代码敲到浏览器控制台里(或者JSFiddle)作各类测试,能够改变几个变量或者把代码结构修改一番。
如下三选一:
两本书会涉及更多的一些细节,但只要看完个人博文,你能够彻底放心地跳过这些细节。
持续地练习,这一点点的进步积累起来效果会很是惊人。你要看到这个策略的价值,相信它是可行的,全心投入进去。
**Codecademy会形成已掌握的错觉。** 使用Codecademy最大的问题是,它的提示和代码小片断会让人很容易就把答案作出来,形成一种已经掌握这个知识点的错觉。你可能一时看不出来,但这样作你的代码就不是独立完成的了。 但目前为止,Codecademy依然是学习编程的好帮手。特别是从一些基本的代码结构如if语句,for循环,函数和变量去指导你了解小项目和小应用的开发过程。
你也能够在《JavaScript权威指南》第19章了解更多的jQuery知识。
此时,你已经掌握了足够的知识去创建一个稳固的,可维护的web应用。在作完我为你设计的这个应用以前不要看后面的章节。若是你卡住了,去Stack Overflow提问而且把书上相关的内容从新看一遍直到彻底理解这些概念。
接下来开始创建一个JavaScript问答应用(还会用到HTML和CSS),功能以下:
// 这里只演示一个问题,你要把全部问题都添加进去 var allQuestions = [ { question: "Who is Prime Minister of the United Kingdom?", choices: [ "David Cameron", "Gordon Brown", "Winston Churchill", "Tony Blair"], correctAnswer: 0 } ];
或者阅读《JavaScript高级程序设计》第20,23章。
升级以前作的问答应用
本地存储
(local storage,HTML5浏览器存储)。用户名
回来”。或者阅读个人博文JavaScript面向对象必知必会
或者阅读《JavaScript高级程序设计》第6,16,22,24章,第6章只读“建立对象”(Object Creation)和“继承”(Inheritance)部分。注意:这部分是本课程中技术性强度最大的阅读,要根据自身的情况考虑要不要所有读完。你至少要知道原型模式(Prototype Pattern),工厂模式(Factory Pattern)和原型继承(Prototypal Inheritance),其它的不做要求。
继续升级你的问答应用:
在学完Backbone.js和Node.js后,你会用这两种最新的JavaScript框架重构问答应用的代码,使之变成复杂的单页面现代web应用。你还要把用户的认证信息和成绩保存在MongoDB数据库上。
祝你学习顺利,永不放弃!当你作不下去以为本身很蠢的时候(你会时不时这么想的),请记住,世界各地的其余初学者,甚至是有经验的程序员,也会不时产生这种想法的。
若是你是彻底的初学者,特别是过了青少年时期的人,开始写代码的时候也许很困难。年轻人无所畏惧,也没有什么负担,他们能够花大量的时间在喜欢的东西上。因此各类挑战对他们来讲也不过是短暂的障碍罢了。
但过了青少年期后你会但愿快速的见到成效。由于你没有这么多的时间去花上几个小时就为了搞清楚一些细节的东西。但这些东西你必须深刻去理解它,不要所以沮丧,坚持完成课程的任务,把bug都找出来,直到你彻底理解。当你到达胜利的彼岸时,你会知道这一切都是值得的,你会发现编程很是有趣并且在上面花的时间都会获得可观的回报。
一我的必须去感觉和领悟构建程序带来的强烈快感。当你一步步的掌握知识点,一点点的将程序搭建起来时,就会对本身产生激励与确定,带来十分美妙的知足感。
总有一天你会意识到以前忍受的全部困难都是值得的。由于你将要成为一名光荣的程序员,你也清楚做为JavaScript开发者,你的前途一片光明。就像在你以前成千上万的程序员同样,你战胜了最难的bug,你没有退步,你没有放手,你没有找任何借口让本身放弃。
当你学有所成的时候,放心的将你的成果分享给咱们吧,哪怕是个微不足道的,小到显微镜都看不到的小项目。