前端代碼運行在瀏覽器之上,並不和操做系統耦合,就像java運行在jvm同樣,都是在平臺之上,而平臺是能夠作移植和適配的。前端這些年的發展,總體能夠分爲兩方面,平臺之上的前端發展,和平臺自己的發展。前端
前端代碼的運行平臺如今不僅限於pc端瀏覽器、移動端瀏覽器,也能夠是app中的hybrid的頁面,能夠是node上的後端或者作工程化的代碼,能夠是electron作的桌面端,還能夠是weex、rn等經過打包後運行在Android和ios上的原生應用,甚至是嵌入式的應用。這些都是基於js引擎和渲染引擎作封裝和擴展而實現的前端代碼的運行平臺。vue
平臺之上的前端發展包括js自己es六、es7的不斷演進,包括vue、angular、react等的mvvm和組件化,由於有了虛擬dom而實現了平臺無關。這些代碼是能夠運行在各類平臺和環境的,對應的技術也更加的通用和核心。java
平臺自己提供的api因環境的不一樣而不一樣,不須要過分深刻細節,只要對總體的思路和脈絡有所掌握和理解,具體開發的時候能夠定位到文檔中對應的位置就能夠了。而平臺之上的前端核心技術,纔是咱們的核心技能和競爭力,包括對js語言包括es六、es7等的熟練度,包括對vue、react、angular自己機制和基於這些機制封裝組件的掌握等。node
這兩部分代碼(平臺無關的代碼和與具體平臺耦合的代碼)會經過架構來合理的有機的組合成一體,架構的基礎也就是對這兩部分的理解和掌握,這時候你也要學習一些設計模式或函數式等組織代碼的思想,才能設計出易於理解和維護,易於迭代和擴展的優雅架構。react
前端這些年風起雲涌、百花齊放,不能一鍋端的所有學習,工做之餘很難有那個精力,咱們主要要作的就是對核心部分的語言和框架還有架構更好地掌握,對平臺的特性和能力還有機制有總體的理解就夠了。新的庫或框架分門別類的層次化的融入到你已有的知識體系中去。前端在變,認知體系的骨架不變。ios
面試問兩方面,一方面是你的項目經歷,主要是其中的純技術和一部分業務的技術方案。另外一方面就是技術自己了,包括語言的基礎、邏輯能力、架構思想、對框架的掌握程度等,主要就是一些具體的代碼和抽象的思想。es6
因此,不能過分關注業務,多關注技術自己,項目是一方面,技術自己的成長更重要。面試
若是能作一些沉澱會更好,若是有技術博客或者開源項目,面試成功率會增長,由於這些可以更全面的看到你的實力,光靠面試是不行的。並且作這些的過程當中也能理清思路,幫你更好的掌握,並且持久化也方面之後查看,這些是伴隨你整個職業生涯的,與公司無關。後端
還有,看文檔很重要,由於你全部的使用方式全部的業務代碼的組織都與框架相關,你要優化也要對框架有全面掌握,最起碼知道有什麼東西。並且對框架了解以後,你也能區分出什麼代碼應該使用什麼封裝形式,好比dom操做的邏輯是應該放到組件裏仍是封裝成指令等。設計模式
固然,若是你到了管理層,業務的情況直接關係到你的kpi,這時候你就要把更多精力放在業務上了,之後你面leader崗也更可能是管理技巧和業務和一部分技術的考察。但前期仍是應該以提高技術,積累項目經驗爲主,其中項目經驗就是用技術解決業務問題的方案的經驗。
最重要的是要主動的去思考和作事,而不是被動的接受需求和技術方案,被動的工做,被動工做的叫作碼農。
要有本身的想法,不管是否成熟或正確,好比你要作產品的這個功能,你會怎麼設計流程,你若是本身作ui,你會怎麼設計,你若是作mvvm框架,你的思路是什麼。主動的思考,用你的思路去整合接受到的信息,你就會造成本身的觀點和見解,並且一旦有一些你驗證後發現是正確的,那麼你對它的掌握程度會很是高。
想法的表達有各類形式,聊天、文章、具體的代碼等等,輸出和表達的過程是理清思路、疏通細節以及把你的想法傳遞出去的過程,也頗有必要。
總之,主動思考和作事,不斷輸出和接受反饋,才能變得更有主見,對技術有更深刻的理解,慢慢也就會擁有話語權。
前端從小白到架構須要接觸和學習大量的知識,須要經歷大量的項目實踐,知識和技術方面須要體系化的去整理和擴展,才能在前端的發展洪流中游刃有餘。對於項目經驗要區分出那些是通用的技術,那些是用技術解決業務問題的方案,這些你的經驗才真正的有價值且可複用。
若是說上面兩點是術的話,主動的態度纔是道。惟有主動的學習和思考,才能對技術有更加深刻的理解和掌握,也會更有主見,有鞭辟入裏的觀點,這種態度最終會讓你造成上面所說的知識體系和對大量解決業務問題的技術方案。
有了體系化的前端技術和大量針對業務問題的技術方案的積累以後,你是作全局的架構,仍是作細節的底層實現,whatever,隨你喜歡。