DAY1-什麼是前端工程師

什麼是前端工程師

前端工程的三大技能:HTML、CSS、JAVASCRIPT,熟悉這三大語言之後,就可以組合出合式各樣的網頁,不論是精美的介紹頁面,或是顯示很複雜的資料,只要打開瀏覽器,就彷彿得到全世界,可以創造出想要的東西,創造出這些東西就是前端工程師的工作。但是真的有那麼簡單嗎?

前端工程是一門易學難精的技術

做一個精美的頁面很簡單,但是做一千個精美的頁面就不簡單了。因此才需要前端工程師的協助。工程之所以為工程,意思就是說可以使用各種工程的方法,像是模組化、狀態化等等方法來快速完成大量而且有序的工作。這中間的過程將會是一個很大的鴻溝,以自身的例子,要跨過去非常不簡單需要花很多力氣。

從新手到中手

前端工程師最常面對到最尖銳的提問是:前端除了顯示畫面和資料還能做什麼?

在網路上有很多厲害的高手,用如同魔法般的程式碼寫出怎麼看也看不懂的效果。縱使我們不是那樣遙不可及的天才,只是個平庸的市井小民,還是能透過努力去彌補這個差距。

不積蹞步,無以致千里;不積小流,無以成江海。騏驥一躍,不能十步;駑馬十駕,功在不捨。

荀子勸學篇

而彌補這差距有這三個方向可以努力:

  • 如何適應各種技術
  • 如何與人合作溝通
  • 如何增進對專業技術的理解

如何適應各種技術

每個人都有自己喜歡的技術,例如前端的三大框架:Vue、React、Angular,每個框架都有自己的擁護者。如果是自己的事情的話,可以使用「我喜歡」或「我討厭」之類的話推崇或排斥某個框架,因為對自己喜歡的框架有無比的熱情。

但是如果在公司或團隊當中,就得屏除自己的個人喜好,不論討厭或喜歡都要去接觸各種技術,除了增進自己的深度和廣度之外,也是增進團隊的流暢。還有如何了解自己本業以外的技術,除了合作更加流暢之外也可以增加自己的工作效率,例如:什麼是 restful api、版本控制的時候使用 rebase 的時機點等等。

如何與人溝通合作

溝通我認為是最難的一部分。因為溝通的方法因人而異,沒有教科書可以參考也沒有辦法一招走天下,全憑自身的修養和經驗的累積。

但即使如此,溝通還是有幾個層次的區別:

  • 初級:能清楚明白表達出自己的意見和接受別人的提問 (相信我,做到這個已經很不容易了)
  • 中級:不論在各種場合或情況,都能耐住性子應對,不會生氣
  • 高級:能從問答當中得知對方真正的需求,幫對方整理,並且誠實評估自身能力後,誠懇告訴對方要如何做並且反覆確認

前端工程師要溝通的人很多,要和設計師、UX、後端、PM、主管等等溝通,溝通能力可以說是必備的能力之一。

如何增進對專業技術的理解

這方面就是工程師的硬實力,主要的差異來自經驗的廣度和實力的深度

  • 初級:對於基本問題有辦法憑記憶或本能回答,例如:hoisting, async and await
  • 中級:除了回答問題之外,還可以談談這些技術上在實務上的運用,並且有哪些優缺點
  • 高級:除了談談這些細節之外,更要談談整個架構應該要如何設計、要如何才能寫出可以維護的程式碼、是不是要遵循 SOLID 原則等等

本系列概要

此次鐵人賽預計從這三方面來談,很多都是經驗分享。將自身的經驗和技術筆記寫下來,那些讓自己感覺似乎有進步,不再那麼菜了,可以當一個獨當一面的前端工程師的過程。