隨着個人成長,個人興趣也在不斷地分化,他們彷佛都是不相關的領域。我喜歡數學就像我喜歡歷史同樣。個人目標是成爲一個多才多藝的人——一個學者——在許多領域都能成爲傑出的人才。這是一項艱鉅的任務。忽然間,我面臨着一種危險,那就是在全部方面都很容易接近和疏遠我。
我開始考慮專一於某些領域,這樣我至少能夠掌握某些方面,即便我不能成爲文藝復興時期的通才。那麼,我如何集中精力在一個領域,掌握軟件開發所需的巨大知識系統呢?
這篇文章是基於我過去五年的經驗,概述了我曾經成爲一名優秀的JavaScript開發人員所使用的技術和資源。
現在,大多數Web開發人員都面臨着一樣的問題:他們必須擅長許多不一樣的領域,從數據庫到後端架構,到前端用戶界面,用CSS知識修改用戶界面。
讀一本書
爲了達到熟練,專心和努力是首要條件。若是你不全心全意投入到你的工做中,你最終會獲得一張半生不熟的照片。例如,經過閱讀一些博客文章,由於初期投資較低,因此看起來比較簡單。但從長遠來看,這種學習模式將比關注學習本質的過程花費更多的時間。解決這個問題的方法很簡單:閱讀。
書籍讓咱們站在文明的肩膀上。精緻的語言讓咱們的知識代代相傳。至於如何成爲一名網絡技術專家,你必須在學習過程當中與網絡保持必定的距離。由於網絡自己是一個混合和分散的學習媒介,個人第一個建議是閱讀相關專業的書籍。
對於javascript,從javascript語言的本質開始,這本書叫作javascript聖經。這本書很舊,但很適合做引言。儘管您能夠將它用做參考書,但javascript權威指南也是必要的。此外,jquery做者JohnResig的「JavascriptNinja禁止」也不容錯過。若是你正在尋找一本好的(免費在線)書,請查看javascript allange,你不知道JS和雄辯的javascript(點擊這裏查看它的註釋版本)。這些能夠以電子書或印刷版的形式購買。此外,Mozilla的開發者網絡也有一個很好的「javascript指南」。
學習、使用和閱讀圖書館
下一個最重要的步驟是理解庫。若是書籍教你如何理解一種語言,圖書館教你如何表達它。對於庫,您有兩件重要的事情要作:使用它們並讀取它們的源代碼。
經過使用庫,您開始瞭解:jquery、主幹、下劃線和react、angular、ember之一。固然,這並非說你必須使用這些庫,可是有能力的JavaScript開發人員應該至少對這些庫有一些經驗(好或壞)。
爲了提升JavaScript技能,第二件重要的事情是閱讀這些庫的源代碼。其中,我特別推薦主幹和下劃線的源代碼,由於它們的代碼寫得很漂亮。經過閱讀和理解下劃線,您的功能編程能力將獲得提升。另外一個由其餘幾個開發人員推薦給個人庫是mootools(我我的沒有使用和閱讀mootools的經驗,只是傳遞信息)。
理解上面列表中的其餘庫(如react、ember等)可能很困難,但值得付出努力。至少瀏覽一下其餘庫的源代碼,看看它們如何組織基代碼,並嘗試找到一些模式。其餘值得使用和閱讀的庫有d三、highcharts和moment.js。
練習並問本身問題
成爲一名優秀的JavaScript開發人員的下一步是作大量的實踐。從理論上講,這些實踐的重點不是DOM,而是語言,所以請確保節點上運行有測試工具。JS。在節點上作不少小練習。JS。javascript閉包、原型、數組附加(map、filter)的使用方式不一樣。通過大量的練習,您將有一個關於javascript的基本概念。
個人朋友Armagan是一位傑出的javascript程序員和教師,他在課堂上使用的教材「javascript設計模式」也值得一看。
試着回答這樣的問題:原型繼承是如何工做的?閉包的定義是什麼?這個關鍵字是如何更改的?如何使用apply/bind/map/filter/call?收集一些常見的javascript開發人員的問題,並嘗試用您本身的語言解釋它們。以書面或口頭形式向他人解釋這些概念能夠大大提升他們的能力。在實踐中,儘可能作「假設分析」。例如,「若是您使用綁定兩次,這表明什麼?jquery是如何產生的javascript