首頁(yè)技術(shù)文章正文

web前端開(kāi)發(fā)培訓(xùn)之為什么整個(gè)互聯(lián)網(wǎng)行業(yè)都缺前端工程師?

更新時(shí)間:2017-06-28 來(lái)源:黑馬程序員前端與移動(dòng)開(kāi)發(fā)學(xué)院 瀏覽量:

現(xiàn)在,幾乎整個(gè)互聯(lián)網(wǎng)行業(yè)都缺前端工程師,不僅在剛起步的創(chuàng)業(yè)公司,對(duì)上市公司乃至巨頭這個(gè)問(wèn)題也一樣存在。沒(méi)錯(cuò),優(yōu)秀的前端工程師簡(jiǎn)直比大熊貓還稀少。

每天,100offer的HR群都有人在吐槽招不到前端工程師。實(shí)話說(shuō)對(duì)這些需求,Betty也無(wú)能為力,因?yàn)樵诠┎粦?yīng)求的前端招聘市場(chǎng)上,優(yōu)秀的前端工程師才是有話語(yǔ)權(quán)的那一方。不僅在國(guó)內(nèi)的互聯(lián)網(wǎng)行業(yè),在國(guó)外,前端工程師一樣是需求旺盛、供不應(yīng)求的香餑餑。

舉個(gè)例子,根據(jù)indeed.com抓取的數(shù)千家網(wǎng)站的職位顯示:目前前端的熱門(mén)崗位——“HTML5”是需求增長(zhǎng)最快的開(kāi)發(fā)崗位,在所有開(kāi)發(fā)職位中排名第一,MongoDB和iOS緊隨其后位列第二、第三。



  
可見(jiàn),HTML5可以說(shuō)是最熱門(mén)的前端崗位了,在2010年和2014年底有兩次爆發(fā)性增長(zhǎng),現(xiàn)在在美國(guó)的崗位需求甚至超過(guò)了iOS。所以市場(chǎng)上優(yōu)秀的前端工程師相對(duì)較缺少,是一個(gè)世界性難題。

原因一:前端相對(duì)來(lái)說(shuō)是一個(gè)新領(lǐng)域,當(dāng)今的web需求要求更多的工程師供應(yīng)

可能很多人認(rèn)為前端開(kāi)發(fā)和Web開(kāi)發(fā)類似,而Web開(kāi)發(fā)已經(jīng)有20多年的歷史,所以前端并不是一個(gè)新領(lǐng)域。然而,前端工程師的概念中的“接口技術(shù)實(shí)現(xiàn)和用戶體驗(yàn)作為一個(gè)專業(yè)的工作領(lǐng)域”,卻無(wú)疑是很新的。大概幾年前,前端開(kāi)發(fā)的技術(shù)增長(zhǎng)迅猛,如下圖所示:




過(guò)去幾年前端工程師的可視化增長(zhǎng)趨勢(shì) by Google Trends

15年或更久以前,Web的可視化設(shè)計(jì)和技術(shù)實(shí)現(xiàn)所需要的資源是平均分配的。隨著網(wǎng)站的發(fā)展——網(wǎng)站不僅是一個(gè)登錄頁(yè)面,工程資源的需求越來(lái)越明顯。人們開(kāi)始專門(mén)學(xué)習(xí)網(wǎng)站專用的JS、后端技術(shù)、UX、數(shù)據(jù)庫(kù),甚至系統(tǒng)設(shè)計(jì)。

今天,一個(gè)像AirBnB/Facebook/Quora的Web應(yīng)用,投入的工程資源比設(shè)計(jì)資源多得多。換句話說(shuō),如今,做出網(wǎng)頁(yè)的視覺(jué)設(shè)計(jì)比技術(shù)實(shí)現(xiàn)要更快,所以當(dāng)今的web需求要求更多的工程師供應(yīng)。




現(xiàn)在,一位合格的前端工程師,必須對(duì)視覺(jué)設(shè)計(jì)有興趣(或者樂(lè)于做一個(gè)受虐狂▼)。



很顯然,要處理大量的Web應(yīng)用程序需求,技術(shù)任務(wù)就要進(jìn)行分類,以便于多人同時(shí)處理網(wǎng)站請(qǐng)求。事實(shí)上現(xiàn)在已經(jīng)不可能一個(gè)人快速地解決所有的技術(shù)細(xì)節(jié)了。



現(xiàn)在還有一類人是獨(dú)自處理一個(gè)Web應(yīng)用程序的所有問(wèn)題,即”全棧工程師”,但是優(yōu)秀的全棧工程師同樣如大熊貓一般數(shù)量稀少。

現(xiàn)在,一個(gè)創(chuàng)業(yè)公司想要成功,幾乎要覆蓋一個(gè)Web應(yīng)用程序的諸多技術(shù)方面:前端、后臺(tái)、DBA、運(yùn)營(yíng)等。雖然已經(jīng)有一些服務(wù)可以讓企業(yè)購(gòu)買登陸頁(yè)面的前端模塊和組件;但是如果你想要?jiǎng)?chuàng)造一些真正的Web應(yīng)用程序,除了求助前端工程師,別無(wú)他法,就像你要?jiǎng)?chuàng)立一個(gè)品牌你也繞不開(kāi)請(qǐng)一位設(shè)計(jì)師一樣。

原因二:對(duì)前端,普遍存在巨大的誤解,其實(shí)前端一點(diǎn)也不簡(jiǎn)單

大多人都認(rèn)為前端開(kāi)發(fā)是一個(gè)“相對(duì)于其他模塊來(lái)說(shuō)更簡(jiǎn)單的領(lǐng)域”,在他們心中的前端工程師是這樣工作的:

把Photoshop文件、圖片或者線框放進(jìn)一個(gè)網(wǎng)頁(yè);

偶爾設(shè)計(jì)Photoshop文件、圖片或者線框;

用JS編程,為網(wǎng)頁(yè)制作動(dòng)畫(huà)、過(guò)渡效果;

用HTML和CSS編程,確定網(wǎng)頁(yè)的內(nèi)容和形式。

事實(shí)上,前端工程師在做的是:

在設(shè)計(jì)師和工程師之間創(chuàng)建可視化的語(yǔ)言;

用可視化的設(shè)計(jì),定義一組代表內(nèi)容、品牌和功能的組件;

為Web應(yīng)用程序的公約、框架、需求、可視化的語(yǔ)言和規(guī)格設(shè)定底線;

定義Web應(yīng)用程序的設(shè)備、瀏覽器、屏幕、動(dòng)畫(huà)的范圍;

開(kāi)發(fā)一個(gè)質(zhì)量保證指南來(lái)確保品牌忠誠(chéng)度、代碼質(zhì)量、產(chǎn)品標(biāo)準(zhǔn);

為Web應(yīng)用程序設(shè)定適當(dāng)?shù)男芯?、字體、標(biāo)題、圖標(biāo)、余糧、填充等等;

為Web應(yīng)用程序設(shè)定多種分辨率的圖像,設(shè)備為主的實(shí)體模型,同時(shí)維護(hù)設(shè)計(jì)指南;

用account semantics、accessibility、SEO、schemas、microformats 標(biāo)記Web應(yīng)用程序;

用一種友好的,消耗小的,設(shè)備和客戶端感知的方式連接API,獲取內(nèi)容;

開(kāi)發(fā)客戶端代碼來(lái)顯示流暢的動(dòng)畫(huà)、過(guò)渡、延遲加載、交互、應(yīng)用工作流程,大多數(shù)時(shí)間用來(lái)考慮漸進(jìn)增強(qiáng)和向后兼容的標(biāo)準(zhǔn);

保證后臺(tái)連接安全,采取跨地資源共享(CORS)的程序考慮,防止跨站點(diǎn)腳本(XSS)和跨站點(diǎn)請(qǐng)求偽造(CSRF );

最重要的是,盡管有嚴(yán)格的期限、利益相關(guān)者的要求,以及設(shè)備的限制,無(wú)論現(xiàn)在還是將來(lái)永遠(yuǎn)是“客戶第一”。

為了實(shí)現(xiàn)上述目標(biāo),前端工程師采用了從可視化到編程的多種工具 ,甚至有時(shí)要照顧市場(chǎng)、 UX 到內(nèi)容tweakes等等。

原因三:大量糟糕前端工程師的存在,擾亂了市場(chǎng)

這或許是難以招到優(yōu)秀前端工程師最明顯的原因。由于前端工程師的入門(mén)門(mén)檻非常低,JS、CSS、HTML并不是很難入門(mén)掌握的語(yǔ)言,似乎只要花一點(diǎn)時(shí)間,誰(shuí)都可以通過(guò)網(wǎng)上教程和書(shū)本學(xué)會(huì)它,前端工程師市場(chǎng)就是被這些淺嘗輒止的家伙搞壞的。

糟糕的前端工程師是這樣做事的:

濫用JS庫(kù),因?yàn)樗麄儗?shí)際上并不了JS的內(nèi)部(e.g. 一切都用jQuery);

濫用JS插件,抄別人的代碼哪怕自己根本讀不懂(e.g.jQuery.doParallaxPls.js);

給Web應(yīng)用程序添加CSS框架,卻只用到CSS/JS的5%,沒(méi)有看到任何的需求、設(shè)計(jì)或者比較和評(píng)價(jià);

認(rèn)為只要添加了CSS框架,網(wǎng)站就可以“有求必應(yīng)”;

一邊在說(shuō)著“響應(yīng)式Web設(shè)計(jì)”,卻對(duì)服務(wù)器端技術(shù)一無(wú)所知;

用CSS編程時(shí)不管預(yù)處理器、命名規(guī)范等,卻用不合適的selector/ids/magic numbers等;

忽視表現(xiàn)、內(nèi)存泄露(并不理解內(nèi)存泄露的真正含義),不會(huì)檢測(cè)代碼;

不會(huì)用指標(biāo)衡量一個(gè)產(chǎn)品,或者這種指標(biāo)旨在自己的電腦、瀏覽器、設(shè)備有效;

忽視軟件技術(shù)。

要知道,入門(mén)容易精通難,計(jì)算機(jī)和軟件的基礎(chǔ)對(duì)你用JS或?yàn)g覽器編程都非常重要。Web可能是最有影響力的平臺(tái)和環(huán)境之一,在那里執(zhí)行的程序必須被小心對(duì)待。一位優(yōu)秀的前端工程師不僅要考慮Web技術(shù)和語(yǔ)言,并且還要了解所有不同的組件、系統(tǒng)和概念。

以下是優(yōu)秀的前端工程師在即時(shí)面對(duì)普通的任務(wù)也會(huì)做的事情(這才是市場(chǎng)急需的前端):

DNS解析、使用CDN和關(guān)于multiple Hostnames as part of resources request;

HTTP Headers (Expires, Cache-Control, If-Modified-Since);

Steve Souders的所有規(guī)則(High Performance Websites);

如何解決PageSpeed, YSlow, Chrome Dev Tools Audit, Chrome Dev Tools Timeline顯示的所有問(wèn)題;

何時(shí)把任務(wù)傳到服務(wù)器和客戶端;

緩存,預(yù)取和負(fù)荷技術(shù)的使用;

Native JS,知道何時(shí)從頭開(kāi)始做,何時(shí)查找別人的代碼,同時(shí)可以評(píng)估這樣做的優(yōu)缺點(diǎn);

modern MVC Javascript libraries (e.g. AngularJS, EmberJS, ReactJS), graphic libraries(e.g. D3, SnapSVG), DOM manipulation libraries (e.g. jQuery, Zepto), lazy loading or package management libraries (e.g. RequireJS, CommonJS), task managers (e.g. Grunt, Gulp), package managers (e.g. Bower, Componentjs)and testing (e.g. Protractor, Selenium)的相關(guān)知識(shí)和用法;

CSS標(biāo)準(zhǔn)、modern conventions、 strategies (e.g. BEM, SMACSS, OOCSS)的知識(shí)和用法;

JS的電腦知識(shí)(內(nèi)存管理,單線程的性質(zhì),垃圾收集算法,超時(shí),范圍,提升,模式)。

換句話說(shuō),如果說(shuō)精通HTML+CSS+JS,了解后端知識(shí),只是60分的合格前端;那么要想成為受追捧、拿高薪的80分優(yōu)秀前端,要對(duì)業(yè)務(wù)需求和、架構(gòu)設(shè)計(jì)有真正的運(yùn)用;而100分的頂級(jí)前端,則必須要能夠兼顧技術(shù)和設(shè)計(jì),更接近“以前端開(kāi)發(fā)為主的全棧工程師”了。

市場(chǎng)不是缺少前端,而是缺少優(yōu)秀的前端工程師

現(xiàn)在,前端工程師終于前所未有的在Web中占有了一席之地。隨著多設(shè)備、瀏覽器和Web標(biāo)準(zhǔn)的演變革命,前端正在成為兼顧邏輯、性能、交互、體驗(yàn)的綜合性崗位。

雖然現(xiàn)在互聯(lián)網(wǎng)行業(yè)普遍缺少前端工程師,但是我們相信越來(lái)越多的人將會(huì)加入前端的大軍。不僅是因?yàn)榇蠖鄶?shù)前端工作提供的優(yōu)渥薪水和辦公環(huán)境,也是因?yàn)閃eb中的前端編程變得越來(lái)越有挑戰(zhàn)和意義。

最后,分享一組3~4月的100offer拍賣數(shù)據(jù),給前端們鼓鼓勁:

前端工程師人均收獲8.2個(gè)面試機(jī)會(huì),已入職的前端工程師平均薪資漲幅達(dá)39%。其中,前端offer之王共收獲47個(gè)offer,最高offer薪水38k*16 ,開(kāi)自某土豪電商。

加油吧,前端!




本文版權(quán)黑馬程序員web前端開(kāi)發(fā)培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處,謝謝!
作者:黑馬程序員web前端開(kāi)發(fā)培訓(xùn)學(xué)院
首發(fā):http://web.itheima.com/
分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!