前端工程師學習路線 --書籍

前言

  前端工程師在中國興起也就5年左右,之前公司裏沒有專門前端工程師的這個職位,不少前端方面的任務都是由全棧工程師來完成,有的基礎一點的後臺或者設計的幫助分擔一些。可是隨着互聯網的快速發展,特別是所謂的Web2.0的發展,前端業務變得複雜起來,須要有專業的前端工程師來知足用戶多樣化的需求。javascript

  然而,高校的計算機教育並無跟上互聯網快速發展步伐,如今高等學校裏沒有的前端課程,對於須要打基礎的前端同窗來講學習起來比較困難。 學校裏沒有前端的課程,那如何學習JavaScript,又如何使本身成爲一個合格的前端工程師呢? 若是入職了,能夠在項目中學習和跟着有經驗的同事學習,而對於尚未入職的同窗,書中就有着相對完整的知識體系,每讀一本好書都會帶來一次全面的提升。但若是深一腳淺一腳的學習,寫出代碼的質量會良莠不齊。初學者的首要任務是成爲靠譜的熟練開發者,可以穩定的輸出有必定質量的代碼,這樣才能讓人放心的把任務交給你。不過前端原本就是一門雜而多的領域,剛進入前端,可能難度不大,可是要進一步系統深刻放入學習,思路就不會那麼清晰。前端書籍又難以正確挑選,很容易就會迷茫。廢話很少說,入正題。介紹一下前端學習的一些書籍(後面附有前端海量資源,點擊訪問)css

學習路線

大部分技術,熟讀下列四類書籍,就是一個很好的學習提高html

  • 入門,用淺顯的語言和方式講述正確的道理和方法
  • 全面,鉅細無遺地探討每一個細節,遇到疑難問題時每每能夠在這裏獲得理論解答
  • 實踐,結合實際中常常遇到的情景環境,來描述如何設計和解決問題
  • 深刻,講解一些文化,思路,甚至於哲學上的東西,真正作到深刻一種語言去編程,如unix編程藝術,程序員修煉之道等等

接下來介紹的這些書籍,無法說這是前端學習最優路線,但真看進去了得到一個IT民工從業資格是沒啥問題的。(HTML和Web標準這裏就不介紹書籍了,這個書籍的話也沒有什麼表明性的。HTML知識很少,主要就是要領悟Web語義化的精髓,結構決定上層建築。Web標註你們去W3C中國官網去查找,按照標準來,寫多了,天然就理解標準了,背下來沒用。) 前端

書籍推薦(CSS系列)

推薦書籍:

  css那些事兒,精通css(高級Web標準解決方案)。java

  理由:一、css那些事兒,他是一本介紹css基礎類的書,是入門的經典讀物。系統的介紹了css的選擇符,僞類,工做環境,盒模型,兩列,三列自適應佈局。文字樣式,圖片處理,列表,表單,還有選項卡,相冊,導航,新聞列表等其它大部分的實踐。二、精通css,這書已經出到第二版了,相比初版,第二版的大部分目錄結構保持不變,內容變得更豐滿了。此書從一另外一個視角介紹了css的博大精深。我通讀了三遍,以爲做者心思細膩,真的吧這個職業作的很標準。 

書籍推薦(JS系列)

第一批次

入門級,也適合想掌握一些前端技能的非前端工程師 <JavaScript Dom編程藝術>jquery

第二批次

成爲一名合格的前端工程師 <JavaScript高級程序設計>(或<JavaScript權威指南>) <精通JavaScript>程序員

第三批次

更優秀的代碼,更優良的設計 <JavaScript語言精粹> <JavaScript設計模式>正則表達式

第四批次

  從語言細節到複雜工程實踐,想開發靠譜的各種底層代碼,應該看看 <Secrets of the JavaScript Ninja> <JavaScript Patterns> <ECMA-262 in Detail> 應該重視跟蹤閱讀一些大牛們的Blog了編程

番外篇

各種專題書籍,讀好第二批次書籍以後,有精力就接觸下設計模式

  • <高性能網站建設指南>
  • <高性能網站建設進階指南>
  • <高性能JavaScript>
  • <Ajax實戰>
  • <JQuery實戰>
  • <精通CSS>(或<CSS權威指南>)
  • <正則表達式必知必會>(或<正則表達式權威指南>)
  • <HTML5與CSS3權威指南>
  • <NodeJS開發指南>
  • <深刻淺出Node.js>
  • <鋒利的jquery>

找書技巧

關於一個主題的書不少,那咱們怎麼找到一本合適咱們閱讀的書呢?由於適合本身的纔是最好的。下面是一些些小技巧:

  1. 在各大圖書網(如噹噹、亞馬遜、京東等)上搜索關鍵詞,如jQuery,能夠選擇按照銷量或好評排序,通常排在前面的就是很搶手的好書,值得閱讀
    1. 若是想看一本書的評價怎麼樣,那就去豆瓣讀書搜索吧,那裏的評論仍是值得參考的  

JavaScript Dom編程藝術(第二版連接) 
 
  話說這本書的中文名有一些標題黨的,當初若是知道這僅是一本入門書籍,我是不會買來的.拿到後一天就看完了,對我來講沒有太多技能上的實質幫助.不過這個書語言很流暢,重要的是對知識深淺度把握的很好,html/js/css/dom各個方面都把握在一個合適的度,這很符合我對書籍指望,一步步走,每一步都踏踏實實. 
  這本書經過幾個實例,按部就班的介紹了前端開發的方方面面,讓你們可以瞭解前端的技術體系概況,又能具有了一些簡單的動手能力.若是你們對我以前寫過的<瀏覽器端技術體系概覽 -- 前端開發的七種武器>有些感受,那讀讀這本書正好能上手實踐一把. 
  去年淘寶前端懶懶交流會的豆瓣小站上作了一個調查,若是非要您推薦一本適合新人學習的js方面的書,您的推薦是什麼?雖然投票的人很少,但這本書倒是遙遙領先. 

JavaScript高級程序設計(第二版連接) 
 
這本書的初版很全面且不枯燥的書籍,年紀輕輕的NCZ有這樣的大做難能難得.讀懂這本書,前端技能又能夠上一個臺階,基本上能夠成爲專業的前端工程師了. 
      對於當時的我來說,這本書及時的補充了瀏覽器兼容性方面的知識,特別是事件相關的知識,這個瀏覽器間差異最大.有些內容講的很是簡單明瞭,好比call和apply的用法,以前老是理解很差,NCZ幾句話+一個例子就說明白了. 
      然而做爲全面型的書籍,初版也是有一些問題的: 
      1.閉包只半頁篇幅,沒說清楚. 
      2.匿名函數沒怎麼講. 
      3.全書沒提到constructor,更別說hasOwnProperty,__proto__. 
      這帶來了我以前說的深一腳淺一腳的困擾,這些知識基本上是經過<JavaScript權威指南>閱讀中補充的,固然當時版本的權威指南也有一樣的問題,好比它沒解釋instanceof.也沒提到__proto__.這形成了我對面向對象理解的不全面,當時在作了N多測試後還很蛋疼的寫了一篇博文<JavaScript constructor和instanceof,JSOO中的一對歡喜冤家>,後來接觸到<JavaScript設計模式>關於OO的全面論述以後,果斷刪掉了這篇JY. 
      相信這本書的第二版,以及權威指南的第六版確定會在這些方面進行補充.不過這兩本書都是十足的大部頭,高級程序設計第二版已經比權威指南去除附錄要厚了. 
      一本全面且不枯燥的書太難找了,因此我仍是喜歡初版.對我技術上的提高幫助很是之大.忍不住再秀一張圖(當時在封閉開發Alimama.com,馬雲時常來,他不願在書的第一頁簽名搞得好像他寫的,因而把簽名畫在了第二頁.) 


精通JavaScript 
 
      我會把書籍分紅兩類,一類是全面型,一類是犀利型.前面介紹了一本全面型的書籍,接下來介紹的這本的特色是很是犀利,這類書籍的特色是做者能找對重點(2/8原則掌握的很好),在重點位置深刻挖掘.這本書的做者John Resig也是JQuery的做者,他顯然是個足夠犀利的人兒.JQuery從未承諾解決全部問題,但再一些重點部位的突破,讓這個類庫如此流行.這本書並無着重介紹JQuery,仍是基於原生的JavaScript和DOM API. 
      列一些這本書的重點話題,可以很好的看出做者爲何會開發出JQuery,或者說JQuery爲何是如今的樣子: 
      1.如何建立可複用的代碼?如何調試,測試?(這是基礎) 
      2.如何判斷DOM什麼時候加載完畢?如何遍歷,修改DOM?(JQuery以DOM爲核心,節點的增刪改查,事件響應是重點)
      3.如何肯定元素的位置,相對於頁面/屏幕?如何作平滑的動畫?(思考下CSS相關的話題不少,做者爲何選了這兩個?) 
      4.如何改進表單驗證,封裝完整的Ajax程序?(涉及數據交互,是另外一個重中之重.) 
      不算厚的一本書,基本上就是以上的話題+幾個實例.當咱們看過了一本全面型的書籍,對前端的知識有了深刻的瞭解以後,這本書的做者指出了從此的重點,並告訴你們如何把知識用到解決重點問題上. 

JavaScript語言精粹 
 
      推薦你們看看阮一峯老師的博文<JavaScript誕生記>,JavaScript是Brendan Eich大神10天時間設計出的語言,如今成了Web前端領域的惟一語言. 
      一方面這門語言博採衆家之長,也幫助它維繫了長久的生命力: 
      "1.借鑑C語言的基本語法; 
       2.借鑑Java語言的數據類型和內存管理; 
       3.借鑑Scheme語言,將函數提高到"第一等公民"(first class)的地位; 
       4.借鑑Self語言,使用基於原型(prototype)的繼承機制。" 
      另外一方面"因爲設計時間過短,語言的一些細節考慮得不夠嚴謹,致使後來很長一段時間,Javascript寫出來的程序混亂不堪。"Brendan Eich對其這10天工做的評價是:"它的優秀之處並不是原創,它的原創之處並不優秀。" 

      Douglas Crockford經過<JavaScript: The Good Parts>這本書對JavaScript進行了一次大審判,老道認爲JavaScript語言有不少優秀的地方,也有一些雞肋和糟粕.老道不反對用這門語言,在規避一些雞肋和糟粕以後它天然是優秀的. 
      老道認爲JavaScript優美的特性以下: 
      1.函數是頭等對象(能夠做爲其餘函數的參數和返回值,支持閉包) 
      2.基於原型繼承的動態對象 
      3.對象字面量和數組字面量(構成JSON的基礎) 
      老道列出了不少雞肋和糟粕,並提供了JSLint這個工具,來校驗代碼是否使用了很差的部分.書中給出的語法圖讓我有深刻學習一下<編譯原理>的衝動,也理解了JSLint做爲用JS語言分析JS語言的工具成型的理論基礎. 
      強烈建議你們使用JSLint來檢測本身的代碼,可是咱們沒必要教條,能夠違返其中一些的檢測規則,只要咱們清楚老道爲何會設置這個規則,有什麼風險?若咱們不遵照這個規則,是否能迴避相應的風險. 
      我以爲這本書最重要的意義是告訴咱們爲何"它是雞肋,它是糟粕"這是通過前面的學習和大量實踐以後,成熟的開發者應該關注的.好比: 
      1.hasOwnProperty,老道說它糟粕的緣由是由於這不是一個關鍵字,而是一個Object.prototype上能夠被重寫的方法.那麼這個告訴咱們,並非不要用hasOwnProperty,而是要注意不要覆蓋它. 
      2.eval的主要問題是性能,大量的eval(類eval)語句下降了JS引擎的性能.而通過測試少許的eval語句+eval大段的JS文本性能並不差,有必要也能夠考慮使用. 
        
JavaScript設計模式 
 
      這是一本介紹JavaScript面向對象編程以及設計模式很是好的書籍.相對於又一本全面型書籍語言精粹,犀利型書籍登場了. 
      我對面向對象的見解是:隱藏細節,方便作大.基於良好的抽象和封裝,咱們能夠方便的自頂而下的設計,自底而上的開發.面向對象的優缺點不是本文的重點,這裏不討論,只能說這是一個很是不錯的代碼設計實現方法論. 
      JavaScript究竟是不是一個面向對象的語言,從本質說必定是的,從表象來講OO的不那麼明顯.咱們必須經過一些額外的代碼實現諸如,劃分公有/私有,接口,繼承,多態等特性.因爲JavaScript語言的靈活性,實現的方式很是多.這本書的第一部分對常見的兩類實現模式:類式繼承和原型繼承都有很是好的最佳實踐總結.因此個人想法是徹底讀懂它,而後按照這個來作就行了.若是這裏介紹的實踐足夠強大,咱們沒有必要發明新的繼承實現模式了,事實上YUI一直是這種模式,而新的JavaScript引擎甚至引入了Object.create方法,將一些動做寫入標準內置在JS引擎中. 
      咱們應該將視點放在設計模式上,GoF的設計模式那本書裏的例子,對於前端開發來講並不都是很好理解,而這本書的例子所有是前端相關,有助於你們理解設計模式的精妙.還有些同窗說,即便我不瞭解GoF的理論,我也在默默的用這些模式了.確實是這樣,但我想咱們關注設計模式,不光要學會各類模式是怎樣的,更重要的是學習到各類模式適合什麼場合,不適合什麼場合.瞭解有什麼優勢,也要了解有什麼缺點,你正在默默使用的模式存在隱患麼?系統學習以後會對其更有把握. 
      前幾天聽同事說這本書全面斷貨,不知道是太火,仍是印的太少,但願能儘快看到上架. 

Secrets of the JavaScript Ninja 
 
      進入第四個批次,這裏的書籍多數沒有中譯本出版.現階段想開發靠譜的底層類庫代碼,確實須要啃一些外文書了.英文書不少,沒有精力大量閱讀,一般讀一些口碑較好的書籍. 
      另外,到了這個批次,個人閱讀量也至關的有限,因此確定有不少好的內容沒有提到,指望你們能繼續推薦.並且到了這個批次,書籍產出確定跟不上知識的更新速度,跟蹤閱讀一些JS大牛們的Blog應該成爲習慣. 
      這是JQuery做者的第二本書,天然又是犀利型的表明.John Resig已經陸續放出這本書的大部份內容,從2008年開始寫,計劃2012年5月出版. 
      若是說JR的第一本書可以看出爲何有JQuery,那麼這本書能看出讓JQuery發展下去,做者關注了哪些.咱們會看到其實一些很細節的內容,好比強調測試用例的構建/自動化測試的方法,好比如何利用每一個function實例的length屬性,好比對with,eval的思考和發散等等. 
      關於這本書具體如何的好處,我還理不清,拿來開開眼界是很是不錯的.記得玉伯大大組織了一波同窗在翻譯,不知進展如何了. 

JavaScript Patterns 
 
      乍一看這本書標題,覺得又是一本講設計模式的書,那和<JavaScript設計模式>重複了,開始沒有仔細關注.今年拔赤推薦了它,才發現者並不只僅介紹GoF的設計模式而是涵蓋前端開發各個方面的先進理論。雖然是09年的書,這兩年前端的不少較深入變化在這邊書裏都能看到雛形。上一本書犀利,這本更全面。 
      做者Stoyan Stefanov是Yahoo的前端技術專家,從這本書中能夠看到不少YUI3設計上的本源,好比在對象建立模式中介紹的模塊模式/沙箱模式.近來CommonJS Loader的流行在這之上的繼續深刻發掘.這本書還包括代碼測試,打包,部署,加載策略等各個流程中的諸多細節,這些構成了完整的體系在Yahoo在YUI3都有很是好的實踐. 
      據說咱們的同事拔赤和一舟在翻譯這個本書,很是期待. 

ECMA-262 
      這不是一本書,是俄羅斯小夥子寫的一系列ECMA-262標準分析文章,ECMA-262-3系列已經很完整.標準像彙編語言同樣枯燥,而這系列文章把枯燥的標準轉化爲一系列深刻討論的話題,配合恰到好處的示例,必定會讓你們對JS引擎的認識再上一層. 
      網上有一些譯文,可是因爲相似文章譯文比較少,不少英文還未達成一致表述,因此推薦閱讀英原文.另外做者很好,遇到的棘手的問題,去諮詢他都能很快收到很好的回覆. 

期待:一本JavaScript語言做者或引擎實現者寫的書 
      一直以來期待JavaScript能有一本像C語言的K&R這樣的大做,最近也在讀計算機系統概論補一些大學時沒學好的知識,很是認同書中"自底而上"的學習路線.我想對JavaScript引擎的透徹分析,可以減小你們看着實驗結果,猜想着寫書的境況.隨着NodeJS的火爆,引擎的技術分析文章愈來愈多,期待很快出現集大成者. 

高性能網站建設指南  進階指南  高性能JavaScript 
 
      進入番外篇,推薦的書籍都是有針對性的領域之做,內容每每並不高深,你們根據本身的實際狀況進行選擇閱讀. 
      高性能的網頁是前端必然的追求,Steve Sounders率先在Yahoo開啓了這方面的專題研究,伴隨着<高性能網站建設指南>的出版和YSlow工具發佈.網站性能優化,特別是前端角度和運維角度的優化方案,進入了人們的視野,同時得到了巨大的效果,甚至造成了名爲WPO(Web Performance Optimization)產業. 
      第一本書除了介紹了可以立竿見影的規則的同時也開啓了民智.你們開始思考如何作優化,如何結合本身的應用實踐作優化.然後兩本書基本上是遵循優化思路的繼續得來的實踐總結.關於優化的工具,思路,方法是我特別強調的.感興趣的同窗能夠看下在Yslow 34 Rules以後 -- 網站性能優化思路和進展 這一篇. 

其餘領域之做 
 
      接下來介紹這些專題類書籍,並非特別推薦,每每每一個專題都有不少書籍可供選擇,隨手寫一些讀書心得吧. 
      Ajax實戰:06年的書,很早就購入.書中介紹了不少RIA高級應用的相關話題,很開眼界. 
      JQuery實戰:必定須要一本介紹JQuery的書,這書還能夠,不過如今看來應該比較舊了,JQuery已經更新了不少.我主要從這本書瞭解了JQuery的工具函數擴展機制和插件機制是如何實現的.JQuery讓徹底不瞭解prototype屬性的同窗也能寫出可複用的複雜組件,很是不容易,之後再單獨寫寫對JQuery的一些見解吧. 
      精通CSS:必定須要一本介紹CSS的書,工做中一直以來CSS用的不是很深刻,不作特殊介紹. 
      正則表達式必知必會:必定須要一本正則方面的書籍,這本小冊子查起來蠻方便. 

 
      HTML5揭祕HTML5高級程序設計買回來一直沒看,對HTML5的新增特性仍是有了解的,等能用到時再看再評.
 
      但願看到NodeJS方面的書籍,儘快引入. 


寫在最後       只能針對我瞭解的書,在網站找一些參考推薦給你們。      當有了領域內必定的實踐經驗以後,閱讀一本相關的書籍並非難事,也並不會耗費不少時間.       全面型的書籍可讓你們技能水平Step By Step的穩步提升,讓你們站得高也站得穩.       犀利型的書籍可讓你們瞭解重點,瞭解別人是怎麼運用那些你也會的知識的.       專題類的書籍是拓寬眼界,幫助你們完成工做任務的好手.       對於非英文專業的同窗,若是有中譯本,不用非得糾結着去看原版,咱們要最快學到知識,最快進入思考與實踐. 

相關文章
相關標籤/搜索