引言
前端工程師的薪資之高是業界公認的事實,但是很多人會質疑前端工程師,認為他們並不能稱為軟體工程師,也“配不上”高昂的報酬。本文的作者分享了自己從一個前端菜鳥成長為一個10人前端團隊主管的從業經歷,並表示,前端人員的技術特性就是很值錢!
今年5月份,甲骨文中國區裁員的訊息登上了熱搜。
一時間“程式設計師失業”的話題成為了無良自媒體們的狂歡。
可是他們卻完全無視了“N+6”的鉅額賠償,以及國內各大廠揮舞著鈔票為甲骨文員工們開設的專場招聘會。
從頁面仔到工程師
前端人到底經歷了什麼?
在成為各公司爭搶的香餑餑之前,前端在很長時間內都不受人待見,甚至不認為他們是程式設計師。以前,前端人被稱為“頁面仔”,而現在他們的起薪比PHP、JAVA、C++等後端還高。
即便在去年網際網路大環境不好的情況下,前端求職者的平均年薪都達到了28.4萬,人均跳槽漲薪幅度都達到了17% 。
最近前端的火熱,使得前端們薪資漲幅極快,1-3歲的前端人的平均薪資達到了13480元,和沒有經驗的應屆生相比近乎翻倍。
從頁面仔到工程師前端人到底經歷了什麼?無他,市場證明了前端的價值。
2017年小程式橫空出世,更是讓前端的熱度達到了頂峰。各大 App 紛紛模仿 Vue 或 React 釋出自己的小程式,小程式這種新的流量變現模式深刻地影響了國內的互聯網布局。
時至今日JavaScript是最流行的語言之一:GitHub 60%的開源專案都是與JavaScript有關。從蘋果到安卓、從網頁到APP、從休閒到遊戲,前端已經滲透到每一個領域。
什麼是“前端工程師”?
“前端”是指軟體的表現層或者使用者介面(UI)。前端工程師主要使用 Web 技術實現UI。前端工程師與 Web 開發人員的主要區別在於,前者需要構建互動式應用程式,而後者主要構建專注於內容的網站。如果前端工程師從事 iOS 等其他平臺的開發工作,他們可能被稱為 UI 工程師或者 iOS 工程師。如果開發過程非常重視設計,他們也可能被稱為 UX 工程師。
從我自己的經驗來講,我堅信最優秀的前端工程師應當專注於 UI 的實施。他們在該領域磨練自己的技藝,並且不斷學習最新的 UI 技術。全棧工程師需要做前端工作,非常適合在小團隊中從0到1構建產品。全棧工程師無法兼具前端工程師、後端工程師、可靠性工程師和資料分析師。
現在軟體技術的每個細分領域都得到高度發展,追尋技術的廣度使得全棧工程師無法真正深入某個領域。
最顯眼的工作
作為一名前端工程師,弊端很明顯。
按鈕無法點選?找前端。搜尋結果不滿意?即使是源資料的問題,使用者也認為是前端的錯。使用者只會上報那些他們看到的錯誤。前端工程師開發的東西就是被使用者所見的,因此一切都是前端的錯。作為前端工程師,很難向用戶解釋清楚。使用者不關心問題是否與資料或者 API 服務有關,他們只知道在瀏覽器中搜索蘋果,那麼搜尋結果就應該是蘋果的照片。
軟體工程師最主要的時間不是用來寫程式碼,這可能會讓你非常吃驚。實際上,他們把更多的精力花在了溝通上。前端工程師是離使用者最近的開發人員,他們往往是最能把握使用者需求的人。
UI 實現並非易事
具有良好 UI 效果的產品能夠更容易獲得使用者的信任。信任度會直接轉化為收入,網站頁面的載入時間每增加一秒就會丟失10%的使用者。
前端工程師竭盡全力對載入時間進行毫秒級的縮減,就像波音公司的工程師減輕飛機重量一樣。例如,Stripe Billing 的主頁在移動3G網路下的載入時間不到1秒。下載到你裝置中的資料包比谷歌主頁的還小,它是出了名的輕量級網站。那麼,它是如何在頁面中嵌入高解析度視訊的呢?
當你仔細觀察開發人員工具時,你會看到“視訊”只是簡單的 HTML,網站將它們精心組合在一起並使用 CSS 進行動畫處理。HTML 和 CSS 比視訊輕量級得多,因為它們只是告訴瀏覽器如何呈現 UI 的文字指令。無論螢幕尺度解析度如何,該技術都可以呈現很好的效果。即使放大介面,視訊依然很清晰。這項工程能夠提供很好的使用者體驗。
效能只是優秀 UI 效果的眾多方面之一。
使用者在移動裝置上逗留的時間最長,那麼如何在移動裝置上提供更好的 UI 效果呢?前端工程師可以針對4種尺寸的 iPhone 和數百種尺寸的 Android 手機適配 UI,而無需為每種尺寸的裝置構建單獨的 UI。對於中國的14億使用者怎麼辦呢?前端工程師可以構建國際化框架,以便翻譯人員可以輕鬆將應用程式翻譯成其他語言。想要具有包容性並遵守 ADA 可訪問性標準嗎?前端工程師可以讓使用者通過鍵盤和螢幕閱讀器訪問整個應用程式。應用程式的眾多受眾和環境使前端工程師的工作變得困難。然而學校並沒有教授這些技能,前端工程師不得不持續學習,用最新的技術來應對不斷變化的平臺。
前端人員不僅僅是工程師
一致性是優秀 UI 的另一個重要方面。誰在乎一個按鈕邊框是1畫素,而另一個按鈕邊框是2畫素?我經常會和朋友們一起討論這個問題,不論他們是工程師與否。我的導師Charles d'Harcourt 說得最好——當用戶發現介面元素沒有滿足他們的預期時,他們就會失去對該產品的信任。他在許多明星產品上一次又一次地強調這一點,比如WebObject、iTunes和Chrome。
前端工程師不僅僅是工程師,他們利用自己的設計直覺和使用者共鳴提升使用者介面的人性化。在我看來,這一點將使那些傑出的前端工程師從普通工程師中脫穎而出。而在日常工作中,前端工程師需要與產品經理和設計師進行良好協作,需要平衡需求和實施難度,以滿足使用者需求,並以最少的稽核週期解決錯誤和不一致問題。
設計直覺和使用者共鳴很難量化。對於我曾經合作過的許多優秀的前端工程師來說,這兩者已經深入他們的靈魂。前端工程師接受的教育往往是跨學科的。他們喜歡顛覆已經被精心設計的產品。他們還有充滿創造性和藝術性的愛好。有些學校,比如斯坦福大學,會教授藝術與工程的融合。關於設計直覺和使用者共鳴的教授方法,我很樂意聽取大家的意見。
高效前端團隊造價高昂
儘管我熱愛前端工作,但我並不認為僅僅靠一個優秀的 UI 就可以讓產品變得偉大。讓產品變得偉大的核心因素在於:真正解決使用者的問題。Craigslist 就是一個典型的例子,它採用極其簡單的以文字為中心的 UI。
如果你想打造一支優秀的團隊,那麼首先得問問自己,你是否希望並且能夠根據 UI 區分你的業務。
像所有最優秀的其他工程師一樣,優秀的前端工程師只對偉大的產品或者擁有前端大牛的團隊感興趣。那麼,你是否擁有優秀的 UI 產品,是否擁有前端大牛?Stripe 已經擁有了優秀的 UI,並且其前端團隊非常強大,因此它才能吸引 FANG 公司以及各大名校的前端人才。
如果你僱用最優秀的人才併為他們支付行業最高的薪酬,那麼這些優秀人才為你的業務帶來的收益可能會遠遠超過你在人才方面的支出。——Netflix 首席人才官 Patty McCord,關於如何招聘
前端人的職場生存之道
前端的火熱使得很多人躍躍欲試,但要想從千軍萬馬的程式設計師中脫穎而出,過硬的技術是必須的。
前端的工具和框架種類繁多,但萬變不離其宗,企業對於人才的技術要求,本質上還是要回歸到HTML、CSS 和 JS 三板斧。
除此之外,一個合格的前端開發,需要在熟悉 Web 開發的基礎上,至少熟練掌握 Vue、React 或Angular JS 等主流框架中的一門。
紮實的基本功加上快速學習能力,是前端求職者在紅利見頂市場的生存之道。
在入門不足三年的初級前端工程師中,一部分人感覺前端是一個很有前途的職業,甚至一部分前端同學透露其年薪已經30W以上了。
結語打造一個高效的前端團隊需要提供充滿競爭力的薪酬。儘管也有例外,比如那個熱衷和你一起做開源專案的高手可能期望薪酬只有 Facebook 的一半。當然也有一些優秀的前端工程師並不要求矽谷級別的待遇。但這畢竟是小概率事件,為前端工程師設定過低的薪酬存在風險。因為員工流動成本很高,不能順利完成產品的風險將導致更多問題,其消耗的預算也更多,有些得不償失。