這個問題我有發言權。
由於我就是照着知乎前人推薦的書一本本看過來的。
這是我這一年多點看的書。少了三四本書,給別人借走了。
(上面的書並無所有看完,有些昏昏欲睡的書可能須要我境界再高點才適合看。順便請無視那本亂入的Android入門)
所謂的和書一拍即合相見恨晚,其實就是在合適的階段遇到了合適的書。
因此我會按照時間順序來推薦那些對我影響很大的書,我會給出在那個階段的思考和這本書對個人啓發。
但願你能和我同樣在合適的階段趕上合適的書。
---------------------------------------------------------------
3.7 晚 修正了一大堆拼寫錯誤,讓語言得體了一點。
---------------------------------------------------------------
正文
1. JavaScript DOM 編程藝術
這本書做爲被你們推薦的最多的前端入門書籍是有道理的。
他能真正讓你們瞭解dom腳本編程,或是說前端編程技術背後的思路和原則。
對於初學者來講,這本書沒有任何門檻,循序漸進跟着書籍實例編寫代碼便可。
咱們會知曉如何對瀏覽器元素操做和掌控,會學會如何實現簡單的頁面效果。
這種簡單易得的成就感是一個編程語言入門時最難能難得的體驗。
閱讀建議:
這本書雖然簡單,可是能讓人快速對前端產生興趣和成就感。
不事後續學習jquery的時候可能會產生挫敗感。原生js dom操做的成就感會被jquery便捷的API所完全戰勝。因此必定要恰當的調整心態,轉換思惟方式,正確認識到jquery和原生js分別的優劣之處。
在熟練使用jquery後還能想起來翻看這本書,找到以前不曾發現的閃光點,就是入門成功了。
2. JavsScript高級程序設計(第三版)
不管什麼時候,這都是學習js最好的書。
若是說其餘的書都是在合適的階段會有不通常的體驗。
這本書就是不管什麼階段,都夠你感悟一番的。
當你看完了市場上js相關(不包括框架類庫的最佳實踐類)的全部書籍。你再回去看這本書,也會發現其實95%的內容早就寫在這本書裏了,只不過你當時等級不夠,根本沒有意識到。
這本書排版舒服,翻譯得體,內容豐富,語言流暢。涵蓋了js語法(面向對象,閉包做用域等),js使用(dom,bom,html5API),編程實踐(高階函數,編碼規範)等程序員使用javascript時會遇到的大部分問題。
(今天在上海面試了一天。大部分很順利,只是有幾個比較偏的問題沒回答好。晚上回去以後一翻高程三,果真在裏面都寫得明明白白的。不得不服。)
閱讀建議:
人們喜歡把他和犀牛書拿一塊兒推薦,不過就我看來,他們徹底不是一個可讀性上的。
一個是課本一個是字典。並且仍是佶屈聱牙的字典。
因此不管什麼時候我都會把高程三排在js推薦書籍的第一位。
3. 鋒利的jQuery
圖忘了拍了,就不補了。
這本書若是緊接着dom編程看,會如我我說的那樣瞬間摧毀你的小小的成就感。
由於這本工具書級別的書簡單暴力到不給你思考什麼「平穩退化」,「js動畫計時器」這些dom編程中說起的問題,就直接就甩出一大片簡單有效的jqueryAPI顛覆你的世界觀。
這本書是如此的易懂以致於看完以後瞬間就以爲本身能把web玩出一片花來了。
做爲工具書級別的書,或是說學習jqueryAPI的書,這是首選。
閱讀建議:
熟悉jquery是每一個前端必需要會的事。
只是不要被Jquery的便捷迷惑,而拋離原生js,把原生js貶得一文不值,不然後面會付出昂貴的代價。
4. 學習Javascript數據結構與算法
這本書相對是一本冷門書。
爲何我會推薦他,是由於他能解決每一個半路出家的js程序員都曾思考過的一些問題:
1. 咱們的數組Array這麼強大,要棧Stack,隊列Queue這些功能少,半半拉拉的東西幹什麼呢?
2. 咱們學的數據結構搞來搞去好像也就那些玩意,爲何被你們這麼推崇,還要分門別類討論呢?
因此這本書只是爲什麼告訴你上面這些問題的答案:
1. 棧和隊列原本就沒有Array功能強。沒有Stack和Queue類只是由於ES5不去實現它而已。做爲一種相互之間存在一種或多種特定關係的數據集合,其存在乎義是不該該被其功能強大與否來決定的。
2. 數據結構和編程語言無關。語言死了,他們會在下一門語言裏重生。哪怕計算機死了,他們都會在下一個概念體裏重生。
閱讀建議:
跟着書本把這裏面的結構所有敲一遍,快的話一天就能搞定。
今後你便再不怕害怕js相關的簡單數據結構問題。
可是,趕上高級的樹,圖等問題該跪仍是要跪。由於這本書有始無終,後面的高級點的數據結構介紹的不夠深。
適合常常反思「它從哪裏來,要到哪裏去?」的js程序員,或後悔之前數據結構沒好好學的前端同窗。
5. JavaScript設計模式與開發實踐
我認爲騰訊AlloyTeam的這本書對我幫助媲美高程三。
那時候我剛好換公司,從原來的開發方式切換成另外一種徹底不一樣的開發方式,讓我很不適應。
這本書及時的蹦出來,他拿實際的應用場景舉例,告訴你不一樣js項目裏如何共通設計模式,還極其詳細的介紹了函數的高級用法,能讓你對js高階函數的認知上升一個臺階。
難能難得的是他還拿java做爲靜態語言的類比。從語言統一高度來給你分析這些問題。
和上本介紹數據結構的書同樣,這本書有的放矢,能完美的解決對js設計模式有疑問的同窗的實際問題。
他比上本書更深入,更易讀,也更貼近實踐。
閱讀建議:
這是本適合反覆閱讀的書籍。
若是你的思路能根據應用場景自動切換到最適合的設計模式,說明你已吃透這本書了。
6. 高性能JavaScript
做爲Orelly惟一一本我確實承認的javascript相關的書。
他摒棄了Orelly系列全部我不喜歡的特色:
老外的聊天說教式閱讀體驗,樣例不夠豐富,排版單一,破事水等。
他的優勢以下:
1. 情景豐富,基本涉及全部js性能優化的場景。還會給出不一樣場景的實際測試數據,真實可信。咱們在閱讀這些場景實例的同時也豐富了本身js的使用經驗。
2. 給出了不少看似"旁門左道"的解決方案,而這些冷門的解決方案偏偏是有些人死活百度不到的真正能解決問題的最優解。
3. 在說問題的同時說原理,深刻淺出,遊刃有餘。因此這本書不只僅是一本介紹js性能相關的書,而是一本涉及瀏覽器原理,js解析原理,用戶體驗等知識的javascript最佳註解。
閱讀建議:
建議和高程三一塊兒看,能夠算是高程三閱讀的最佳伴侶。
高程三告訴你「他叫什麼,他什麼樣」,
這本書就告訴你「他爲何」,「他該怎樣」。
因此,當別人還在爲某些問題絞盡腦汁的時候,你已經從起點上幹翻他們了。
7. 你不知道的JavaScript(YOU DONT KNOW JAVASCRIPT)
大名鼎鼎的Github開源的書籍。 爲了他的名氣我也得買一本實體書來拜讀下。 這本是上卷,只涉及做用域和閉包,this和對象原型兩部分。 不過其深刻程度是其餘js書籍難以企及的。 能夠說,這已是大部分前端程序員對js語法能夠深刻了解的最底層了,再往下就直面編譯原理了。 閱讀建議: 用於提高本身的js語法的理解等級。 對於進入工做第二年的想深刻理解js語法的同窗來講特別有效。 ================================= 上面就是這一年多看的我認爲不錯的書了。 若是有基本徹底一致的同窗,咱們能夠交流下心得~~