早前在公司曾作過一些關於前端的技術分享,而往往跟你們談到深處時,你們會疑惑這些知識點從何而來。javascript
我會常常在內部去推薦本身讀過的好書,但願你們在技術層面上都能更上一個臺階。html
今天寫下這個帖子一方面是記錄本身在一年多時間裏快速轉變爲前端人所度過的好書,另外一方面也但願將這些好書分享給你們,前端
不但願前端人只是爲了完成業務而學習,須要有求索的心態和積極性。java
大概兩年前,我是一個純正的Javaer,不過在面臨公司產品轉型的路上,我開始接觸基於Web的產品開發以達到跨平臺的效果。面試
因而,慢慢走上了前端道路,帶着學習Java的習慣開始逐步探索Javascript。編程
這一路,從接觸語法到理解動態語言特性,從不瞭解javascript的this到理解執行做用域,從模擬Java繼承到理解原型繼承,後端
從一大堆全局變量到模塊化,從過程式編程到面向對象編程,從強耦合到組件化,從一大堆事件綁定到數據驅動,從手工壓縮到設計模式
藉助工具構建工程,經歷了不少前端人經歷的東西。由於前端太多東西並未標準化,導致入門雖低,但想比肩高手,仍是須要學習太多太多。數組
在分享書籍以前,我分享這些一路走過來的經歷,是但願能夠爲你們強化學習之路,不要一直遊離於表面。網絡
在前端界,我知道雖然Javascript並不能像Java那樣強大的去完成各類線程、IO、網絡等功能,但那不是由於Javascript語言自己的侷限,
而是不能像Java那樣強大的背景和社區爲Java提供各類標準化的東西。現在,Node來臨,若是前端同窗們想在Javascript上有一番做爲,
Node可提供大家無限的想象,能夠完成大家曾經以爲只有Java這類語言能完成的事情。
我本出身後端,對UI上的東西不敏感,所以我對CSS瞭解頗少,只能給你們提供一些Javascript方面的書籍,以打好Javascript能作一些的基礎。
另外,我不想推薦一些徹底對編程無概念的入門書籍,因此只推給一些有基礎且願意深刻研究的同窗。
接好,一大票書籍來了,先列上書目,關於爲什麼推薦此書將在以後詳細補充。
第一波:適合有基礎,想系統學習Javascript語言特性及原理的同窗
1.JavaScript高級程序設計(第3版)
2.JavaScript權威指南(第6版)
第二波:適合對Javascript有必定理解,想深刻學習語言特性和設計的同窗
3.JavaScript語言精粹(Javascript Good Parts)
4.Javascript設計模式(Javascript Design Pattern)
5.Javascript 模式(Javascript Patterns)
6.ECMAScript5.1(Javascript規範)
特別推薦:
湯姆大叔的博客 這幾乎是我走向深刻Javascript的啓蒙教程
The Surprisingly Elegant Javascript Type Model詳細描述了Javascript中的類型繼承關係,Object、Function、Array之間的相互關係
End of the Chain詳細描述了Javascript中prototype/__proto__的含義,Function、Object之間的相互關係
第三波:適合在前端單頁應用項目構建上深刻和優化的同窗
7.MVC的JavaScript Web富應用開發
8.單頁Web應用 JavaScript從前端到後端
第四波:適合對前端項目進行優化和改進的同窗,此波頗具實際意義
9.高性能網站建設指南
10.高性能網站建設進階指南
第五波:適合開始考慮在Node上有所施展的同窗
10.深刻淺出Node.js
11.Node.js權威指南
最後一波來個大集合,此類不爲書籍,而是各種基礎框架源碼,適合有意願創造本身前端類庫或框架的朋友。
1.Underscore:基礎類庫,封裝了對對象、數組、集合、函數的操做和一些實用函數;
2.jQuery:大名鼎鼎,基礎類庫,封裝了各種選擇器、DOM操做、事件、回調、延時執行、隊列操做、數據綁定、AJAX等;
特別感謝:Araon的源碼分析
3.Backbone:輕量型前端MVC框架,封裝了事件、模型、集合、視圖、控制器和路由管理等功能;
4.RequireJS:前端模塊化功臣,解決了模塊依賴,異步加載等;
固然,有各類關於Javascript的書籍是不足於寫出優秀的代碼和類庫的,在這裏推一些關於代碼編寫和設計模式的好書:
1.重構-改善既有代碼的設計
2.設計模式-可複用面向對象軟件的基礎
以上這些書籍都是我已讀或還在讀的書籍,推薦給你們,但願你們前端之路一路光明,逃離混沌的前端世界。
還有一點須要說明,若是深刻理解這些知識點,去面試一些所謂的前端開發崗位可能被拒,由於大量前端開發崗位還是傳統的業務型崗位,
須要運用CSS/HTML/Javascript去真正作一些項目,因此若是有空,能夠去翻翻關於CSS/HTML方面的書籍。
我將在前端之路絕不停歇的一路向前,也但願有更多的更好的前端工程師加入這個隊伍。