天天,100offer的HR羣都有人在吐槽招不到前端工程師。實話說對這些需求,Betty也無能爲力,由於在供不該求的前端招聘市場上,優秀的前端工程師纔是有話語權的那一方。前端
放眼全球,不只在國內的互聯網行業,在國外,前端工程師同樣是需求旺盛、供不該求的香餑餑。web
舉個例子,根據indeed.com抓取的數千家網站的職位顯示:目前前端的熱門崗位——「HTML5」是需求增加最快的開發崗位,在全部開發職位中排名第一,MongoDB和iOS緊隨其後位列第2、第三。算法
可見,HTML5能夠說是最熱門的前端崗位了,在2010年和2014年末有兩次爆發性增加,如今在美國的崗位需求甚至超過了iOS。數據庫
因此市場上優秀的前端工程師相對較缺乏,是一個世界性難題。編程
可能不少人認爲前端開發和web開發相似,而web開發已經有20多年的歷史,因此前端並非一個新領域。然而,前端工程師的概念中的「接口技術實現和用戶體驗做爲一個專業的工做領域」,卻無疑是很新的。大概幾年前,前端開發的技術增加迅猛,以下圖所示:後端
15年或更久之前,web的可視化設計和技術實現所須要的資源是平均分配的。隨着網站的發展——網站不只是一個登陸頁面,工程資源的需求愈來愈明顯。人們開始專門學習網站專用的JS、後端技術、UX、數據庫,甚至系統設計。瀏覽器
今天,一個像AirBnB/Facebook/Quora的Web應用程序,投入的工程資源比設計資源多得多。換句話說,現在,作出網頁的視覺設計比技術實現要更快,因此當今的web需求要求更多的工程師供應。緩存
很顯然,要處理大量的Web應用程序需求,技術任務就要進行分類,以便於多人同時處理網站請求。事實上如今已經不可能一我的快速地解決全部的技術細節了。安全
如今還有一類人是獨自處理一個Web應用程序的全部問題,即「全棧工程師」,可是優秀的全棧工程師一樣如大熊貓通常數量稀少。服務器
如今,一個創業公司想要成功,幾乎要覆蓋一個Web應用程序的諸多技術方面:前端、後臺、DBA、運營等。雖然已經有一些服務可讓企業購買登錄頁 面的前端模塊和組件;可是若是你想要創造一些真正的Web應用程序,除了求助前端工程師,別無他法,就像你要創立一個品牌你也繞不開請一位設計師同樣。
大多人都認爲前端開發是一個「相對於其餘模塊來講更簡單的領域」,在他們心中的前端工程師是這樣工做的:
一、把Photoshop文件、圖片或者線框作成一個頁面;
二、偶爾設計Photoshop文件、圖片或者線框;
三、用JS實現動畫、過渡效果;
四、用HTML和CSS編程,實現網頁的內容和形式。
事實上,前端工程師在作的是:
一、在設計師和工程師之間建立可視化的語言;
二、根據設計稿定義一組表明內容、品牌和功能的組件;
三、爲Web應用程序的框架、需求、可視化的語言和規格設定基準;
四、根據設備、瀏覽器、屏幕、動畫來劃分web應用的工做劃分;
五、用QA基準來保證指南來確保品牌忠誠度、代碼質量、產品標準;
六、調節Web應用程序的樣式,包括間距、字體、標題、圖標、佈局等等;
七、根據不一樣分辨率、橫屏豎屏等,調節Web應用程序的樣式;
八、標記 Web 應用程序,使之語義化,SEO 友好;
九、經過API獲取內容要考慮友好性、電池消耗性、設備和客戶端的特性;
十、開發客戶端要考慮動畫的流暢、延遲加載、交互、應用工做流程,大多數時間用來考慮漸進加強和向後兼容的標準;
十一、保證後臺鏈接安全,採起跨地資源共享( CORS )的程序考慮,防止跨站點腳本( XSS)和跨站點請求僞造( CSRF ) ;
十二、最重要的是,儘管有嚴格的期限、利益相關者的要求,以及設備的限制,不管如今仍是未來永遠是「客戶第一」。
爲了實現上述目標,前端工程師採用了從可視化到編程的多種工具 ,甚至有時要照顧市場、 UX 到內容tweakes等等。
這或許是難以招到優秀前端工程師最明顯的緣由。因爲前端工程師的入門門檻很是低,JS、CSS、HTML並非很難入門掌握的語言,彷佛只要花一點時間,誰均可以經過網上教程和書本學會它。對的,前端工程師市場就是被這些淺嘗輒止的傢伙搞壞的。
糟糕的前端工程師是這樣作事的:
一、濫用 JavaScript 庫,由於他們實際上並不了 JavaScript 的核心(e.g. 一切都用 jQuery);
二、濫用 JavaScript 插件,無節制的複用別人的代碼,哪怕本身根本讀不懂;
三、不看需求、設計,也不作比較或評價,就給 Web 應用程序添加 CSS 框架,卻只用到框架的一小部分;
四、認爲只要用了 CSS 框架,網站就是響應式的,或是對響應式設計的意義理解不到位;
五、一邊在說着「響應式 Web 設計」,卻對服務器端解決方案技術一無所知;
六、用 CSS 編程時不作預處理器、命名規範等;
七、忽視性能、內存泄露(並不理解內存泄露的真正含義),不會檢測代碼;
八、不會用指標衡量一個產品,或者這種指標旨在本身的電腦、瀏覽器、設備有效;
九、忽視 30 年來的軟件工程技術,閉門造車。
要知道,入門容易精通難,計算機和軟件的基礎對你用JS或瀏覽器編程都很是重要。web多是最有影響力的平臺和環境之一,在那裏執行的程序必須被當心對待。一位優秀的前端工程師不只要考慮web技術和語言,而且還要了解全部不一樣的組件、系統和概念。
如下是優秀的前端工程師在即時面對普通的任務也會作的事情(這纔是市場急需的前端):
一、DNS 解析,使用 CDN,把資源請求分散到多個域名上去;
二、理解 HTTP Headers (Expires、Cache-Control、If-Modified-Since)
三、Steve Souders 的全部高性能網頁優化規則(參考:High Performance Websites 一書)
四、如何解決 PageSpeed、YSlow、Chrome Dev Tools Audit、Chrome Dev Tools Timeline 等工具列出的全部問題;
五、什麼時候把任務傳到服務器,什麼時候適合傳到客戶端;
六、緩存,預取和延遲加載技術的使用;
七、原生 JavaScript,知道什麼時候從頭開始作,什麼時候參考別人的代碼,同時能夠評估這樣作的優缺點;
八、 最新的 MVC Javascript 庫知識以及用法;
九、CSS 標準的知識與用法;
十、JavaScript的計算機科學部分的知識(內存管理,垃圾收集算法等等)
換句話說,若是說精通HTML+CSS+JS,瞭解後端知識,只是60分的合格前端;那麼要想成爲受追捧、拿高薪的80分優秀前端,要對業務需求和、架構設計有真正的運用;而100分的頂級前端,則必需要可以兼顧技術和設計,更接近「之前端開發爲主的全棧工程師」了。
如今,前端工程師終於史無前例的在web中佔有了一席之地。隨着多設備、瀏覽器和Web標準的演變革命,前端正在成爲兼顧邏輯、性能、交互、體驗的綜合性崗位。
雖然如今互聯網行業廣泛缺乏前端工程師,可是咱們相信愈來愈多的人將會加入前端的大軍。不只是由於大多數前端工做提供的優渥薪水和辦公環境,也是由於web中的前端編程變得愈來愈有挑戰和意義。