為什麼整個互聯網行業都缺前端工程師?

来源:http://www.cnblogs.com/qianduantuanzhang/archive/2017/10/27/7745443.html
-Advertisement-
Play Games

為什麼整個互聯網行業都缺前端工程師? 為什麼整個互聯網行業都缺前端工程師? 為什麼整個互聯網行業都缺前端工程師? 前端工程師的缺乏問題幾乎蔓延到整個互聯網行業,從剛起步的創業公司,到上市公司乃至巨頭,這個問題都存在著。沒錯,優秀的前端工程師簡直比大熊貓還稀少。 每天,100offer 的 HR 群都 ...


為什麼整個互聯網行業都缺前端工程師?
為什麼整個互聯網行業都缺前端工程師?

為什麼整個互聯網行業都缺前端工程師?

前端工程師的缺乏問題幾乎蔓延到整個互聯網行業,從剛起步的創業公司,到上市公司乃至巨頭,這個問題都存在著。沒錯,優秀的前端工程師簡直比大熊貓還稀少。

每天,100offer 的 HR 群都有人在吐槽招不到靠譜的前端工程師。實話說對這些需求,100offer 也無能為力:在供不應求的前端招聘市場上,優秀的前端工程師才是有話語權的那一方。

在國外,前端工程師一樣是需求旺盛、供不應求的香餑餑。

舉個例子,根據 http://indeed.com** 抓取的數千家網站的職位顯示:目前前端的熱門崗位——「HTML5」是需求增長最快的開發崗位,在所有開發職位中排名第一,MongoDB 和 iOS 緊隨其後位列第二、第三。

HTML5 可以說是最熱門的前端崗位了,在 2010 年和 2014 年底有兩次爆發性增長,現在在美國的崗位需求甚至超過了iOS。
市場上優秀的前端工程師相對較缺少,是一個世界性難題。

原因一:前端相對來說是一個新領域,當今的web需求要求更多的工程師供應

可能很多人認為前端開發和 web 開發類似,而 web 開發已經有20多年的歷史,所以前端並不是一個新領域。然而,前端工程師的概念中的「介面技術實現和用戶體驗作為一個專業的工作領域」,卻無疑是很新的。大概幾年前,前端開發的技術增長迅猛,如下圖所示:


過去幾年前端工程師的可視化增長趨勢 by Google Trends
至少15年以前,web 的視覺設計和技術實現所需要的資源是平均分配的。隨著網站的發展——網站不僅是一個登錄頁面,工程資源的需求越來越明顯。人們開始專門學習網站專用的 JS、後端技術、UX、資料庫,甚至系統設計。

今天,一個像 AirBnB/Facebook/Quora 的 Web 應用程式,投入的工程資源比設計資源多得多。換句話說,如今,做出網頁的視覺設計比技術實現要更快,所以當今的web需求要求更多的工程師供應。
現在,一位合格的前端工程師,必須對視覺設計有興趣(或者樂於做一個受虐狂▼)。

很顯然,要處理大量的 Web 應用程式需求,技術任務就要進行分類,以便於多人同時處理網站請求。事實上現在已經不可能一個人快速地解決所有的技術細節了。

 

現在還有一類人是獨自處理一個 Web 應用程式的所有問題,即「全棧工程師」,但是優秀的全棧工程師同樣如大熊貓一般數量稀少。


現在,一個創業公司想要成功,幾乎要覆蓋一個 Web 應用程式的諸多技術方面:前端、後臺、DBA、運營等。雖然已經有一些服務可以讓企業購買登陸頁面的前端模塊和組件;但是如果你想要創造一些真正的 Web 應用程式,除了求助前端工程師,別無他法,就像你要創立一個品牌你也繞不開請一位設計師一樣。(web前端學習交流群:328058344 禁止閑聊,非喜勿進!)

原因二:對前端,普遍存在巨大的誤解,其實前端一點也不簡單

大多人都認為前端開發是一個「相對於其他技術來說更簡單的技術」,在他們心中的前端工程師是這樣工作的:

  1. 把 Photoshop 文件、圖片或者線框放進一個網頁;
  2. 偶爾設計 Photoshop 文件、圖片或者線框;
  3. 用 JS 編程,為網頁製作動畫、過渡效果;
  4. 用 HTML 和 CSS 編程,確定網頁的內容和形式。

事實上,前端工程師在做的是:

  1. 在設計師和工程師之間創建可視化的語言;
  2. 用可視化的設計,定義一組代表內容、品牌和功能的組件;
  3. 為 Web 應用程式的公約、框架、需求、可視化的語言和規格設定底線;
  4. 定義 Web 應用程式的設備、瀏覽器、屏幕、動畫的範圍;
  5. 開發一個質量保證指南來確保品牌忠誠度、代碼質量、產品標準;
  6. 為 Web 應用程式設定適當的行距、字體、標題、圖標、邊距、填充等等;
  7. 為 Web 應用程式設定多種解析度的圖像,設備為主的實體模型,同時維護設計指南;
  8. 用 account semantics, accessibility, SEO, schemas ,microformats 標記 Web 應用程式;
  9. 用一種友好的,消耗小的,設備和客戶端感知的方式連接 API,獲取內容;
  10. 開發客戶端代碼來顯示流暢的動畫、過渡、延遲載入、交互、應用工作流程,大多數時間用來考慮漸進增強和向後相容的標準;
  11. 保證後臺連接安全,採取跨地資源共用(CORS)的程式考慮,防止跨站點腳本(XSS)和跨站點請求偽造(CSRF) ;
  12. 最重要的是,儘管有嚴格的期限、利益相關者的要求,以及設備的限制,無論現在還是將來永遠是「客戶第一」。

為了實現上述目標,前端工程師採用了從可視化到編程的多種工具 ,甚至有時要照顧市場、 UX 到內容等等。

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

這或許是難以招到優秀前端工程師最明顯的原因。由於前端工程師的入門門檻非常低,JS、CSS、HTML並不是很難入門掌握的語言,似乎只要花一點時間,無論是誰,都可以通過網上教程或者書本入門。對的,前端工程師市場就是被這些淺嘗輒止的家伙搞壞的。
糟糕的前端工程師:

  1. JavaScript 類庫亂用,對 JavaScript 本身並不瞭解,什麼地方都用 jQuery;
  2. 濫用 JavaScript 插件,看都不看看就把別人的代碼拿過來用,比如說;
  3. 不看需求,不做任何的比較和測試,就把CSS 框架加到項目中,但只用了其中 5% 的功能;
  4. 認為添加個 CSS Framework,網站就可以變成“響應式的”,或者 響應式就像是一些小作料,隨便就可以加入到一個網頁應用中;
  5. 嘴上喊著“響應式的 Web 設計”,但服務端技術一點都不懂;
  6. 編寫的 CSS 沒有任何規範標準,不使用任何預處理器,也沒有最佳實踐。CSS 代碼中充滿了過度使用的選擇器、ID、神奇的數字以及 !important;
  7. 不關心代碼的性能和記憶體泄露(什麼是真正的記憶體泄露也不清楚),不會對代碼進行性能測試;
  8. 對產品沒有任何的衡量指標,或者把“在我的電腦/瀏覽器/移動設備上可以工作”為指標;
  9. 忽視30年的軟體工程實踐,毫無章法的開發軟體。

要知道,入門容易精通難,電腦和軟體的基礎對你用 JS 或瀏覽器編程都非常重要。web 可能是最有影響力的平臺和環境之一,在那裡執行的程式必須被小心對待。一位優秀的前端工程師不僅要考慮 web 技術和語言,並且還要瞭解所有不同的組件、系統和概念。

頂級前端工程師需要具備的經驗和最佳實踐(這才是市場急需的前端):

  1. 瞭解 DNS 解析,充分利用 CDN,使用多個功能變數名稱來完成資源的請求以縮短載入時間;
  2. 設置 HTTP Headers(Expires, Cache-Control, If-Modified-Since);
  3. 遵循 Steve Souders 給出的全部規則(High Performance Websites)
  4. 知道如何解決 PageSpeed、YSlow、Chrome Dev Tools Audit、Chrome Dev Tools Timeline 顯示的所有問題;
  5. 知道什麼任務該放在服務端,什麼任務該放在客戶端;
  6. 知道使用緩存,DNS 預取和資源預載入技巧;
  7. 精通 JavaScript,知道何時自己寫何時借組別人的框架或代碼,優劣明辨;
  8. 熟練使用現代 MVC JavaScript 框架(例如 AngularJS EmberJS React 等),圖形庫(D3、SnapSVG 等),DOM 操作類庫(jQuery、Zepto 等),惰性載入或者模塊管理類庫(例如 RequireJS、CommonJS 等),任務調用工具(例如 Grunt Gulp 等),包管理工具(Bower Componentjs)以及測試工具(Protractor、Selenium 等);
  9. 掌握圖片的格式,每種格式的優點,適用的場景;知道圖片優化技巧以及載入策略(雪碧圖、懶載入、緩存刷新以及 PNG 交錯);
  10. 熟悉 CSS 標準、最新的轉換工具積極策略規範(比如 BEM、SMACSS、OOCSS 等);
  11. JavaScript 的電腦科學(記憶體管理、單進程特性、垃圾回收演算法、定時器、作用域、提升以及設計模式)。

換句話說,如果說精通 HTML+CSS+JS,瞭解後端知識,只是60分的合格前端;那麼要想成為受追捧、拿高薪的80分優秀前端,要對業務需求和、架構設計有真正的運用;而100分的頂級前端,則必須要能夠兼顧技術和設計,更接近「以前端開發為主的全棧工程師」了。

市場不是缺少前端,而是缺少優秀的前端工程師

現在,前端工程師終於在 web 中占有了一席之地。隨著多設備、瀏覽器和Web標準的演變革命,前端正在成為兼顧邏輯、性能、交互、體驗的綜合性崗位。
雖然現在互聯網行業普遍缺少前端工程師,但是我們相信越來越多的人將會加入前端的大軍。不僅是因為大多數前端工作提供的優渥薪水和辦公環境,也是因為web中的前端編程變得越來越有挑戰和意義。
最後,分享一組2015年3~4月跳槽高峰期的100offer拍賣數據,給前端們鼓鼓勁:
前端工程師人均收穫8.2個面試機會,已入職的前端工程師平均薪資漲幅達39%。其中,前端offer之王共收穫47個offer,最高offer薪水38k*16 ,開自某土豪電商。
加油吧,前端!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、前言 最近重感冒發燒,媽蛋好難受,請假了3天,駕校也沒去,簡直僵硬!今天繼續WebGL的學習。 二、正文 A. GLSL支持兩種數據值類型: B. [] 運算符 []運算符通過數組下標來訪問矢量或矩陣的元素,例: float m23 = m4[1][2]; m4的第2列中的第3個元素 C. 變數 ...
  • HTML代碼: JS代碼: 以上的就是實現 隱藏/顯示 效果的大概流程,因為本人是新手有些不完美的地方還請多多包涵。 ...
  • 面試題之HTML5新特性,語義化 HTML5新特性 簡潔的DOCTYPE: HTML5 只有一個簡單的文檔類型: ,表示瀏覽器會按照標準模式解析。 簡單易記的編碼類型 你現在可以在meta 標簽中使用”charset”:`` 腳本和鏈接無需type 更加語義化的新增標簽 比如說: 等 視頻和音頻 表 ...
  • 這篇文章,小編帶領大家一同做一個利用CSS技術實現的導航欄。通過這個導航欄的製作,希望大家能夠對前幾篇文章中學習到的CSS屬性能有一個整體的認識,並能夠達到靈活運用的程度。 承接文章:靈活控制塊級元素在一行內顯示,CSS浮動屬性,知道原理就很簡單 技術等級:初級 | 適合前端開發的初學者閱讀學習。 ...
  • ECMAscript對象(以下簡稱對象): ECMA-262把對象定義為:無序屬性的集合,其屬性可以包含基本值、對象或者函數。 對象的每個屬性或方法都有一個名字,而每個名字都映射到一個值。值可以是數據或函數。 每個對象都是基於一個引用類型創建的,這個引用類型可以是原生類型,也可以是開發人員定義的類型 ...
  • $('#resourceTabs').tabs('unselect', 0);$('#resourceTabs').tabs('select', 0); ...
  • 前言 前不久抽空對目前比較火的視頻直播,做了下研究與探索,瞭解其整體實現流程,以及探討移動端HTML5直播可行性方案。 發現目前 WEB 上主流的視頻直播方案有 HLS 和 RTMP,移動 WEB 端目前以 HLS 為主(HLS存在延遲性問題,也可以藉助 video.js 採用RTMP),PC端則以 ...
  • 這裡是記錄一些本人在學習過程中覺得重要的知識點,記錄下來以供日後查看,如有不對歡迎指正,望在前端的路上共勉! 當然,這裡也不僅僅局限於點擊事件,也可以換成setTimeout等也有相同的問題,可以用這兩種方法來解決; ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...