除了硬實力,前端工程師還需要甚麼軟實力?

還沒成為前端工程師之前,心想這職缺真是太美好了,只要面對電腦,完全不用跟人講話 ,對於內向者來說,能不講話就不講話,結果事情根本沒有那麼簡單 ,一個工作天之內可能會遇到以下情境

  • PM 說要再新增需求,所以需要先釐清需求內容並且確認交付時程
  • 花一些時間跟負責同個專案的同事討論工作分配或是有哪個部分有異動
  • 發現後端 api response 跟 api 規格書長不一樣,或者 api 突然變成 500 error or 400 bad reaquest(代表前端送錯參數或是少傳了)
  • 與 Designer 開會討論素材需要哪些,某些動態效果是否能夠用 css animaiton 取代就不用再出圖
  • QA 回報了 BUG,但測試流程描述過於簡略,需要請他補上詳細的測試步驟
  • 部署的時候發現 NFS 資料夾有異動,要跟運維工程師確認
  • 跟主管報告一下工作進度,有沒有遇到甚麼困難,順便檢視身上的業務量是否需要請其他同事支援

結果,一整天講話的時間可能還比 coding 多。

以下整理了幾點,是我在這幾年的工作經驗裡面認知到前端工程師應該要具備的一些能力

溝通的能力

剛成為工程師的時候,請主管幫我看問題 ,連問題敘述都講不好,最常聽到的話就是我聽不懂你的問題 XD ,確實菜鳥階段的我組織問題能力很差,講了一大堆但重點只有最後兩三句,或者詞不達意,後來發問前都會先整理好一下脈絡,大概描述遇到了什麼情境、採取哪些行動、結果如何?而且職場上講求的是效率,所以能夠在最短時間內理解彼此的想要表達的東西是再好不過了。

整合的能力

前端的任務不外乎就是根據 PM 的規格書開發功能,根據 Designer 的設計稿刻畫面 ,根據後端的 api 串接資料

這時候可能會遇到幾個問題

  • PM 有寫這個功能,但後端 API 沒有給對應的欄位資料
  • 後端規格沒有統一,假如有兩個 API 都是在處理優惠活動的開關,一個要傳的參數是 true 和 false,另一個卻是傳 0 和 1
  • Designer 少給了素材 ,或是尺寸不對
  • Spec 有寫到不合理的需求 ,像是欄位每打一個字就要馬上做檢核, 一般來說會是輸入框失焦的時候才做檢核

因此需要頻繁的找各方討論,最終才能產出網頁的完成品

如果有玩過煮過頭這款遊戲 ,某個關卡需要組合漢堡送餐的那個角色,前端就很像那個角色

通靈的能力

常說工程師需要通靈,這個真的不是開玩笑 ,畢竟每次網頁壞了第一個被抓出來鞭的通常是前端,但你只得到一張網頁壞掉的截圖,使用者當下也不知道發生甚麼事(想像力是你的超能力)要開始推理有甚麼可能性會導致這個情況發生, 原因可能不只一種 ,有的問題還是機率性或是不能重現,還要從各個面向去探討問題的可能,當時網路斷線了?api 異常導致?或者是使用者的神秘操作手法(Ex.瘋狂連點)

有遇過使用者抱怨用他的手機看手機版網頁會大跑版,但我們自己拿了手機來測試完全沒有問題啊,後來才知道對方的手機系統字設定為最大,所以網頁的字大到跑版了…

因此,推理和通靈的能力對前端來說是不可或缺的!

分辨可實作的能力

有時候 Designer 會希望你製作一些很炫的網頁效果,雖然的確是可以辦得到,但同時會衍生效能問題和瀏覽器支援度的問題,以前的我都會傻傻的照單全收,等到被客戶反映網頁很 lag 才驚覺問題,有了前車之鑑以後,一定會先跟 Designer 溝通,是否有折衷的方案可以實現類似效果又兼顧支援度及效能。

除此之外,有時候看了 PM 出的一些 spec,發現流程有點問題,某些邏輯可能會有衝突,就會找 PM 先討論,避免之後做白工或是埋了一顆不定時炸彈在那裏。

UIUX

有時候 PM 出了一份文件 ,但因為功能很簡單 ,所以也沒有請 Designer 出設計稿, 請我們憑藉著自己的美感刻出畫面, 像我以前會把按鈕的尺寸寫得很小 ,覺得這樣很精緻, 但使用者用手機在點擊的時候, 因為按鈕太小 ,只能用指尖去點擊,這就是一個很差的使用者體驗 ,因此前端除了需要擁有基本的設計美感以外,還需要懂一些使用者體驗,才不至於寫出違反人性操作的介面。

英文能力

這應該是全部的工程師都需要具備的能力,雖然很多時候用中文當關鍵字也可以找到答案, 但如果用英文去搜尋,就會發現更開闊的世界 ,所以我現在遇到問題大部分都是用英文去找答案,StackOverflow 真的是工程師的好夥伴 !目前正在強迫自己看英文的技術文章,雖然蠻痛苦的,但也可以順便認識一些特定單字,除了增加自己的單字量之外,之後遇到問題又可以下更多關鍵字來找答案了!

總結以上,許多人說前端入門簡單,要深入卻是一點也不簡單,技能樹已經長得非常茂密,而且技術迭代的很快,除了硬實力之外,軟實力也是不可或缺的,而我也是進入到職場才發現軟實力的重要,除了上述那些,還有變通能力、領導能力、團隊合作精神、時間管理能力等等,都是需要經驗的累積,在累積軟實力的過程中,很重要的一點是必須認知自己目前有哪些問題,然後改善它,除了學習前輩的工作方式也可以多看一些關於提升工作效率的書,整理出一種最適合自己的工作模式!