前言
之前在博客上寫了一篇裝逼的博客《我是如何同時拿到阿里和騰訊offer的》,在文章上面本着學習和共享的精神分享了自己的簡歷,無意中暴露了不少個人隱私,結果這幾天不少認識的和不認識的朋友都加我QQ或微信,請叫我怎么學習Web。在只有一兩個人問的時候,我都是耐心回答的,但從長遠的角度來看,還是寫一篇博客來壓壓驚好一點。需要聲明的是,此文章中的觀點僅代表個人意見,不代表大眾的觀點,如您有異議,歡迎在評論中指出。
從哪里來
Web現在是一個非常熱門的話題,不管是計算機專業的還是非計算機方向的,都嚷嚷着要學Web。從我個人的角度來看,如果您真的想學Web,起碼保證您是理工方向的。這完全不是看不起文科生,只是大部分理工專業都會涉及計算機方向的課程,比如操作系統、編譯原理、計算機網絡、計算機組成原理等。這些課程看似沒有實際作用,但深刻影響着你的編程思想。換一個角度說,你知道越多越底層的東西,越有利於你以后的發展。
Web是一個自定向下的方向,一開始你就寫HTML、CSS和Javascript,看到了炫酷的效果,但是對於背后的原理一無所知。只有一直往下學,才會越精通。這和我們的課程學習不同,學校一開始就安排計算機組成原理和C++這類課程,給了你一個自底向上的學習過程,所以一開始總是枯燥乏味的,只有學到后面才能有樂趣,但是很多人沒等體驗到樂趣就已經放棄了。
所以,我希望所有想學習Web的同學,一開始就要想明白,自己是不是真的對Web感興趣。如果沒有興趣,這個自頂向下的過程會讓你越來越枯燥,直到放棄。
該從何開始
萬事開頭難,如何快速步入正軌可能比掌握一些高級技巧更加重要。
前端很大的一個特點是入門容易精通難,所謂容易也不是分分鍾就能學會的,我推薦按照下面的步驟去試試水。
好好把w3school上面有關HTML、CSS、JavaScript部分看兩到三遍
相信W3School是很多Web開發者的啟蒙老師,這個網站有一個好處就是標准,並且支持在線編輯,這樣能夠很好鞏固每一個知識點。當然,我還是非常推薦大家一開始就去看這個網站的英文版(不幸的是英文的網站http://www.w3schools.com/貌似要翻牆才能訪問,用Chrome的朋友推薦大家用紅杏這個翻牆插件http://honx.in/i/VKquOX8mTlxxAR1U。)看英文好處還是非常大的,因為等你技術成熟,想找到高級問題的解答的時候,通常都是英文問答才能滿足你的需求。
一開始就應該多看書
很多初學者有一個很不好的習慣就是為了實現某一個效果,網上查了一些demo代碼,用上了覺得很開心。這樣做很不好的一點是,即便你弄懂了demo的原理,你的知識還是支離破碎的,沒有系統性可言。所以,一開始多看書潛意思里面培養自己的編程思維很重要。在這里我想推薦一些我看過的覺得好的書。
《JavaScript DOM編程藝術》
很經典的一門入門書籍,對於初學JavaScript的同學來說還是很重要的。建議把書本上的代碼都老老實實敲一遍,特別是最后面那個靜態網站Demo。《JavaScript高級程序設計》
一本經典到不能再經典的書。這本書有700多頁,可是我我前前后后大概看了三遍。看這么多遍是有原因的,第一這本書的知識點廣而淺,看完第一遍你就可以知道JavaScript到底能干啥;第二,這本書耐讀,隨着你對於JavaScript理解的深入,對於這本書的理解也將深入,你會發現這本書第四、五、六、七章大大道出了JavaScript的精華,實在是寫得好;第三,這本書對於面試還是非常管用的,本人也是在面試前花了幾天把這本書再次過了一遍,效果很好。所以學前端的同學都買一本實體書,好好琢磨。《JavaScript權威指南》
這本書的贊譽很高,我也有這本書的實體書,是一個朋友送的,老實說這本書我並沒有看很多,但是仍然建議大家好好看看,因為凡是書名中加入了指南二字的,幾乎都為佳作。《CSS實戰手冊》
寫前端最痛苦的莫過於調CSS樣式了,本人對於CSS並沒有多少好感,只推薦不說話。
這遠遠不夠
老實說,即便你把我上面說的都學習了一遍,也未必能夠成為一個前端工程師,因為前端實在是太廣了,而且經驗非常重要。所以實戰比什么都重要。
說到實戰,很多人第一感覺就是,我實戰什么?讓我做一個項目,我一開始那個水平遠遠不夠;讓我寫一個個人主頁?我好像還沒有優秀的設計才華讓我覺得我做出來的主頁足夠驚艷。於是,資源成為了非常重要的一點。我們學校有一門課叫做Web2.0程序設計,我還有幸做了一個學期助教,感覺這門課的作業還是相當有用的,如果能好好把十多次的作業認真做一次,前端怎么也入門了。可惜的是,校內資源還是不要隨意公開好,以免生事。
如果我沒有好的資源,在這兒說這么多也是扯淡了。我本身在我們學校的一個Web俱樂部,俱樂部有很多優秀資源,當然也包括培訓作業什么的,如果你需要,可以在評論注明你的郵箱,我會提供一些資源。
項目項目項目
項目對於任何一個工程師來講都是非常重要的,書看再多也是理論,只是實戰操作才是王道。我剛開始做項目的時候,是跟着一個團隊寫寫簡單的頁面,盡量跟着別人學點東西。跟着師兄師姐學東西還是很有好處的,之前說過,Web是偏經驗編程的,別人做得多了,自然懂得也多。
當然,很大一個問題是,項目哪里來?這涉及到另外一個話題,就是怎么做一個不止會寫代碼的程序員。我個人認為程序員總歸不是一條長遠的路,等到年齡增長,思維跟不上年輕人,終究是需要轉型的,所以在轉型之前培養人際關系什么的尤為重要。於是,項目一開始都要自己主動去找,如果你不能很好把自己推銷出去,面試的時候也很難表現良好,所以,多接觸懂技術和搞技術的人還是很重要滴。等你技術成熟了,不需要自己去找項目,通常都是項目找上門。本人建議,在你找工作之前,怎么都得做上五六個項目。
不只是JavaScript
很多人誤以為前端就是寫寫CSS和JavaScript,很簡單的,其實不然,一個合格的前端工程師需要掌握的比這個多得多。在這里列舉一下本人簡歷上的技術棧,告訴大家前端有哪些值得掌握技術。當然這些技術絕對是皮毛。學到后面怎么挖掘自己需要的技術才是更重要的。
- JavaScript類庫:jQuery、Prototype
- JavaScript框架:BackBone、Vuejs、Angular.js、React.js
- CSS預編譯器:LessCss、Sass
- JavaScript模塊加載器:RequireJS、Browserify
- 項目構建工具:Grunt、Gulp
- 項目管理和協同工具的使用:SVN、Git
- 前端測試框架以及工具:Jasmine、Mocha
- 基本后端開發:NodeJS、Python
- web相關技術:MongoDB、CoffeeScript、SEO、Socket.io、Express、Tornado等
不要停止看書
上面推薦的幾本書很好,為什么不一口氣推薦完呢?理由很簡單,有些書適合初學者,有些書就只適合中高級開發者。我接下來推薦的幾本書入門者去看也看不懂,沒有足夠的編程積累,看起來也沒有那么深的體會。
《JavaScript語言精粹》
好書!如果你編寫的JavaScript足夠多,就會發現里面字字珠璣,耐人尋味。《基於MVC的JavaScript Web富應用開發》
Web前端架構級別的書,每一項技術都是目前的熱門,看上兩邊不為過!《JavaScript設計模式》
當你做富交互的應用的時候,就會知道這本書有多管用!《HTTP權威指南》
雖然是學前端,但是如果一個前端工程師只會前端那也不叫前端工程師了。深入理解HTTP協議對於Web性能優化非常重要,對於前后端交互也能有更好的體會。一本值得啃的書籍。
好書太多,等到了一定水平,自己發掘去吧~
總結
其實說了這么多,也暴露了Web前端的缺點,作為一個國內的新興職業和朝陽職業,不可能有系統級的教程,一切真心需要自己自己琢磨,我只能幫你到這兒了。如果您覺得對您有用,歡迎點個贊~
