先說下,前端這個東西每個人都可以有適合自己的學習方法,這篇僅作參考,寫的有點亂,各位湊合看。
緣起
我是屬于誤打誤撞進了前端,之前一直往做游戲的方向去來著,搞過游戲網(wǎng)站,玩過游戲引擎,比如unity,unreal這種商業(yè)引擎,搗鼓了幾個游戲原型,不過自打研一進了實驗室,直接就被導師派去寫了js,導師給了我半個月時間讓我寫個基于百度地圖api的數(shù)據(jù)展示頁面,雖然這個時間還是相當寬裕的,不過之前沒怎么寫過js,也不會用地圖api,于是我就一邊啃著《Javascript權威指南》(犀牛書)一邊參考實驗室前人留下的“代碼”,總算是把功能都寫出來了。那個頁面算我的js入門作了,也是我前端學習路線的開始。
現(xiàn)在想來,雖然指派了去做前端,但是一直做下去并做好還是得靠興趣維持,當然前端是一個趣味性十足的技術領域,而且社區(qū)每天都很“熱鬧”。
項目,下一個項目
我個人認為前端的學習,初學階段你可以完全脫離開書本,以項目驅(qū)動。雖然我個人是從犀牛書開始啃的,不過如果你沒有充足的時間,或者覺得啃大部頭乏而無味的話,還是別像我這樣。當然了如果決定啃書最好是把書里的例子都跟著敲一遍的。我上研之前沒接觸過js,4月份還沒開學呢就被直接被導師甩了個百度地圖api的項目到臉上,接著就是各種ERP,地圖數(shù)據(jù)展示,雖然換著花樣來一點不重樣,不過基本上都是前端的活,SSH和android開發(fā)也打過醬油,整個實驗室就我一個人寫前端敢信?富客戶端SPA時代的后端就是一個restful接口,代碼量基本都在前端啊,寫的我一個人怎一個爽字了得…期間跟著導師感受了一把創(chuàng)業(yè),每天從7點搞到晚上10點,也算是經(jīng)歷了一段快速成長期。
掌握一門技術先掌握它的大體框架,想一個能實現(xiàn)的點子,做一個能跑就行的demo,再去完善它的細節(jié),等到demo完成了,對這門技術有了一個感性的認識,再去啃書,收獲會大很多。我從開始原生js寫到jquery,再到extjs,再到angularjs,從導師指定技術,到自己做技術選型,一個項目接著一個項目的練,就跟打怪升級似的。當然沒有項目就去自己創(chuàng)造項目,動手實現(xiàn)自己的想法是件有樂趣和成就感的事。
收集癖和知識管理
前端學習有個特點,很多東西都很零碎,分散,需要你自己去整理、歸納和總結(jié)。在微博、知乎上follow了眾多的大神,你不僅僅是為了聽八卦,大神們的只言片語有時候留下的是無盡的余味,很有可能一個不經(jīng)意提到的一個詞就成為你下一個學習的目標。收集這些信息,善用google,提問,思考。就像游戲里的收集要素,前端學習也是充滿搜集要素的一個“游戲”,只不過你需要一個知識管理工具來充當物品欄和倉庫,我所知道的大牛們無一不是知識管理工具的重度使用者。以前用的oneNote,那時候還沒綁定到云存儲,現(xiàn)在基本上用evernote,筆記已經(jīng)累計到1200+篇。書簽一直打算用delicious,因為它是基于tag管理的,但一直沒用起來。當然重點不在于這些工具,但是趁手的工具可以提高你的學習效率。最關鍵當然是隨時保持旺盛的學習欲望,你的目標是了解有關前端的一切(當然不是所有都要掌握,因為畢竟你的精力有限,而且現(xiàn)實的說這也不太可能)。
跟對神
這個可控性貌似不大…跟對老大這個就不多說了,一定程度要看造化。不過話說回來,多跟身邊的高手交流是王道,這個高手不一定要多高,但是一定要對技術有熱情。研一的時候熱情高漲,每天7點進實驗室門,然后發(fā)現(xiàn)有個家伙居然比我還早到。后來發(fā)現(xiàn)這家伙上午就走了,下午又來了,而且導師對此習以為常,原來這家伙晚上不睡覺通宵寫代碼,上午才跑回去睡。后來經(jīng)常和這位神討論問題,每次感覺經(jīng)驗值蹭蹭蹭的往上漲。然后實驗室還有一位神,被前面這位通宵神形容為“只能望其項背,一直在追趕,從來沒趕上”,兩位神的特點都是什么都了解一點,所以什么都能跟你討論得起來,我有段時間做了個讀書計劃,從c/c++到vc/mfc再到unix網(wǎng)絡編程,最后一路看到java核心技術和MSDN上的C#編程指南,和神們也能扯得很high了。
總之就是這兩位神把我拉進了坑,或者說從一個坑跳進另一坑,雖然兩位神都不是搞前端的,不過技術之間總有相通之處。
讀書
讀書,多讀書,讀好書。在劉未鵬的博客里看到過一個公式,你第一個月的工資等于之前買過(讀過)的技術書價格總和(這里說的技術書指那些經(jīng)典的公認的好書)。討論這個公式的正確性似乎沒什么意義,然而它的合理性是毋庸置疑的,那就是多讀經(jīng)典技術書。最極端的一個例子,google的徐宥在我的大學里面說他掃蕩了圖書館的整個TP312書架…對于前端的經(jīng)典書籍,后面列了一個我收集的前端書列(如果有遺漏的前端經(jīng)典好書,還請留言告訴我),有條件可以嘗試刷一遍這些書,我也是在找完整的時間去啃完它們。之前說的,前端知識點松散,收集零散的知識點,從博客里快速學習等,這些只是前端學習的一個方面,如果你要想深入理解一個知識體系,了解它的來龍去脈,對它建立系統(tǒng)認識,讀經(jīng)典書還是必不可少的。