新手自學前端的一些建議與總結

做爲文科專業畢業,無名校背景,無任何關係,沒有接受過任何專業培訓,徹底靠自學和看書看視頻作了五年前端,在外包公司,創業公司,BAT級公司再到新型互聯網公司都呆過,想結合本身的經歷談談對於自學前端的一些見解:css

學習大綱

關於技術棧學習,網上總會有各類討論,在此我就不詳述了,感興趣的話能夠看看github上的一份前端學習大綱:2016年前端知識學習大綱,這個基本能覆蓋絕大部分新手須要學習和掌握的內容,後面我更想聊聊本身對技術學習上的經驗歸結。html

有認同感

首先對於前端學習須要有認同感,關於這點很是很是很是重要,想必大部分人學前端的初衷是以爲前端相對於簡單,上手快也不須要學習算法,編譯原理,數據庫,操做系統,網絡原理都諸多基礎知識,所見即所得立刻就能開始幹活,並且外觀呈現和交互效果這類東西比較容易激發人的學習興趣,另外一種狀況是作後端,作客戶端,作產品的同窗以爲本身的發展遇到了瓶頸,轉作前端不管是從上手程度仍是快速出活等都相對容易,加上這幾年h5應用,webapp,微應用,小程序,混合app開發等各類新概念層出不窮,市場承認度也比較高,行業需求的水轉船高也讓前端的職位的一直供不該求,可是請不要由於以上的外在因素下降了自身的學習標準,前端開發作到後面仍然是軟件開發的一個工種,軟件技術的一些普世性標準放到這塊也一樣適用,好比基礎算法,編程語言,設計模式,工程管理,網絡知識等都是通用的,甚至這些基礎底蘊掌握的好壞會直接決定你後續的發展空間,因此請放棄前端=頁面仔這種幼稚的想法,努力提高本身的內功修煉。前端

與時俱進

前端是門一直在變化的工種,相對於服務端和客戶端的開發,不管是技術沉澱仍是框架的選用等業內都會有一套大體認同的標準,更多時候咱們是根據自身的產品類型和業務發展來作技術選型,可是前端則否則,這是爲數很少走的官方標準落實緩慢,民間標準層出不求,而後民間標準流行後再反推官方標準更新的技術路線,這就直接致使了好不容易學了點新技術標準卻苦於無合適的環境可使用,好不容易掌握了一個流行框架和工具而後隔年再看發現業內都不用了,不一樣的瀏覽器和軟件大廠紛紛推本身的特殊標準來佔據市場致使同一套標準下的代碼在不一樣的環境中還會有各類兼容性問題等各類囧境,這就要求做爲前端開發者天生就須要具有各類積極主動和開放包容的學習精神,多與業內的同行交流,多去關注下github上的一些火熱的項目,多去嘗試些新技術理念和調試一切的耐心。好比前幾年會寫jquery,瞭解CSS就能開始幹活,加配個grunt和less已經算是高配,可是如今咱們再看看,你要不整點node的基礎環境,不弄個npm和yarn來管理你的資源依賴,不整點單頁路由,不上點babel和typescript來預編譯下高級語法特性,不用點數據驅動和MVVM之類的框架,不來點redux,rx-js之類的編程模型,不整點webapck之類的依賴管理與打包工具,不上點mocha,jasmine之類的測試驅動開發框架等,你都很差意思說本身在作前端開發,誠然不少人都會說我只是想寫個頁面爲什麼要弄的這麼複雜,可是你們爲什麼不反思下咱們的頁面開發的工做模式和技術選型上是否是真的一直以來被咱們低估了纔會有如此大的偏見,何況如今前端開發的工做量已經不一樣往日,服務的接口日趨API化,各類處理業務和控制層等操做也在逐步往前端遷移,這也對咱們的工程化規模控制提供了更加嚴格的要求,而非以前的拼成各類腳本片斷;vue

海納百川

前端是門不斷借鑑的工做,這裏說的借鑑其實並不等於抄襲,而是指不斷在站在巨人的肩膀上創新的過程,若是來看今天js的發展。當年js的做者都不會想到本身當初只是設計用來驗證頁面表單的語言能發展到現在這個程度,可是隨着技術領域的不斷髮展,業內你們都比較公認的一些好的設計模式,架構理念其實也是不斷地被一些新型的js庫的做者所借鑑,好比當下最火的angularjs2,react,vue等,其中的不少數據更新策略,分層設計以及組件分層的思想其實在不少其餘語言框架的設計中早已體現,只是把這些概念帶到了js中再根據語言特色從新作了優化實現,好的技術理念與算法實際上是和語言無關的,因此多瞭解些通用的技術準則和最佳實踐才能不斷創新,否則的話永遠只是作API的調用黨和框架的追隨者,自身的發展就容易陷入迷茫期。node

有判斷力

前端發展到如今可謂層出不窮,百花齊放,可是如何選擇作適合本身項目的技術選型,這其實也是很是考驗每一個從業人員的能力,一方面團隊和我的須要成長,確定會願意在項目中去嘗試些新的技術框架和理念,另外一方面工做須要快速出活以及舊的業務須要平穩過渡,考慮到先後的銜接也不可能徹底棄舊的技術體系不顧,同時還須要考慮技術的穩定性以及後續的升級維護成本,第三方資源,社區活躍度以及生態發展環境等等,做爲前端從業者是須要你對本身選擇的結果負責的,因此咱們的指導原則應該是多考慮下本身以及團隊的能力,hold不hold住,若是出現了最壞的狀況該如何處理,若是出現了源碼級的bug改怎麼調試。遇到了文檔匱乏和團隊成員水平不一致該如何配合等等,這些都應該做爲你的技術選型的參考,而非單純的求新求酷,咱們不排斥新技術,也不輕易否定各類框架的優缺點,可是前提是請先多瞭解多思考,作最佳的選擇。react

以不變應萬變

萬變不離其宗,技術和基礎的沉澱才最重要,誠然各類理念和框架在不斷涌現,可是語言最本質的一些東西是不會變的,ecmascript的語言基礎特性,html的語義標準,css的各類特性,http協議,設計模式以及經常使用的頁面優化性能實現等等,這些最接近技術本質的東西是任何框架都取代不了的,因此時不時地回過頭來多多看看這些東西,能夠的話,本身也多寫點博客文章或者造個輪子,對於自身的提高也極其有用的。jquery

寫在後面

最後我想說的是若是條件容許的話,建議初學者仍是多去大公司鍛鍊鍛鍊或者多研究一些業內主流公司的標準,畢竟先以高標準來要求本身,即便客觀環境再怎麼惡劣也不至於徹底走偏,可是相反一開始就都是些野路子,徹底按着本身的主觀臆想和快速出活的想法去積累經驗,那樣每每容易陷入被動,後面再糾正回來不管是成本仍是時間損耗都是巨大的。git

相關文章
相關標籤/搜索