我常常會看到不少同窗在學習前端的時候比較迷茫,不知道到底應該以怎樣的學習路線來入門和進階前端領域。每次遇到這種問題我也會分享一下本身的學習經驗,可是發現這是一個問得很是多的一個共性問題。javascript
做爲程序員,確定是不能容忍重複無味的勞動的,所以我就係統地總結分享一下個人前端學習路線,但願對你可以有所幫助。html
前端學習是一個螺旋上升的過程,既要反覆地看書,也要抓緊時間進行實戰。只看書,看了就會忘,因此必須將看書和寫代碼相結合。只要你認真學,入門前端的話三個月左右就能夠了。以後我還給出了前端進階路線,幫助你提高前端技能水平。我把前端入門和前端進階一共分爲六個階段,並對相應階段所須要的大體的學習時間進行了標註。前端
入門前端開發主要須要學習 HTML,CSS 和 JavaScript 三大件。以後學習前端主流框架的使用,並基於已學內容開發一個小項目進行實戰。當你把這些學習並理解透徹之後,也就算真正地入門前端了。java
前端對於入門者至關友好,由於開始學習的時候你只須要一個瀏覽器,推薦 Chrome。HTML 和 CSS 能夠直接運行在瀏覽器中,瀏覽器就是它們的運行環境。你也可使用編輯器,推薦 VSCode,這是前端開發使用最多的編輯器。git
HTML (HyperText Markup Language) 和 CSS (Cascading Style Sheets) 其實並非編程語言。HTML 中文名叫作超文本標記語言,其實就是一些標籤。CSS 中文名爲層疊樣式表,也就是一些樣式的配置。程序員
首先學習 HTML,很是簡單。HTML 有很是多的標籤,剛入門的時候不要沉浸在記住這些標籤中,你也記不住。你只須要總體瀏覽一遍,知道有哪些標籤,各自的做用是什麼,總體有一個印象就好了。我推薦跟着 MDN 的 HTML 學習路徑 過一遍就行。我學習 HTML 的時候還看過兩本書,你感興趣也能夠看一下,這是這方面很好的書了:github
看完以後能夠自我檢測一下,例如經常使用的標籤有哪些,<!DOCTYPE>
的做用是什麼,哪些標籤是行內標籤,哪些是塊級標籤,HTML5 有什麼新特性等。這裏不要花太多時間,大體過一下便可,不用都記住,以後有須要再回來查就行。web
接下來學習 CSS,直接推薦目前最適合 CSS 入門的書:面試
在入門階段,不須要將整本書一字不差地看完,你只須要抓住幾塊核心內容,例如選擇器、層疊、繼承、盒模型、Flex 頁面佈局和網格等。這些內容快速過一遍就行,太細節的內容不用記,以後須要了再回來查。以上內容用時 6 天左右,其中 HTML 2 天,CSS 4 天。算法
有了這些基礎知識,你就能夠進行實戰了。這裏推薦百度前端技術學院平臺,他們這都是開源免費的前端題目,應該是爲了培養前端人才,讓本身可以招到更合適的人而建立的。他們的課開了四年:
如今打開 IFE2018 中的 第五題 開始寫靜態頁面吧。而後你會發現,你根本寫不出來。這是很正常的,那你就去看別人的代碼,看一點你就開竅了,就知道怎麼寫了。忘掉的屬性就回去查 MDN 或者查我推薦的書,如此反覆你就記住了。
寫完一個頁面以後別急着往下寫。你寫的第一個頁面確定有不少問題,例如屬性使用錯誤,代碼縮進不規範等問題。這時候你應該找一個代碼規範,例如 百度前端代碼規範,根據規範重寫你的代碼。這個規範我只是舉一個例子,本身上網搜一下,好的大公司都有本身的規範,這個不是規定死的,風格統一而且可讀性強便可。
重寫代碼以後,你再去看看別人提交的代碼,這個頁面是怎麼寫的,若是身邊有技術好的前端,可讓他幫你指點一下。這時候你應該就知道如何寫一個頁面,而且怎樣才能寫好一個頁面了。而後你能夠本身再去找幾個題目,寫幾個頁面熟練一下。
以上爲階段一內容,用時 10 天左右。
CSS 進階:學習 CSS 核心內容不須要不少時間,但其實 CSS 是細節很是深的一個技術。前期不要陷入其中,那麼你會問如何深刻學習 CSS 呢?我推薦一些很好的權威書籍,基本看這些就夠了。
學習了 HTML 和 CSS,能夠開始學習 JavaScript 了。這也是相當重要的階段。JavaScript 主要包括語言基礎(ECMAScript)、DOM 和 BOM 三部分,若是你是初學者,會想這究竟是啥,咋還三個東西。那就開始學起來,學完你就知道啦,其實沒那麼難。
學習這部分,必定要從現代 JavaScript 教程學起:
現代 JavaScript 教程是 React 官方文檔中與 MDN 並列推薦的 JavaScript 學習教程。 這個教程解決了現存 JavaScript 書籍最大的痛點:實時性。技術領域的書籍在實時性上一直都存在很大的問題,而這個教程卻解決了這個問題。而且它爲讀者搭建了良好的學習路線,由淺入深,內容足夠詳細也足夠全面,你就按着教程順序學習就好了。此外,每節內容後,還給出了高質量的課後習題和解析。經過作題能夠幫你檢驗本身的學習效果,並鞏固新學到的知識。
教程地址:zh.javascript.info/
學完這個教程,你就其實已經學完了 JavaScript。你可能還據說過 ES5/ES6/ES7/ES8……,其實你也已經學完了,並且還經過這個教程作了不少實戰的小例子。教程裏還將技術點與實際應用聯繫起來,讓你知道這個知識點在實際開發中是如何使用的,它解決了什麼問題。
在學現代 JavaScript 教程的同時,我推薦你買基本權威書籍,其實這些書所講的大部分在教程裏都有,不過能夠相互補充取長補短,同時還能夠鞏固知識點,加深你對 JavaScript 的理解:
階段二用時一個半月左右。若是你有編程經驗,學起來會輕鬆一些。所列出的書不用全都看完,而是挑選重點,相互補充着看。對於 API 相關內容不要死記硬背,大概瀏覽便可,用到的時候再查,多些代碼就天然記住了。
學完前端三大件,打好了大樹的根基,就能夠開始擴展技能樹了,開始學習前端框架。前端的主流框架目前主要爲 React,Vue 和 Angular。選擇哪一個框架呢?你能夠去知乎或者其餘網站搜一搜,而後根據你的我的喜愛進行選擇。通常是在 React 和 Vue 中選一個。React 的開發體驗更相似於寫原生的 JavaScript,要求你有較好的 JavaScript 基礎。Vue 則引入了模版,將不少實現封裝成了 API,你須要記住並調用 API 來進行開發,由於不少都是封裝好的,因此學習起來較爲簡單,只是編程的感受稍微弱了一些。
這兩個都是很是優秀的框架,新人沒必要糾結於選擇哪一個框架,學了一個,另外一個也很容易學。若是你不知道選擇哪一個,我推薦你先學習 React。推薦的學習路線:
在這個過程當中你會學到不少知識,會用到 React 的高階知識,那麼就把 React 官方文檔中的高級指引,API Reference,Hooks 等部分的內容學完。還會學到 React Router,Redux 等內容。會學到從零開發一個完整項目,從項目配置到組件拆分,到項目打包和上線的完整流程,還會學到 React 框架的一些底層源碼級知識。
若是你選擇了 Vue 框架,學習路線也相似:閱讀官方文檔,寫一些簡單的 Demo。而後學習慕課網 Dell 老師的 Vue 2.5 入門 和 Vue 2.5 -> 2.6 -> 3.0 開發去哪兒網 App 從零基礎入門到實戰項目開發 課程,中間穿插作一些百度前端技術學院的典型題目鞏固 JavaScript 的基礎知識。
此階段用時一個月左右。至此你已經成功入門前端開發了,恭喜你 🎉🎉🎉
階段一到階段三共計用時三個月。
成功入門前端開發以後就要開啓進階部分了,主要是加深對各個知識的理解程度,打牢計算機領域基礎知識,擴展技能樹,提高項目開發和宏觀理解及把控能力。前端進階是須要終生學習的,活到老學到老。
這個階段就是加深對編程語言的理解,多閱讀進階書籍,有能力的推薦去閱讀 ECMAScript 規範:ecma-international.org/ecma-262/
進階必讀書籍:
進階選讀書籍:
學習 TypeScript。JavaScript 是一門弱類型語言,你聲明一個變量,既能夠將字符串賦值給它,也能夠將數字等複製給它,這在大型項目開發中很容易由於數據類型出 bug。基於此類種種緣由,就出現了 TypeScript。你有了 JavaScript 的基礎,學習 TypeScript 很容易,它只是一種語法糖,也就是一種另外一種寫 JavaScript 的方式。推薦如下書籍:
經過階段三,你已經掌握了前端框架的基本使用,開發一個完整項目的流程。那麼在框架和學習邊界進階階段,你就能夠:
推薦閱讀書籍:
如下推薦的書籍都是比較出名的書籍,你能夠根據本身的技能樹,選擇所須要的書籍進行閱讀。並非一字不差地整本閱讀,而是在每本書中學習本身所須要的部分。不少都是很是著名的好書,有精力盡可能買來學習。
Webpack 相關:
React 相關:
Vue 相關:
Node.js 相關:
樣式和佈局相關:
性能相關:
PWA 相關:
其餘:
編程編程,萬變不離其宗,那就是計算機基礎知識,算法、數據結構、計算機原理、網絡等內容。在這裏我只推薦最經典的好書,每一本都是必讀書籍。學好這些內容,大廠任你選。
數據結構和算法:
計算機網絡:
操做系統:
編程思想:
編譯原理:
產品思想:
至此,你已經完成了前端開發從入門到進階,已然成爲了一個巨佬,以後再學什麼已經瞭如指掌。但願個人分享對你有幫助,若是你以爲有用,能夠收藏本文,並分享給你有須要的朋友。讓咱們一塊兒學習,共同進步!
更多精彩內容,微信掃碼關注公衆號「技術漫談」: