程序員的自我修養(yǎng) - 為什么整個互聯(lián)網(wǎng)行業(yè)都缺前端工程師壳炎?
現(xiàn)在,幾乎整個互聯(lián)網(wǎng)行業(yè)都缺前端工程師逼侦,不僅在剛起步的創(chuàng)業(yè)公司匿辩,上市公司乃至巨頭,這個問題也一樣存在榛丢。沒錯铲球,優(yōu)秀的前端工程師簡直比大熊貓還稀少。
每天晰赞,我司的 HR 群都有人在吐槽招不到前端工程師稼病。實話說對這些需求,我們也無能為力掖鱼,因為在供不應求的前端招聘市場上然走,優(yōu)秀的前端工程師才是有話語權(quán)的那一方。
放眼全球锨用,不僅在國內(nèi)的互聯(lián)網(wǎng)行業(yè)丰刊,在國外,前端工程師一樣是需求旺盛增拥、供不應求的香餑餑。
舉個例子寻歧,根據(jù) indeed.com 抓取的數(shù)千家網(wǎng)站的職位顯示:目前前端的熱門崗位——「HTML5」是需求增長最快的開發(fā)崗位掌栅,在所有開發(fā)職位中排名第一,MongoDB 和 iOS 緊隨其后位列第二码泛、第三猾封。
目前,HTML5 可以說是最熱門的前端崗位了噪珊,在 2010 年和 2014 年底有兩次爆發(fā)性增長晌缘,現(xiàn)在在美國的崗位需求甚至超過了 iOS齐莲。
但是,市場上優(yōu)秀的前端工程師卻相對較少磷箕,全世界范圍看都是個難題选酗。
原因一:前端相對來說是一個新領(lǐng)域,當今的 Web 需要更多的工程師
可能很多人認為前端開發(fā)和 Web 開發(fā)類似岳枷,而 Web 開發(fā)已經(jīng)有 20 多年的歷史芒填,所以前端并不是一個新領(lǐng)域。然而空繁,前端工程師的概念中的「接口技術(shù)實現(xiàn)和用戶體驗作為一個專業(yè)的工作領(lǐng)域」殿衰,卻無疑是很新的。大概幾年前盛泡,前端開發(fā)的技術(shù)增長迅猛闷祥,如下圖所示:
過去幾年前端工程師的可視化增長趨勢 by Google Trends
15 年或更久以前,Web 的可視化設計和技術(shù)實現(xiàn)所需要的資源是平均分配的傲诵。隨著網(wǎng)站的發(fā)展—網(wǎng)站不僅是一個登錄頁面蜀踏,工程資源的需求越來越明顯。人們開始專門學習網(wǎng)站專用的 JavaScript掰吕、后端技術(shù)果覆、UX、數(shù)據(jù)庫殖熟,甚至系統(tǒng)設計局待。
今天,一個像 Airbnb菱属、Facebook钳榨、Quora 的 Web 應用程序,投入的工程資源比設計資源多得多纽门。換句話說薛耻,如今,做出網(wǎng)頁的視覺設計比技術(shù)實現(xiàn)要更快赏陵,所以當今的市場需要更多的工程師饼齿。
現(xiàn)在,一位合格的前端工程師蝙搔,必須對視覺設計有興趣缕溉。
很顯然,要處理大量的 Web 應用程序需求吃型,技術(shù)任務就要進行分類证鸥,以便于多人同時處理網(wǎng)站請求。事實上現(xiàn)在已經(jīng)不可能一個人快速地解決所有的技術(shù)細節(jié)了。
現(xiàn)在還有一類人是獨自處理一個 Web 應用程序的所有問題枉层,即「全棧工程師」泉褐,但是優(yōu)秀的全棧工程師同樣如大熊貓一般數(shù)量稀少。
現(xiàn)在鸟蜡,一個創(chuàng)業(yè)公司想要成功膜赃,幾乎要覆蓋一個 Web 應用程序的諸多技術(shù)方面:前端、后臺矩欠、DBA财剖、運營等。雖然已經(jīng)有一些服務可以讓企業(yè)購買登陸頁面的前端模塊和組件癌淮;但是如果你想要創(chuàng)造一些真正的 Web 應用程序躺坟,除了求助前端工程師,別無他法乳蓄,就像你要創(chuàng)立一個品牌你也繞不開請一位設計師一樣咪橙。
原因二:對前端,普遍存在巨大的誤解虚倒,其實前端一點也不簡單
大多人都認為前端開發(fā)是一個「相對于其他模塊來說更簡單的領(lǐng)域」美侦,在他們心中的前端工程師是這樣工作的:
把 Photoshop 文件、圖片或者線框放進一個網(wǎng)頁魂奥;偶爾設計 Photoshop 文件菠剩、圖片或者線框;
用 Javascript 編程耻煤,為網(wǎng)頁制作動畫具壮、過渡效果;
用 HTML 和 CSS 編程哈蝇,確定網(wǎng)頁的內(nèi)容和布局棺妓。
事實上,前端工程師在做的是:
在設計師和工程師之間實現(xiàn)可視化的語言炮赦;用可視化的設計怜跑,定義一組代表內(nèi)容、品牌和功能的組件吠勘;
為 Web 應用程序的會話性芬、框架、需求看幼、可視化的語言和規(guī)格設定底線批旺;
定義 Web 應用程序的設備、瀏覽器诵姜、屏幕、動畫的范圍;
開發(fā)一個質(zhì)量保證指南來確保品牌忠誠度棚唆、代碼質(zhì)量暇赤、產(chǎn)品標準;
為 Web 應用程序設定適當?shù)男芯嘞琛⒆煮w鞋囊、標題、圖標瞎惫、填充等等溜腐;
為 Web 應用程序設定多種分辨率的圖像,設備為主的實體模型瓜喇,同時維護設計指南挺益;
標記 Web 應用程序,使之語義化乘寒,SEO 友好望众;
用一種友好的,耗電少的伞辛,設備和客戶端感知的方式連接 API烂翰,獲取信息;
開發(fā)客戶端代碼來顯示流暢的動畫蚤氏、過渡甘耿、延遲加載、交互竿滨、應用工作流程佳恬,大多數(shù)時間用來考慮漸進增強和向后兼容的標準;
保證后臺連接安全姐呐,采取跨域資源共享 (CORS) 的程序考慮殿怜,防止跨站點腳本 (XSS) 和跨站請求偽造 (CSRF) ;
最重要的是曙砂,盡管有嚴格的期限头谜、利益相關(guān)者的要求,以及設備的限制鸠澈,無論現(xiàn)在還是將來永遠是「客戶第一」柱告。
為了實現(xiàn)上述目標,前端工程師采用了從可視化到編程的多種工具 笑陈,甚至有時要照顧市場际度、 UX 到內(nèi)容改進等等。
原因三:大量糟糕前端工程師的存在涵妥,擾亂了市場
這或許是難以招到優(yōu)秀前端工程師最明顯的原因乖菱。由于前端工程師的入門門檻非常低, JavaScript、CSS鹉勒、HTML 并不是很難入門掌握的語言,似乎只要花一點時間吵取,誰都可以通過網(wǎng)上教程和書本學會它。對的皮官,前端工程師市場就是被這些淺嘗輒止的家伙搞壞的。
糟糕的前端工程師是這樣做事的:
濫用 JavaScript 庫捺氢,因為他們實際上并不了 JavaScript 的核心(e.g. 一切都用 jQuery);濫用 JavaScript 插件讯沈,無節(jié)制的復用別人的代碼郁岩,哪怕自己根本讀不懂缺狠;
不看需求、設計挤茄,也不做比較或評價,就給 Web 應用程序添加 CSS 框架穷劈,卻只用到框架的一小部分笼恰;
認為只要用了 CSS 框架,網(wǎng)站就是響應式的歇终,或是對響應式設計的意義理解不到位社证;
一邊在說著「響應式 Web 設計」,卻對服務器端解決方案技術(shù)一無所知评凝;
用 CSS 編程時不做預處理器追葡、命名規(guī)范等;
忽視性能奕短、內(nèi)存泄露(并不理解內(nèi)存泄露的真正含義)宜肉,不會檢測代碼;
不會用指標衡量一個產(chǎn)品翎碑,或者這種指標旨在自己的電腦谬返、瀏覽器、設備有效日杈;
忽視 30 年來的軟件工程技術(shù)遣铝,閉門造車佑刷。
要知道,入門容易精通難翰蠢,計算機和軟件的基礎(chǔ)對你用 JavaScript 或瀏覽器編程都非常重要项乒。Web 可能是最有影響力的平臺和環(huán)境之一啰劲,在那里執(zhí)行的程序必須被小心對待梁沧。一位優(yōu)秀的前端工程師不僅要考慮 Web 技術(shù)和語言,并且還要了解所有不同的組件蝇裤、系統(tǒng)和概念廷支。
以下是優(yōu)秀的前端工程師在即時面對普通的任務也會做的事情(這才是市場急需的前端):
DNS 解析,使用 CDN栓辜,把資源請求分散到多個域名上去恋拍;理解 HTTP Headers (Expires、Cache-Control藕甩、If-Modified-Since)
Steve Souders 的所有高性能網(wǎng)頁優(yōu)化規(guī)則(參考:High Performance Websites 一書)
如何解決 PageSpeed施敢、YSlow、Chrome Dev Tools Audit狭莱、Chrome Dev Tools Timeline 等工具列出的所有問題僵娃;
何時把任務傳到服務器,何時適合傳到客戶端腋妙;
緩存默怨,預取和延遲加載技術(shù)的使用;
原生 JavaScript骤素,知道何時從頭開始做匙睹,何時參考別人的代碼,同時可以評估這樣做的優(yōu)缺點济竹;
最新的 MVC Javascript 庫知識以及用法痕檬;
CSS 標準的知識與用法;
JavaScript的計算機科學部分的知識(內(nèi)存管理送浊,垃圾收集算法等等等等)
換句話說梦谜,如果說掌握(或者某些簡歷里自稱的精通) HTML+CSS+JavaScript罕袋,了解后端知識,只是 60 分的合格前端朵夏;那么要想成為受追捧榆纽、拿高薪的 80 分優(yōu)秀前端捏肢,要對業(yè)務需求和鸵赫、架構(gòu)設計有真正的運用躏升;而 100 分的頂級前端,則必須要能夠兼顧技術(shù)和設計膨疏,更接近「以前端開發(fā)為主的全棧工程師」了。
100offer 說:市場不是缺少前端佃却,而是缺少優(yōu)秀的前端工程師
現(xiàn)在,前端工程師終于前所未有的在 Web 中占有了一席之地复凳。隨著多設備育八、瀏覽器和 Web 標準的演變革命丘逸,前端正在成為兼顧邏輯、性能深纲、交互湃鹊、體驗的綜合性崗位。
雖然現(xiàn)在互聯(lián)網(wǎng)行業(yè)普遍缺少前端工程師币呵,但是我們相信越來越多的人將會加入前端的大軍。不僅是因為大多數(shù)前端工作提供的優(yōu)渥薪水和辦公環(huán)境芯义,也是因為 Web 中的前端編程變得越來越有挑戰(zhàn)和意義扛拨。
最后举塔,分享一組 3/4 月的 100offer 拍賣數(shù)據(jù):
前端工程師人均收獲 8.2 個面試機會求泰,已入職的前端工程師平均薪資漲幅達39%渴频。其中北启,前端 Offer 之王共收獲 47 個 offer,最高 offer 薪水 38k*16 聊替,某電商公司開出的培廓。
加油吧肩钠,前端暂殖。
(分享自知乎網(wǎng))
http://zhuanlan.zhihu.com/netjob/20037401