想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等着你!javascript
這個是我訂閱 陳皓老師在極客上的專欄《左耳聽風》,我整理出來是爲了本身方便學習,同時也分享給大家一塊兒學習,固然若是有興趣,能夠去訂閱,爲了不廣告嫌疑,我這就很少說了!如下第一人稱是指陳皓老師。css
對於前端的學習和提升,個人基本思路是這樣的。首先,前端的三個最基本的東西 HTML五、CSS3 和 JavaScript(ES6)是必需要學好的。這其中有不少不少的技術,好比,CSS3 引伸出來的 Canvas(位圖)、SVG(矢量圖) 和 WebGL(3D 圖),以及 CSS 的各類圖形變換可讓你作出很是豐富的渲染效果和動畫效果。html
ES6 簡直就是把 JavaScript 帶到了一個新的臺階,JavaScript 語言的強大,大大釋放了前端開發人員的生產力,讓前端得以開發更爲複雜的代碼和程序,因而像 React 和 Vue 這樣的框架開始成爲前端編程的不二之選。前端
我一直認爲學習任何知識都要從基礎出發,因此我會有很大的篇幅在講各類技術的基礎知識和基本原理,尤爲是以下的這些知識,都是前端程序員須要一塊一塊啃掉的硬骨頭。html5
而對於工具類的東西,這裏我基本沒怎麼涉及,由於本文主要仍是從原理和基礎入手。那些工具我以爲都很簡單,就像學習 Java 我沒有讓你去學習 Maven 同樣,由於只要你去動手了,這種知識你天然就會得到,咱們仍是把精力重點放在更重要的地方。java
下面咱們從前端基礎和底層原理開始講起。先來說講 HTML5 相關的內容。react
對於 SVG、Canvas 和 WebGL 這三個對應於矢量圖、位圖和 3D 圖的渲染來講,給前端開發帶來了重武器,不少 HTML5 小遊戲也所以蓬勃發展。因此,你能夠學習一下。git
學習這三個技術,我我的以爲最好的地方是 MDN。程序員
最後是幾個資源列表。es6
在《程序員練級攻略(2018)》系列文章最開始,咱們就推薦過 CSS 的在線學習文檔,這裏再推薦一下
MDN Web Doc - CSS 。我我的以爲只要你仔細讀一下文檔,CSS 並不難學。絕大多數以爲難的,一方面是文檔沒讀透,另外一方面是瀏覽器支持的標準不一致。因此,學好 CSS 最關鍵的仍是要仔細地讀文檔。
以後,在寫 CSS 的時候,你會發現,你的 CSS 中有不少看起來類似的東西。你的 DRY - Don’t Repeat Yourself 潔癖告訴你,這是不對的。因此,你須要學會使用 LESS 和 SaSS
這兩個 CSS 預處理工具,其能夠幫你提升不少效率。
而後,你須要學習一下 CSS 的書寫規範,前面的《程序員修養》一文中提到過一些,這裏再補充幾個。
若是你須要更有效率,那麼你還須要使用一些 CSS Framework,其中最著名的就是 Twitter 公司的 Bootstrap,其有不少不錯的 UI 組件,頁面佈局方案,可讓你很是方便也很是快速地開發頁面。除此以外,還有,主打清新 UI 的 Semantic UI 、主打響應式界面的 Foundation 和基於 Flexbox 的 Bulma。
固然,在使用 CSS 以前,你須要把你瀏覽器中的一些 HTML 標籤給標準化掉。因此,推薦幾個 Reset 或標準化的 CSS 庫:Normalize 、MiniRest.css、 sanitize.css 和 unstyle.css。
關於更多的 CSS 框架,你能夠參看 Awesome CSS Frameworks
接下來,是幾個公司的 CSS 相關實踐,供你參考。
Medium’s CSS is actually pretty f*ing good
Refining The Way We Structure Our CSS At Trello
最後是一個能夠寫出可擴展的 CSS 的閱讀列表 A Scalable CSS Reading List
下面是學習 JavaScript 的一些圖書和文章。
接下來是 ES6 的學習,這裏給三個學習手冊源。
而後,還有一組很不錯的《You Don’t Know JS 系列》 的書。
接下來是一些和編程範式相關的文章。
下面三篇文章是德米特里·索什尼科夫(Dmitry Soshnikov)我的網站上三篇講 JavaScript 內在的文章。
How JavaScript Works」 是一組很是不錯的文章(可能尚未寫完),強烈推薦。這一系列的文章是 SessionStake 的 CEO 寫的,如今有 13 篇,我感受可能尚未寫完。這個叫 亞歷山大·茲拉特科夫(Alexander Zlatkov) 的 CEO 太猛了。
接下來是 Google Chrome 工程經理 阿迪·奧斯馬尼(Addy Osmani) 的幾篇 JavaScript 性能相關的文章,也是很是好的。
其它與 JavaScript 相關的資源。
你須要瞭解一下瀏覽器是怎麼工做的,因此,你必須要看《How browsers work》。這篇文章受衆之大,後來被人從新整理併發布爲《How Browsers Work: Behind the scenes of modern web browsers》,其中還包括中文版。這篇文章很是很是長,因此,你要有耐心看完。若是你想看個精簡版的,能夠看我在 Coolshell 上發的《瀏覽器的渲染原理簡介》或是看一下這個幻燈片。
而後,是對 Virtual DOM 的學習。Virtual DOM 是 React 的一個很是核心的技術細節,它也是前端渲染和性能的關鍵技術。因此,你有必要要好好學習一下這個技術的實現原理和算法。固然,前提條件是你須要學習過前面我所推薦過的瀏覽器的工做原理。下面是一些不錯的文章能夠幫你學習這一技術。
以及兩個 Vitual-DOM 實現供你參考:
全書以性能優化爲主線,從 TCP、UDP 和 TLS 協議講起,解釋瞭如何針對這幾種協議和基礎設施來優化應用。而後深刻探討了無線和移動網絡的工做機制。最後,揭示了 HTTP 協議的底層細節,同時詳細介紹了 HTTP 2.0、 XHR、SSE、WebSocket、WebRTC 和 DataChannel 等現代瀏覽器新增的能力。
另外,HTTP/2也是 HTTP 的一個新的協議,於 2015 年被批准經過,如今基本上全部的主流瀏覽器都默認啓用這個協議。因此,你有必要學習一下這個協議。下面相關的學習資源。
HTTP/2 的兩個 RFC:
新的 HTML5 支持 WebSocket,因此,這也是你要學的一個重要協議。
一些和 WebSocket 相關的想法,能夠開闊你的思路:
總結一下今天的內容。我一直認爲學習任何知識都要從基礎出發,因此今天我主要講述了 HTML五、CSS3 和 JavaScript(ES6)這三大基礎核心,給出了大量的圖書、文章以及其餘一些相關的學習資源。以後,我建議你學習瀏覽器的工做原理和網絡協議相關的內容。我認爲,掌握這些原理也是學好前端知識的前提和基礎。值得花時間,好好學習消化。
代碼部署後可能存在的BUG無法實時知道,過後爲了解決這些BUG,花了大量的時間進行log 調試,這邊順便給你們推薦一個好用的BUG監控工具 Fundebug。
大家的點贊是我持續分享好東西的動力,歡迎點贊!
乾貨系列文章彙總以下,以爲不錯點個Star,歡迎 加羣 互相學習。
https://github.com/qq44924588...
我是小智,公衆號「大遷世界」做者,對前端技術保持學習愛好者。我會常常分享本身所學所看的乾貨,在進階的路上,共勉!
關注公衆號,後臺回覆福利,便可看到福利,你懂的。