怎样准确进修JavaScript

既然你找到这篇文章来,申明你是至心想学好JavaScript的。你没有想错,现今假如要开辟当代网站或web运用(包含互联网创业),都要学会JavaScript。而面临众多的JavaScript在线进修资本,倒是很难找到一份高效而有用的要领去进修这个“web时期的言语”。

有一点须要注重,几年前我们须要晓得一个真正的服务器端言语(比方PHP,Rails,Java,Python 或许 Perl)去开辟可扩大,动态的,数据库驱动的web运用,而如今只用JavaScript就可以够完成了。

进修时长:6~8周

进修条件:中学程度,无需编程履历

在Reddit上建立了一个进修小组
January 2014, “Learn JavaScript” Study Group on Reddit

目次

上面的课程纲要供应了一个构造化和富有启发性的进修线路,从初学者到有所竖立,把JavaScript学对学透。

不要如许进修JavaScript

不要一最先就专一在成堆的JavaScript在线教程里 ,这是最蹩脚的进修要领。或许在看过无数个教程后会有点结果,但如许不分条理构造地进修一个东西实在是异常低效,在现实用JavaScript竖立网站或web运用时你照样会频仍的卡住。总的来讲,这类进修要领会让人不晓得如何将言语当作东西来运用——当作个人东西来用。

别的,或许有人会发起从尊重的JavaScript教父Douglas Crockford写的《JavaScript言语精炼》最先进修JavaScript。然则,虽然Crockford教师对JavaScript无所不知,被誉为JavaScript天下的爱因斯坦,但他的《JavaScript言语精炼》并不合适初学者进修。这本书没有通透、清晰、清晰明了的论述JavaScript的中心观点。但关于更高等的进修线路,我倒会发起你看看Crockford教师的视频。

另有,不要只从Codecademy等网站进修JavaScript,由于纵然晓得怎样编写一大堆JavaScript代码小片断,照样不能学会怎样竖立一个web运用顺序。即便如此,在后面我照样会发起把Codecademy当作补充的进修资本。

本课程资本

更新:Reddit用户d0gsbody4月8号在Reddit上竖立了一个进修小组。他和其他组员都异常主动和乐于助人。我发起你到场这个小组,他们会让你对峙主动性且协助你更好的进修JavaScript。毕竟单独折腾JavaScript照样有点难度的。链接:Learning JS Properly – Study Group on Reddit

JavaSctipt进修线路

完成悉数课程纲要须要花上6~8周的时刻,将学会完全的JavaScript言语(包含jQuery和一些HTML5)。假如你没有时刻在6个礼拜里完成一切的课程(确切比较有应战性),只管不要凌驾8个礼拜。花的时刻越长,掌握和影象种种学问点的难度就越大。

1~2周(简介,数据类型,表达式和操纵符)

  1. 假如你还不是很相识HTML和CSS,完成Codecademy上的web基本使命。
  2. 浏览《JavaScript威望指南》或许《JavaScript高等顺序设想》的前言和第1~2章。
  3. 异常主要:在书中碰到的每一个样例代码都要着手敲出来而且在火狐或Chrome浏览器掌握台中跑起来、只管践踏它(做种种实验)。也能够用jsfiddle,但不要用Safari浏览器。我发起用火狐搭配Firebug插件去测试和调试代码。浏览器掌握台就是能够让你编写和运转JavaScript代码的处所。
  4. 完成Codecademy JavaScript Track上的Introduction to JavaScript部份。
  5. 浏览《JavaScript威望指南》第3~4章。或许浏览《JavaScript高等顺序设想》第3~4章。你能够跳过位操纵部份,在你的JavaScript生涯中平常不会用上这个。

再次申明,记得要不时停下来把书籍的代码敲到浏览器掌握台里(或许JSFiddle)做种种测试,能够转变几个变量或许把代码构造修正一番。

  1. 浏览《JavaScript威望指南》第5章。至于《JavaScript高等顺序设想》则临时没有浏览使命,由于前面已把相干学问掩盖了。
  2. 完成Codecademy JavaScript Track上的2~5部份。

3~4周(对象,数组,函数,DOM,jQuery)

  1. 以下三选一:

    • 浏览我的博文JavaScript 对象详解.
    • 浏览《JavaScript威望指南》第6章。
    • 浏览《JavaScript高等顺序设想》第6章。注重:只须要看“明白对象”(Understanding Objects)部份。

两本书会触及更多的一些细节,但只需看完我的博文,你能够完全宁神肠跳过这些细节。

  1. 浏览《JavaScript威望指南》第7~8章或许《JavaScript高等顺序设想》第5和7章。
  2. 此时,你应当花大批时刻在浏览器掌握台上写代码,测试if-else语句,for轮回,数组,函数,对象等等。更主要的是,你要磨炼和掌握自力写代码,不必借助Codecademy。在Codecademy上做题时,每一个使命对你来讲应当都很简朴,不须要点协助和提醒。假如你还卡在Codecademy上,继承回到浏览器上演习,这是最好的进修要领。就像詹姆斯年轻时在邻人的篮球场上练球,比尔盖茨在地下室里进修编程。

延续地演习,这一点点的提高积聚起来结果会异常惊人。你要看到这个战略的代价,置信它是可行的,全心投入进去。

**Codecademy会形成已掌握的错觉。**

运用Codecademy最大的题目是,它的提醒和代码小片断会让人很轻易就把答案做出来,形成一种已掌握这个学问点的错觉。你能够一时看不出来,但如许做你的代码就不是自力完成的了。

但目前为止,Codecademy依然是进修编程的好帮手。特别是从一些基本的代码构造如if语句,for轮回,函数和变量去指点你相识小项目和小运用的开辟历程。
  1. 回到Codecademy完成JavaScript线路。做完6~8部份(数据构造做到Object 2)。
  2. 完成Codecademy上Projects线路的5个基本小项目(Basic Projects)。做完今后,你已不再须要Codecademy了。这是一件功德,由于本身做的越多,学得就越快,就可以更好预备最先自力编程。
  3. 浏览《JavaScript威望指南》第13,15,16和19章。或许浏览《JavaScript高等顺序设想》第8,9,10,11,13和14章。这本书没有触及到jQuery,而Codecademy上的jQuery学问也掩盖得不够。能够看看jQuery的官方教程,免费的:http://try.jquery.com/

你也能够在《JavaScript威望指南》第19章相识更多的jQuery学问。

  1. 完成悉数的jQuery教程http://try.jquery.com/

JavaScript最终编辑器:WebStorm

  • 在你完成第一个项目之前,假如盘算今后做JavaScript开辟者或许常常用到JavaScript,最好如今就去下载WebStorm的试用版。这里能够进修怎样运用WebStorm(特地为这个课程写的)。毋庸置疑,WebStorm是JavaScript编程最好的编辑器(或IDE)。30天试用后要付$49.00,但作为JavaScript开辟者,这应当是除了买书之外最明智的投资了。
  • 确保在WebStorm中启用JSHint。JSHint是一个搜检JavaScript代码毛病和潜伏题目的东西,强迫你的团队根据范例写代码。用WebStorm最爽的处所是JSHint会自动在毛病的代码下显现红线,就像文字处理顺序中的拼写搜检。JSHint会显现一切的代码毛病(包含HTML),促使你养成优越的习气,成为更好的JavaScript顺序员。这很主要,当你真正意想到WebStrom和JSHint对你的庞大协助时,你会返来谢谢我的。
  • 另外,WebStorm是一个天下级,专业人员运用的IDE,用来编写专业的JavaScript web运用,所以你今后会常常用到它。它还连系了Node.js,Git和别的JavaScript框架,所以纵然你成为了明星级的JavaScript开辟者,你照样会用到它的。除非今后涌现了更多的JavaScript IDE。
  • 平正起见,我在这里提一下Sublime Text 2,这是仅次于WebStorm的JavaScript编辑器。它的功用不及WebStorm雄厚和完全(纵然增加了一堆插件)。做小修正的时刻我会用到Sublime Text 2,它支撑许多言语,包含JavaScript,但我不会用它来构建完全的JavaScript Web运用。

第一个项目-动态问答运用

此时,你已掌握了充足的学问去竖立一个稳定的,可保护的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
       }
   ];
  • 当用户点击“Next”时,运用document.getElementById或jQuery动态的增加下一个题目,而且移去当前题目。在这个版本里“Next”是唯一的导航按钮。
  • 你能够在本文下方批评乞助,最好是去Stack Overflow发问,在那里会有及时而正确的回复。

5~6周(正则表达式,Window对象,事宜,jQuery)

  1. 浏览《JavaScript威望指南》第10,14,17,20章。

或许浏览《JavaScript高等顺序设想》第20,23章。

  1. 记得要把样例代码敲到浏览器掌握台上,只管践踏它,做种种测试,直到完全明白它是怎样事情,它能干些什么。
  2. 此时,你用起JavaScript来应当很顺手,有点像武林高手要出山了。但你还不能成为高手,你要把新学到的学问重复运用,不断的进修和提拔。
  3. 晋级之前做的问答运用

    • 增加客户端数据考证:保证用户回复了当前题目才进入下个题目。
    • 增加“Back”按钮,许可用户返回修正答案。最多能够返回到第一个题目。注重关于用户回复过的题目,挑选按钮要显现被选中。如许用户就无需从新回复已答过的题目。
    • 用jQuery增加动画(淡出当前题目,淡入下个题目)
    • 在IE8和IE9下测试,修正bug,这里应当会有得你忙了。 ;D
    • 把题目导出JSON文件
    • 增加用户认证,许可用户上岸,把用户认证信息保存在当地存储(local storage,HTML5浏览器存储)。
    • 运用cookies记着用户,当用户再次上岸时显现“迎接用户名返来”。

7周,可延长到8周(类,继承,HTML5)

  1. 浏览《JavaScript威望指南》第9,18,21,22章。

或许浏览我的博文JavaScript面向对象必知必会

或许浏览《JavaScript高等顺序设想》第6,16,22,24章,第6章只读“建立对象”(Object Creation)和“继承”(Inheritance)部份。注重:这部份是本课程中技术性强度最大的浏览,要根据本身的状态斟酌要不要悉数读完。你最少要晓得原型形式(Prototype Pattern),工场形式(Factory Pattern)和原型继承(Prototypal Inheritance),别的的不作请求。
  1. 继承晋级你的问答运用:

    • 页面规划运用Twitter Bootstrap,把问答的元素弄得看起来专业一些。而作为分外嘉奖,用Twitter Bootstrap的标签控件(译者注:原文地点失效,已改)显现题目,每一个标签显现一个题目。
    • 进修Handlebars.js,将Handlebars.js模板用在问答运用上。你的JavaScript代码中不该当再涌现HTML代码了。我们的问答运用如今愈来愈高等啦。
    • 纪录列入问答的用户结果,展现用户在问答运用中与其他用户的排名比较。
  2. 在学完Backbone.js和Node.js后,你会用这两种最新的JavaScript框架重构问答运用的代码,使之变成庞杂的单页面当代web运用。你还要把用户的认证信息和结果保存在MongoDB数据库上。

  3. 接下来:构想一个项目,一气呵成敏捷的去开辟。卡住的时刻参考《JavaScript威望指南》或许《JavaScript高等顺序设想》。固然,还要成为Stack Overflow的活泼用户,多问题目,也要只管回复别的人的发问。

继承提拔

  1. 通晓backbone.js
  2. 中高等JavaScript进阶
  3. 不侧漏通晓Node.js

一些勉励的话

祝你进修顺遂,永不摒弃!当你做不下去以为本身很蠢的时刻(你会时不时这么想的),请记着,天下各地的其他初学者,以至是有履历的顺序员,也会不时发生这类主意的。

假如你是完全的初学者,特别是过了青少年时期的人,最先写代码的时刻或许很难题。年轻人临危不惧,也没有什么累赘,他们能够花大批的时刻在喜好的东西上。所以种种应战对他们来讲也不过是短暂的停滞罢了。

但过了青少年期后你会愿望疾速的见到结果。由于你没有这么多的时刻去花上几个小时就为了搞清晰一些细节的东西。但这些东西你必需深切去明白它,不要因而懊丧,对峙完成课程的使命,把bug都找出来,直到你完全明白。当你抵达成功的彼岸时,你会晓得这一切都是值得的,你会发明编程异常风趣而且在上面花的时刻都邑获得可观的报答。

一个人必需去感觉和意会构建顺序带来的猛烈快感。当你一步步的掌握学问点,一点点的将顺序搭建起来时,就会对本身发生鼓励与一定,带来异常美好的满足感。

总有一天你会意想到之前忍耐的一切难题都是值得的。由于你将要成为一位荣耀的顺序员,你也清晰作为JavaScript开辟者,你的前程一片灼烁。就像在你之前不计其数的顺序员一样,你打败了最难的bug,你没有退步,你没有松手,你没有找任何借口让本身摒弃。

当你学有所成的时刻,宁神的将你的效果分享给我们吧,哪怕是个眇乎小哉的,小到显微镜都看不到的小项目。

英文原文
via Jaward华仔

    原文作者:江小湖Laker
    原文地址: https://segmentfault.com/a/1190000002429854
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞