最近看過很多關于學習方法以及提高自己學習能力的文章,尤其是對于學習javascript的學習,自己一直也在摸索,也進過坑,看到一些大神的分享也有不少收獲,今天的話就把自己的、他人的或者看到文章的你的我還不知道的想法,整理如下,希望對我們都有所幫助(PS:更多的是收集的大牛的見解)。
正題開始,“前端怎么學”應該因人而異,別人的方法未必適合自己。接下來要說的方法大家還是根據個人情況適時的取舍:我把大部分時間放在學習js上了。因為這個js的學習曲線,先平后陡。項目實踐和練習啥的,我不說了,主要說下工作之外的時間利用問題。我是怎么學的呢,看書,分析源碼。(PS:個人這幾天統計了一下,前端書籍目前看了50多本吧,大部分都是js的。市面上的書基本,差不多都看過。這是大神的做過的事情,我們應該膜拜)
Q1:看書有啥好處?
好處應該是不言而喻的,書看多了,基礎會逐漸夯實起來。看多了,自己的判斷力,自然就上來了。看別人的文章,就能很快判斷出,對方每塊兒講得對不對,哪塊兒又是自己不清楚的,模棱兩可的。當然也為看源碼,分析源碼提供了基礎。
10本書讀2遍的好處,應該大于一本書讀20遍。10本書的交集,那就是基礎知識的核心,而并集那就是所有的知識。好書當然要多讀,反復讀。但是只讀一本是不行的。因為每本書的側重點都不一樣。從不同的側面,去理解一個知識點,是很有意義的。
所以特別佩服印度人,他跟你講英文,你一個詞語沒聽懂,他會蹦出n個同一意思的單詞,你聽懂一個,就ok了。看書也是這樣的,某一塊講得不透徹,不用擔心,其他書籍可以幫助你來了解。
Q2:書籍推薦
個人覺得不錯的,沒事可以翻翻的。書籍如下:
《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問題,解決思路和解決方案同等重要,很有啟發性。以上各書你都可以不買,至少買本此書吧。
Q3:怎么看
想必很多同學,都想看書,但是很難看下去。文字部分相對來說還能看看,一遇到代碼,頭皮就發麻了。此問題一開始時我也遇到的。
說一個學習理論。比如說學英語,有個開水理論。詞匯量必須達到6000才行,如果沒達到,英文水平不會上去的,這跟燒開水一樣,沒事燒燒,放著涼涼,從來沒燒到100度,那么此水是永遠不能喝的。一旦煮沸過,就可以隨時喝了。
20本書你看不下去,說明什么呢?任何一本書,你都沒看完過。熟悉的,永遠只是前三章。別笑,我原先也是這樣的。
那么現在的問題是,怎么把一本書看完呢?很簡單,敲。《基于MVC的JavaScript Web富應用開發》這本書我看時,就是這樣,終于有一天,我下定決心要把此書從頭到尾敲一遍。文字加代碼都敲,然后就一章一章得看完了。代碼敲一遍后,你會發現,沒之前看起來的那么難。
如果你屬于一看書就犯困那種同學。強烈建議你把《javascript面向對象編程指南》此書從頭到尾敲一遍。堅持看完一本書后,信心就上來了。先保證看完一本再說,看完3本后,基本應該能做到幾天就能看一本了。萬事開頭難,加油吧。
Q4:看書的層次問題
書看完后,要自己總結,要與其他書籍對比看。有同學同時對比著看《權威指南》和《高設》來的。隨便拿出個知識點,你都能閉著眼睛說得頭頭是道,說明水平夠了。
下一塊就是源碼的學習了。看框架源碼之前,想說一件事情:dom的api不懂,沒問題,你可以百度。
但是正則一定要先研究研究,不然大多數人去嘗試分析源碼時,遇到的挫折都在于此。
怎么去閱讀源碼呢?敲,照著敲。
有哪些代碼值得去敲呢?優秀框架或者庫的源碼都值得你去敲。但是拿jq來敲,來入門,那不行的。原因:太他么長了。八九千行呢!!
當然了,你也可以敲你喜歡的框架代碼,重要的是明白其實現原理,最好理解其為啥那么設計,如果對設計模式比較熟悉的話,會經常發現原來是這么回事。
照著敲只是分析源碼的入門,用途也是為了學習,最后能用在自己的項目中,那是才是正道。就算沒啥用,也是打發時間的好方式,比看電視劇強多了。我閑著無聊時,就背著敲underscore源碼。最后說句,如果你簡歷上能如期寫上那幾句話后,必須是大神。加油吧。
當然以上可能更適用于有幾年工作經驗的小伙伴
對于初學者應該怎么辦呢?
看書和分析源碼是重要的提高方式,但不適合新手。新手需要的是能快速的入門和入行,能快速的上手工作。一種快捷的學習方式就是看視頻。正如有的同學說得那樣,知道有哪些東西,怎么用就可以了。
看視頻是有好處的,首先它是一種被動學習方式。我最開始的入門也是看視頻來的,只需要看就行了。一遍沒懂,再放一遍,我基本上是1.5倍數去看的。
而讀書是一種主動方式,需要自己一頁一頁翻。需要自己主動的去理解。而很多東西,也許只是視頻老師一句話,就能突出的重點,需要我們自己去解讀。還有另一件事情是,比如發現自己某個知識點不太清楚,可以單獨去百度。比如this,文章很多的。這種學習方式也是快速掌握知識點的好辦法。
所有剛開始接觸這塊或者有意向轉行的小盆友,可以找一些好的培訓機構,去系統學習一下,入門還是比較重要的。
好了說了這么多,還是早些歇息吧。每個人的學習習慣、方式、態度都不一樣。先端正態度、找到自己的學習方法,進而養成堅持下去的習慣。最后說一句,你我共勉:只要你走在正確的道路上,不管、走得多慢,都是前進!
我也是在探索前端之旅的路上,有興趣的伙伴們可以進我Q群詳聊:142991222,期待跟大家一起交流溝通,更上一層樓。