劃重點鑑於時不時,有同窗私信問我:怎麼學前端的問題。這裏統一回復一下,以下次再遇到問我此問題同窗,就直接把本文連接地址發給你了。javascript
「前端怎麼學」應該因人而異,別人的方法未必適合本身。就說說個人學習方法吧:我把大部分時間放在學習js上了。由於這個js的學習曲線,先平後陡。項目實踐和練習啥的,我不說了,主要說下工做以外的時間利用問題。我是怎麼學的呢,看書,分析源碼。我的這幾天統計了一下,前端書籍目前看了50多本吧,大部分都是js的。市面上的書基本,差很少都看過。css
第一個問題:看書有啥好處?前端
好處應該是不言而明的,書看多了,基礎會逐漸夯實起來。看多了,本身的判斷力,天然就上來了。看別人的文章,就能很快判斷出,對方每塊兒講得對不對,哪塊兒又是本身不清楚的,模棱兩可的。固然也爲看源碼,分析源碼提供了基礎。java
10本書讀2遍的好處,應該大於一本書讀20遍。10本書的交集,那就是基礎知識的核心,而並集那就是全部的知識。好書固然要多讀,反覆讀。可是隻讀一本是不行的。由於每本書的側重點都不同。從不一樣的側面,去理解一個知識點,是頗有意義的。jquery
因此特別佩服印度人,他跟你講英文,你一個詞語沒聽懂,他會蹦出n個同一意思的單詞,你聽懂一個,就ok了。看書也是這樣的,某一塊講得不透徹,不用擔憂,其餘書籍能夠幫助你來了解。css3
第二個問題:書籍推薦正則表達式
我的以爲不錯的,沒事能夠翻翻的。書籍以下:編程
>《javascript設計模式》,張容銘寫的,可能不太適合零基礎的,是很是不錯的進階書籍。bootstrap
>《javascript面向對象編程指南》,風格輕鬆易懂,比較適合初學者,原型那塊兒講得透徹,12種繼承方式呢。設計模式
>《js權威指南》、《js高級程序設計》,這兩本書經典是經典,可是太厚,適合把其中任意一章都當成一本書來讀。洋洋灑灑,很難一口氣看完。比較適合當作參考書。
>《你不知道的javascript》狙擊js核心細節,閉包、原型、this講得都還清楚。目前《中冊》也出了,還在看。
>《js設計模式與開發實踐》js設計模式也是要學的,此書把js的設計模式講得很是清晰,一點不晦澀,看起來沒多少難度。
>《正則指引》,分析源碼時,若是正則表達式不懂,無法進行下去的。此書相對來講講得比較清晰。
>《基於MVC的JavaScript Web富應用開發》,看完後,基本能寫出本身的mvc框架了。是本好書。
>《javascript函數式編程》,js是一門函數式語言,此書是函數式編程一個入門,函數是一等公民那是很是重要的。
>《js忍者祕籍》,jq做者寫的,沒有傳說中的那麼難讀,話說就算你看完並理解全部知識點,也不會達到世界高手級別的。由於你尚未作到爲所欲爲。
>《javascript框架設計》,若是初看此書,會以爲此書有羅列代碼之嫌。在我看來,此書講究的是框架的全局觀。以上書籍是我認爲是成就高手之路上必須看的,也須要反覆看。
css相關的書籍,說實話我看得比較少,總共有六七本吧。有兩本必須推薦一下:
>《css權威指南》,css基礎知識點那是講得很是清楚的。什麼層疊優先級、line-height啥的。不是隨便一本書都敢叫「權威指南」的。
>《css揭祕》,此書我也是不斷的看,此書纔不屑於全面講css3各屬性呢。css規範文檔能講的,它只會講你最不在乎的。此書解決的47問題,解決思路和解決方案同等重要,頗有啓發性。以上各書你均可以不買,至少買本此書吧。
第三個問題:怎麼看書?
想必不少同窗,都想看書,可是很難看下去。文字部分相對來講還能看看,一遇到代碼,頭皮就發麻了。此問題一開始時我也遇到的。
說一個學習理論。好比說學英語,有個開水理論。詞彙量必須達到6000才行,若是沒達到,英文水平不會上去的,這跟燒開水同樣,沒事燒燒,放着涼涼,歷來沒燒到100度,那麼此水是永遠不能喝的。一旦煮沸過,就能夠隨時喝了。
20本書你看不下去,說明什麼呢?任何一本書,你都沒看完過。熟悉的,永遠只是前三章。別笑,我原先也是這樣的。
那麼如今的問題是,怎麼把一本書看完呢?很簡單,敲。《基於MVC的JavaScript Web富應用開發》這本書我看時,就是這樣,終於有一天,我下定決心要把此書從頭至尾敲一遍。文字加代碼都敲,而後就一章一章得看完了。代碼敲一遍後,你會發現,沒以前看起來的那麼難。
若是你屬於一看書就犯困那種同窗。強烈建議你把《javascript面向對象編程指南》此書從頭至尾敲一遍。堅持看完一本書後,信心就上來了。先保證看完一本再說,看完3本後,基本應該能作到幾天就能看一本了。萬事開頭難,加油吧。
第四個問題:看書的層次問題
書看完後,要本身總結,要與其餘書籍對比看。有同窗同時對比着看《權威指南》和《高設》來的。隨便拿出個知識點,你都能閉着眼睛說得頭頭是道,說明水平夠了。
下一塊就是源碼的學習了。看框架源碼以前,想說一件事情:dom的api不懂,沒問題,你能夠百度。
可是正則必定要先研究研究,否則大多數人去嘗試分析源碼時,遇到的挫折都在於此。
怎麼去閱讀源碼呢?敲,照着敲。
有哪些代碼值得去敲呢?優秀框架或者庫的源碼都值得你去敲。可是拿jq來敲,來入門,那不行的。緣由:太他麼長了。八九千行呢!!
我的以爲underscore.js庫是不錯的第一個選擇。緣由都是工具方法,敲完之後本身的水平應該略有小成吧。其實有一些api的實現,你要把它當成getElementById同樣,深深的印在腦海裏。好比extend方法,必須張口就來。敲完underscore庫後,能夠考慮去看看《javascript函數式編程》這本書了。
jq的源碼很差敲。那麼zepto的源碼比較少1800多行,敲一天應該敲完了。敲幾遍後,把全部不懂的地方,都百度清楚,而後就能夠寫本身的類jq的庫了。而後就能夠做爲一項技能寫進本身的簡歷裏。好比「建立過本身的jquery庫」。固然敲的過程,還能幫助本身對jq的api認識。
而後是backbone.js,由於此框架是以類jq和underscore爲基礎的mvc框架。代碼也沒多少行。敲吧。spine.js與backbone相似。能夠在敲其以前,先看看那本《基於MVC的JavaScript Web富應用開發》。但願你的簡歷能夠添加這麼一筆,「建立過本身的mvc框架」。
其餘的,我也敲過一些。包括jq.validate.js,包括一些插件。若是你願意的話,bootstrap你能夠去敲敲啊。源碼挺多的,能夠按插件逐個來敲。分析明白了,輪播、分頁、下拉框等等的插件那還不是分分鐘隨手就寫一個了。最起碼看看人家api接口是怎麼設計的也是極好的。話說我的在閱讀其css代碼中,也學到了很多東西。說到插件,有兩個必須提提,一個是表格插件,一個是樹。都敲完,簡歷裏能夠這麼寫上,「建立過本身的UI框架」。
固然了,你也能夠敲你喜歡的框架代碼,重要的是明白其實現原理,最好理解其爲啥那麼設計,若是對設計模式比較熟悉的話,會常常發現原來是這麼回事。
照着敲只是分析源碼的入門,用途也是爲了學習,最後能用在本身的項目中,那是纔是正道。就算沒啥用,也是打發時間的好方式,比看電視劇強多了。我閒着無聊時,就揹着敲underscore源碼。最後說句,若是你簡歷上能如期寫上那幾句話後,必須是大神。加油吧。
最後總結
寫本文的最初目的,正如文章開頭說的那樣,方便本身回覆你們的提問。我分享的任何一篇分享學習經驗的文章,基本都會引發共鳴,這確實是一個值得討論的話題,我纔會分享出來給你們,總之,但願每個人都能有技術上的提高