學習JavaScript的必備讀物

edithfang發表於2014-07-22



常常有人要我推薦學習 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 庫,例項和測驗和參考手冊。

獲取幫助

學習一門新語言最難的地方就是找到組織。當有問題的時候你總會希望有人可以為你解答:
  • JSMentors我和 Asen Bozhilov 一起建立了 JSMentors,希望可以提供一個安全又可以求助的地方給開發者討論和 JS 相關的問題。我們想要做一個對初學者友好的站點,所以我們找了一些有名的 JS 專家來一同回答問題,另外組隊也是很棒的想法。
  • StackOverflow我個人認為這個站點本身就是一個非常好的資源,開發者可以在上面釋出他們的問題,另外它還有專門的 JS 的板塊也有和 JS 相關的庫比如 jQuery 的板塊。
  • JavaScript Topic:匯聚 JS 優秀內容
  • CSS Topic:匯聚 CSS 優秀內容
  • Reddit 上的 JavaScript 板塊
總結

希望今天的資訊量沒有多到你無法承受,有這麼多學習 JS 的資源真是太棒了,我今天所說的只是冰山一角而已。記住,你需要選擇對你最好的方式來學習以節約你的時間。JavaScript 是一門很優秀的語言,只是你需要花一些時間搞清楚它的各種細微差別。謝天謝地,你有很多辦法能學到這門語言,也有地方供你提問。

本文由:伯樂線上 - kmokidd  翻譯自 Required JavaScript Reading
來自:伯樂線上
評論(0)

相關文章