前端工程師是怎樣一種職業

前端工程師已是你們再也不陌生的一個軟件行業的工種了,儘管這一工種誕生也沒幾年。做爲一名從業三年的前端工程師,我嘗試結合業界標準與個人理解,來儘量詮釋一下前端工程師這個職業。這篇文章的適讀人羣爲:非web方向的軟件開發者、產品經理以及與產品掛鉤的相關人士、正在糾結需不須要招聘一個前端的老闆們、剛剛走上工做崗位的前端新手們、以及全部對前端感興趣的父老鄉親們。
 
前端工程師的英文名爲front-end engineer,簡稱FE,下文將用FE來代稱。如今意義上的前端(並不是只製做網頁),國內最先開始有大規模招聘崗位應該是2011年左右的事情吧,在此以前,FE的工做基本都是由服務端工程師包辦的,或者是由設計師來產出HTML頁面。那麼,是什麼樣的緣由催生出了FE這一職位呢?本文將從FE的工做內容、專業FE應具有的技能和品質來聊聊這個職業。
 
用戶體驗的操刀者
前端工程師的首要工做就是開發用戶界面,在web系統中,就是指網頁了。爲何網頁須要專門的FE來寫呢?答案就是「用戶體驗」。隨着web2.0概念的普及以及web3.0的提出,用戶成爲互聯網的主要生產者,網頁所承載的功能愈來愈多。
 
一方面,企業的「用戶體驗」訴求很強烈。這個很容易就能理解,若是你的產品看上去就像個釣魚網站並且還特別難用,就會有一部分用戶離你而去。非互聯網企業呢?也會面臨這樣的狀況,你花了很大的功夫優化數據庫,優化服務器負載,你的客戶卻很難感知到你的努力。你的系統界面仍是八九十年代的風格,客戶的第一感受就是這系統不行,不買你的賬。相反,若是你花一點時間作一套嶄新風格的界面出來,客戶的第一感受就是這個系統好炫酷,技術含量很高。不要小看這個第一感受,對於外行人來講,第一感受每每起到了決定做用。好多企業都意識到了這一點,因此對用戶體驗的訴求就上去了。
 
另外一方面,如今的用戶也都很挑剔。畢竟他們使用的產品一個比一個炫,都被慣壞了,你的產品稍有點不爽的地方,就上微博去給你宣傳。
 
前端工程師是用戶體驗的把控者,在產品經理構想出交互原型,設計師設計出交互細節後,FE就用他的雙手一行行敲出這些代碼。他敲出的每個按鈕,每一張圖片,都被成千上萬的用戶點擊着,FE與用戶能夠說是「零距離接觸」。做爲產品交互的實現者,除了HTML、CSS這兩門語言要精通外,對前端要求更高的實際上是非技術因素。
 
FE須要對用戶體驗有較深的理解。好比頁面上有一個超連接,字體比較小的狀況下,用戶可能會一下點不中,由於連接的可點擊區域是緊貼着文字邊緣的。前端能夠經過很簡單的方法來擴大這個連接的可點擊區域,使得用戶更容易點中。這就是用戶體驗,正如《瞬間之美》中提到的那樣,touch到用戶的心裏只須要一瞬間。對用戶體驗的理解,還體如今對一些交互常識的把握上。好比用戶操做某個軟件的界面,會感受它很靈巧,卻具體說不出究竟是哪裏。那麼極可能是這個界面上的按鈕有着設計良好的四態(正常、鼠標移上、鼠標按下、不可用),它會隨時對你的操做給出反饋。
 
懂用戶體驗的前端工程師,會讓他的做品與用戶溝通,可以touch到用戶心中那一塊柔軟的區域。
 
FE須要有一點強迫症。這體如今對任何瑕疵的不容忍。好比採用技術手段讓頁面的滾動更平滑些,減小頁面的視覺抖動,像素級別的定位校準。當用戶觸碰的內容是一串非電話號碼的數字時,不要讓手機自動調出撥號功能,等等。不少細節是產品經理沒法感知的,由於這些都是很零散的技術手段,只有靠FE來點滴積累。再有極致者,追求讓頁面的響應時間再減小几個毫秒,讓你的手機少耗幾KB流量,少耗一些電量。這些甚至連用戶都沒法感知,可是當你的用戶有百萬級別或者千萬級別,這樣作的價值就顯現出來了。
 
前端工程師須要是一個心思細膩之人,須要對美有所領悟,須要執着地追求完美,須要有品味,有思想,有大局觀,最好還能懂點心理學。
 
用戶端業務邏輯
作出優雅的界面只是前端工程師的第一步,編程也是必備技能,FE承擔着處理用戶端業務邏輯的任務。放在之前,用戶端就是個IE瀏覽器,沒有什麼業務邏輯可言。但如今不一樣了,用戶使用瀏覽器發表文章、進行社交活動,更復雜的能使用在線工具完成工做。
 
javascript就是FE須要掌握的編程語言,他應該通曉這門語言的優點和缺點,掌握各類編程思想、開發模式。利用各類技巧實現交互愈來愈豐富的界面,同時還要與服務端的工程師溝通,調試接口,完成:頁面展現——響應用戶操做——提交用戶數據——反饋操做結果這一系列流程。
 
從這一點上,要求前端工程師要有軟件開發的基礎,瞭解計算機的基本原理,網絡通訊的基本原理,因此計算機相關專業出身的前端會更有優點一些。
 
前端也須要架構
寫寫網頁也要架構?有什麼好架的?回答這個問題首先得明確一點,FE的工做內容已再也不是「寫寫頁面」這麼簡單。隨着前端代碼的規模愈來愈大,逐漸涌現出了模塊化開發、MVC、MVVM等開發模式。團隊規模也從原來的單兵做戰演變爲團隊開發。
 
因此,一個高級前端工程師,要有架構能力。這個架構能力包括不限於:
  • 對現有優秀框架的瞭解與整合使用
  • 根據項目的業務特色構建出合適的開發模式
  • 設計前端測試方案保證代碼質量
  • 用工程化方案組織起團隊的開發流程。
 
向前延伸、向後延伸
物聯網的市場愈來愈熱了,手機是物聯網體系中的一個關鍵節點。前端工程師的戰場已再也不是單純的瀏覽器,未來會覆蓋到各類「端設備」上。得益於javascript語言的靈活性,如今用javascript已經能夠開發windows應用、ios應用、android應用,能夠編寫智能電視上的應用。未來,或許是VR、可穿戴設備、智能家電。這是前端能夠向前延伸的方向。
 
另外一方面,因爲nodejs的橫空出世,javascript這門語言居然神奇的有了服務端的能力。以前用java、PHP作的事情,js一樣能夠實現了。原本前端陣營中就有一批人是從後端轉過來的,有服務端開發的基礎,得了nodejs這一利器,再加上如今市場的需求,快出產品,敏捷開發,前端工程師向後延伸的路線寬廣而明亮。事實上,全棧工程師的概念在前年就被提出,BAT這樣的業界領頭羊早已用nodejs作一些基礎設施的建設,而不少小而快的創業公司,也在用nodejs進行快速迭代開發。
 
持續學習
前端領域的技術更新相對於其餘領域要快不少,緣由大概也是由於這個領域離用戶最近吧。有一些新的技術甚至是顛覆性的,前端工程師必需要跟上時代的步伐,不然你開發出的產品在體驗上就落後別人一截了。
 
有一些市場人員提出的需求,產品經理根據多年的經驗評估後以爲沒法實現,就被打回了。而事實上,隨着新技術的出現,有些你認爲沒法實現的功能已經能夠在前端實現了。隨着HTML5的支持度愈來愈高,前端擁有的能力也會越強。好比利用canvas可以獲取到圖片上的每個像素點,這樣前端就擁有了圖像處理能力。有了FileReader API,前端擁有了本地文件的讀取能力,還有地理位置獲取等等。
 
而這些新東西,就須要前端工程師來不斷學習。因此,一個稱職的前端必須可以保持持續學習能力,可以對新技術有敏銳的嗅覺。活到老,學到老,說的就是前端工程師。
 
高情商的程序猿
大多數人對程序猿的印象就是情商低、不善言談。但前端工程師應該是個例外,這是由工做性質決定的。
 
從工做流程來看,FE處於設計師的下游,他要接設計稿,轉化爲網頁。同時又是後端工程師的上游,須要把用戶產生的數據提交到服務端。橫向來看,他又與產品經理有着密切接觸,由於他可能隨時和產品經理探討交互的細節。這樣一個鏈接着團隊中的其餘成員的角色,須要他既是一個粘合劑,又是一個潤滑劑。
 
前端工程師須要有較高的溝通能力和理解能力。咱們常常開玩笑說「設計師活在童話故事裏」,由於有時候他們設計的頁面根本不符合常規,沒法實現。這個時候你就須要耐心的給設計MM講原理、講緣由,而且告訴她設計須要遵循哪些基本規範。對於產品經理的思想,你要能把握到位,你得理解他比劃了半天究竟是想要作什麼。與後端工程師打交道的時候,你又得立刻化身編程達人,跟他們聊數據類型,聊面向對象,聊設計模式。
 
你須要能隨時切換角色,切換你的表達方式和談話內容。因此,你得是一隻高情商的程序員。
 
以上就是我對前端工程師的理解,前端的門檻低,但要成爲一名專業的前端工程師,須要掌握的東西太多了。除了前端技術外,我認爲前端更重要的是綜合能力,包括我上面談到的思惟細膩、有品味、有思想、情商高等等。畢竟你要經過代碼與用戶產生接觸,給用戶帶來愉悅感。從某種程度上來講,你得是一個好戀人。
 

想關注個人更多動態?歡迎關注個人微信公衆號:
相關文章
相關標籤/搜索