英文原文:Required JavaScript Reading
常常有人要我推荐学习 JS 的书籍或者在线教程。看起来每个人都有很好的理由在 JS 领域有所行动。如果你对让人兴奋的工作机会很感兴趣的又想要玩一玩有意思的东西,那么 JS 一定是个很棒的语言。隨著 JS 的流行度增加,相关的书籍、博客和教程也随之大量增多,但是我不可能所有的资源都了解过,但是我看到了一些很不错的东西也想在这里分享给你。
书籍
请注意,在这里我只会推荐我已经看过的书籍,你肯定可以发现有无数的书和我推荐的一样好。
《Nicholas Zakas:JavaScript 高级程序设计》
这本书一直都是我推荐书单上的第一名,也是我总和任何 JS 开发者建议的总放在书架上的一本书。Nicholas Zakas 所写的这本书非常非常奇妙:它概括了 JS 这门语言主要的知识点。想要读点基本知识点?你可以在这本书里找到。想要了解 JS 的 OOP 思想?也可以在这本书里找到。想要了解文档对象模型(DOM)?这本书也可以给大家勾画一个大概。本书内容通俗易懂,从 JS 的基本知识到高级应用都有涉猎概括,因此我将它推荐给所有的 JS 开发者。
Stoyan Stefanov:JavaScript 设计模式
要了解现在最常见的 JS 设计模式,以及这些设计模式是如何恰当地管理和组织你的代码。你所选择的设计模式会成为你的应用的基石,当你在思考如何构建你的站点时,这些设计模式会扮演很重要的角色。Stoyan 是这世界上最棒的 JS 开发者之一,他在 Yahoo!和 Facebook 都工作过也曾参与了 YUI 的构建。Stoyan 很了解他在做的事情,而且他致力于普及将常见的设计模式。
Stoyan Stefanov:JavaScript 面向对象编程指南,英文版
JavaScript 面向对象,请尽情地用你的 prototype 来嘲笑我好了。因为 JS 不是传统的基于“类”的面向对象语言。如果你总是在思考原型集成(prototypal inheritance)和混入(mixin),那么你只会变得很 wonky。Stoyan 又走在了技术大潮的浪头上,他将这个问题划分成了小问题来解释。开始的时候他先是稳步解释了一些语言基础知识让你在实践中去学习,但是他又很快地投入到解释 OOP 是如何工作的,使用者要如实利用 JS 的语言优势来构建可重用的对象。
Nicholas Zakas:编写可维护的 JavaScript
我们都希望我们的程序可以飞速地运行,所以我们时不时会重构优化代码。从学校学习中汲取知识很酷但是我更倾向于从前人的经验中获取资源。这本书将会告诉你如何优化你的代码以提高性能。
David Herman:编写高质量的 JavaScript
在我第一次看到这本书的时候,我并没有 100% 肯定它就是我想要,我觉得它更像是把其他 JS 书籍中的内容进行整合然后编写出来的。但是我看到 Dojo 的作者 Alex Russell 和 Chrome Frame fame 都推荐了它,我还是买下了它,现在我很庆幸当时的举动。本书的作者是 Mozilla TC39 的代表,同时也是(无论是学术层面上还是工业界层面上的)编程语言领域的专家。这本书的优点之一就在于,它并没有在针对 JS 这门语言来阐述,它所提供的种种方法是希望编程人员能发挥语言的最大作用。本书中澄清了编程语言的每一部分是怎么工作的(比如约束、柯里化或者自动添加分号)。这本书一定适合希望他们对 JS 的理解能够更上一层楼的编程人员。
John Resig and Bear Bibeault: Secrets of the JavaScript Ninja
不论你对 jQuery 抱有什么态度,不可否认的是 John Resig(jQuery 之父)确实创造除了最受欢迎 JS 库,同时凸显了 JS 的作用增加了 JS 的灵活性。这本书花了 4 年时间完成,但我觉得等待 4 年一点都不过分。
JavaScript 的那些书
淘宝前端工程师 Limu 力荐
彩蛋
我知道大家手头比较紧,所以如果有免费的资源是最好的。我很幸运地找到了一个提供一些免费资源的站点。由 Revolunent 创办的 JSbooks 提供了一些质量不错的在线资源:
博客
许许多多的人都在博客上分享他们的故事、想法……我们很难辨认出到底要持续关注谁的博客。随着阅历的增加,我尝试着把关注的博客的数量降低,下面这些是我诚挚推荐,认为它们非常有用的:
DailyJS
名字已经说明了一切。这个站点提供了前后端的 JS 相关的新闻和教程。它还会定期整理 jQuery 的插件。
Nicholas Zakas
我并不是 Nicolas 的粉丝,但是他写的博客确实和他的书一样棒,他的博客中提到的 JavaScript 的高级应用我认为每一个开发者都要铭记在心。
David Walsh
David 努力成为一个很优秀的开发者,他参与了 MooTools 和 Dojo 框架的开发,现在在 Mozilla 工作,他的博文有极高的可用性。
Badass JavaScript
这也是一个集合报导和教程的站点。常常让我想到过去的 Ajaxian,我常在这里寻找各种有意思的库和新的技术。
JavaScript Weekly
这是我唯一会留在收件箱中的邮件订阅,每一周的推送都非常的有一席。说正经的,我不知道 Peter Cooper 怎么能找到这么多有意思的文章。不过要小心,它可是会伤害你的生产力的。
Addy Osmani
我认为 Addy 是最天才的开发者之一,在他的博客中可以看到从 jQuery promises 到 AMD 的许多知识,而他发表在编写模块化的 JS 中的内容非常棒。
Peter van der Zee
他是很年轻的开发者,但是 Peter 的 JS 知识非常丰富,我相信他会成为 Web 开发的中流砥柱。快去认识他吧。
Juriy Zaytsev AKA kangax
你可以开始订阅 Juriy 的博客,他是一个生活都离不开 ECMAScript 的人。
2ality
我从没有和 Axel Rauschmayer 博士接触过,但是发现这个站点的时候我有一种“我勒个去,这哥们碉堡了”的感觉。当你阅读他的文章的时候,你就会知道为什么我会发出这样的感慨了。那些文章都写的很有深度,就像接触到了 ECMAScript 的底层,非常非常的有意思。
Nettuts
是的是的我确实带着偏爱来推荐这个站点的,但是它真的非常非常棒。只要看一看这里的文章你一定会同意我说的。:)
课程
如果你不满足于看书和博客而是想多些一点代码,那有成千上万的课程(线上或线下)供你选择来提升自己的能力:
Nettuts Premium JavaScript Courses(在线)
在这里你不仅可以找到 JS 的基础课程,还能找到像 Backbone 这样的 JS 框架和 OOP 这类话题的在线资源。
The JavaScript Master Class(在线)
我上了由 Thomas Fuchs 和 Amy Hoy 授课的在线课程,个人认为它非常棒,特别是能直接和讲师沟通。
appendTo’s Free JavaScript Training(在线)
8 个免费的视频课程帮助你学习 JavaScript。
Bocoup Training(线上和线下)
Bocoup 有很棒的练习项目,他们提供了一下在线视频,但是他们的个人练习课堂才是精华所在。
Codecademy 的 JS 课程(英文)
Codecademy 是一个最容易上手学习如何用 JS 编程的方式之一。它是一种交互式在线学习平台,非常有趣,你也可以和小伙伴一起来学习。
JavaScript 交互式学习课程-初级(中文)
课程让您快速认识 JavaScript,熟悉基本语法、窗口交互方法和通过 DOM 进行网页元素的操作,学会如何编写 JS 代码,如何运用 JavaScript 去操作 HTML 元素和 CSS 样式,为 JavaScript 深入学习打下基础。
JavaScript 交互式学习课程-进阶(中文)
课程从如何插入 JS 代码开始,学习 JS 基础语法、语法、函数、方法等,让你掌握 JS 编程思路、知识的使用等,实现运用 JS 语言为网页增加动态效果,达到与用户交互的目的。
JavaScript 教程(中文)
本教程是 W3School JavaScript 教程的入门级版本。内容包括 JS 基础语法,JS HTML DOM,JS 对象,JS Window,JS 库,实例和测验和参考手册。
获取帮助
学习一门新语言最难的地方就是找到组织。当有问题的时候你总会希望有人可以为你解答:
总结
希望今天的信息量没有多到你无法承受,有这么多学习 JS 的资源真是太棒了,我今天所说的只是冰山一角而已。记住,你需要选择对你最好的方式来学习以节约你的时间。JavaScript 是一门很优秀的语言,只是你需要花一些时间搞清楚它的各种细微差别。谢天谢地,你有很多办法能学到这门语言,也有地方供你提问。