作一件事以前最好問問本身爲何要作,而後再去思考該怎麼作。若是隻是看到別人作了,而且有很不錯的收入,而後本身就決定作了,極可能中途放棄浪費掉不少時間。起碼問本身一個問題:我是否真的熱愛這個領域,而且很樂意在這個領域持續不斷的一直學習付出?當你模糊不定我想你能夠再想一想本身適合什麼,若是你接觸後發現這就是我喜歡的東西,那麼我想你能夠開始了。前端
做爲自學兩年的初級前端,但願對那些想入門前端開發的人分享一些觀點。先談談我那會爲何選擇入門前端,這個可能大多數人都同樣:算法
不喜歡黑乎乎的命令框程序,喜歡漂亮的用戶界面數據庫
不喜歡成天與數據庫交流,喜歡向用戶展現內容和處理用戶的操做編程
代碼寫一點就能看見視圖效果出來一點,這是頗有成就感的後端
要是你有很強的算法邏輯,喜歡處理海量的用戶請求和數據,你能夠考慮一下後端開發,固然作一名全棧開發是最好的。微信
這裏有一個很大的誤區:大多數人以爲前端簡單,填填Html
,稍微加點CSS
,而後用JavaScript
處理一下點擊事件以及其餘的邏輯,一個網頁就成了。而後就會給人一個錯覺:我簡單地看看文檔大概用一週的時間就能動手寫網頁了,給人一種前端門檻很低的感受,還不用去考慮後端那些複雜的算法邏輯。網絡
確實,對於一個新手寫一些網頁確實不太須要算法邏輯,可是這些想法很容易給人誤導,懂得這些你只是一個切圖工
,並非一個很好的開發者。尤爲是這幾年前端領域飛速的發展,新東西層出不窮。僅僅會這些早已不能知足需求了。前端工程師
這幾年這一領域的發展還算蠻大的,出現了不少新的工具,前端開發的地位愈來愈被重視,隨着技術的更新前端的產品體驗愈來愈好。數據結構
可是做爲前端的三大基石:Html
、CSS
和JavaScript
基礎的內容沒怎麼變過,不過是在其基礎上增長不少新的特性和方法。後來隨着Webpack
等一些工具的出現,前端的工做方式發生了變化,以及一些新的框架好比Vue.js
、React
的出現,使得前端體系愈加的龐大。不過只要分清楚哪些是重點就能夠。框架
縱觀計算機發展史,二三十年間技術更替了一波又一波,不斷有新的技術產生,老的淘汰。前端領域也更替了好幾代,因此但願明白一個事實,不要去爭論什麼語言、什麼框架好,萬一哪天出來一個更好的把它替代了呢?因此不要侷限住本身的視野,要看到那些基礎的東西是不會變的,那些 js 基礎、網絡協議以及一些編程思想,也就是數據結構與算法,吃透這些底層的東西不管上層工具怎樣交替更換,本身總能駕輕就熟。
打個比方,《蜘蛛俠:英雄歸來》裏面託尼對他說的:
這些都是我以爲比較好的東西,推薦一下:在搜索引擎一查就能找到。或者關注下個人微信公衆號: 前端123
獲取(天天分享前端入門知識)。
首先就是HTML
與CSS
:HTML
負責網頁的骨架,而CSS
則主要負責你美化你的的網頁的樣式。這些基礎的話入門的時候過一下文檔就能夠了,這裏推薦MDN Web docs
。還有一個頗有趣的教程,若是你不喜歡單看文字教程的話,能夠試試Freecodecamp
,一個學習編程的網站,闖關遊戲感受的學習過程,由最簡單漸進深刻的內容,試一下你會喜歡的。
接着就是JavaScript
的部分,這也是前端開發水平的分水嶺,切圖仔與工程師差距就在這。不少人每每忽略這一部分,每每拿着一些開發框架的特性和功能就開始直接使用了,以爲能夠應付通常的需求,可是那些框架的原理實現對他徹底就是黑盒,很容易形成錯誤和創造低效的代碼。學習這部分的話首先推薦廖雪峯的 JavaScript 教程
,內容很完整,每一個部分還有單獨的測試,以及後面的 js 一條龍教程。還有一個就是廣受業內讚譽,被稱爲紅寶書
的JavaScript 高級程序設計
。書很厚,可是徹底值得啃下去。
當你以爲徹底掌握了上面的內容了,對JavaScript
的基礎瞭如指掌,是時候上手一門框架來增長你的開發效率了。不管Vue
仍是React
,你都須要仔細閱讀官方給的文檔,這是最有效率的方式,選擇你喜歡的框架風格深刻看完文檔就好了。
好的學習方法是可讓你利用有限的時間掌握更多的內容。首先不得不提的是解決問題的能力
是一我的很難得的品質。
編程的路上確定會遇到不可控的各類問題,冷靜分析,查閱錯誤信息,找出解決方法。或是嘗試了各類方法,可是依舊沒法解決,阻擋了你前進的步伐。這個時候你就要找一個你信任的水平高於你的人,解釋你遇到了什麼問題,你理解的這個問題可能會是哪裏出問題了,你嘗試過什麼解決方法。
切忌截一個報錯信息就問解決方法。首先你們的時間都很寶貴,這是一種不尊重別人時間的表現;其次你們都願意幫助樂於思考的人。搜索引擎是你解決問題的利器,大多數解決不了的問題都是你沒有選對搜索引擎,或是你沒有準確的描述出問題的信息。
還有個學習的能力
:學習是一個終身的事業,尤爲是對於計算機行業,學會堅持主動學習、高效學習是很重要的。對待學習這件事,每一個人的效率不同,這就致使了人跟人之間的差距。這裏有兩個須要注意的:
在明確目標,開始學習前,不要那麼急於上手幹,還要學會構建出本身的知識體系。
就拿讀書來講,大部分人讀書習慣於翻開第一頁開始看,其實這是很低效的,拿到一本書之後,必定要先看目錄,由於對於一本書來講,目錄就是他的知識體系。明白整個體系後整本書大概就瞭然於胸,以後會選一些對我當前工做學習有幫助的內容去看,不多會從第一頁開始。
一樣的編程也同樣,好比你想成爲一名前端工程師。你要作的並非先買書、看視頻、搭建開發環境。而是要先了解到成爲一名前端開發工程師須要哪些知識體系,你能夠本身搜索或者請教有經驗的人瞭解到。也就是你在學習以前把你要學的東西大概框架先搞懂,而後再去對應每個深刻的學習。你的學習計劃也就出來了。每學完一個地方你的潛意識就會給你反饋,又離目標進了一步,你的學習效率天然會提升,也會更有動力。隨着水平的提升,按期更新你的知識體系就行了。
對於編程學習來講,應用是很是重要的。知識的學習本質是要解決問題的。若是在學習的過程當中你能注重應用,那麼會讓你產生樂趣與知足感。
在你學習一個階段以後,能夠去找一些小的案例,涵蓋住學過的知識,而後本身動手仿造作出一個。不只複習了前一段的知識,有了做品還很大程度上增長了知足感,讓你更有學習的勁頭。
最後想談一下學習的態度:
每一個人都是急於求成
的,一些教程也很能抓住這個心理。你確定看過不少諸如幾個小時學會什麼
、幾天什麼從入門到精通
等等。可是很不幸告訴你,任何領域的高手都是須要一個長期投入的過程。而當你看到這裏的時候,我相信你是有信心堅持下去的,而當你已經堅持了幾個月了,好吧,你該上路了。