前端工程師的光與影:仔細思考後再踏進這個領域

前端工程師的光與影:仔細思考後再踏進這個領域

前言

現在是一個資訊大爆炸的時代,知識取得的方式越來越多且方便,但是也因為如此,我們需要更多的時間去思考,去判斷,去分辨,去選擇,去決定,去做出一個最好的選擇,更不用說現在許多人都想成為工程師。

前端工程師的光與影

什麼是前端工程師的光與影呢?這邊我所指的光是指前端工程師的優點,而影則是指前端工程師的缺點,但是在講這些之前,我想先聊一下為什麼你會看到這一篇文章。

基本上你會看到這一篇文章就代表著你或許正在思考要不要成為一名前端工程師,尤其是跨領域轉職者會更好奇這一件事情,畢竟跨領域轉職者的背景都不太一樣,有些人是從設計轉職,有些人是從行銷轉職,有些人是從其他領域轉職,但是他們都有一個共同點,就是他們都想成為一名前端工程師。

那麼接下來進入重點吧!也就是…

為什麼你想成為一名前端工程師?

我輔導過不少非本科背景的學生,當然也有本科生,而這句話我也都有問過甚至了解過原因,不外乎都是因為以下幾點:

  • 薪水天花板較高
  • 工作機會較多
  • 自由度較高
  • 只需要面對電腦
  • 改善生活品質
  • 可以吹冷氣
  • 跟親人介紹起來特別酷

…等等

你會發現原因真的五花八門,但是這邊我只會針對裡面幾點來講,因為那幾點是我認為最重要的,而且也是我認為最能夠讓你思考的,那麼我們繼續往下聊聊吧。

薪水天花板較高

為什麼工程師的薪水天花板普遍較高呢?

這邊就要簡單提一下供需法則,以供需法則來講,有兩大重點:

  • 供不應求
  • 供過於求

當供不應求時,代表著需求方的需求遠遠大於供給方的供給,這時候就會出現一個現象,就是需求方會願意付出更多的代價來獲得供給方的供給,這時候就會出現供給方的薪水天花板較高的現象,而這也是為什麼工程師的薪水天花板較高的原因之一。

第二個原因呢?也就是大家所熟知的,工程師領域的資訊更新速度非常快(很重要),以前端工程師作為舉例的話,約莫半年一小改,兩年一大改這都是常態,這也是導致工程師必須無時無刻保持在學習的狀態。

最後一點比較特別一點,算是你本身具有一定的能力時,你也會發現你的薪水天花板會比普通工程師更高,因為企業會為了留住甚至吸引優秀的工程師而提供更具有競爭力的薪資與福利,這也是為什麼你會看到有些工程師的薪水天花板會比一般工程師高的原因。

當然原因還有很多,這邊我只是簡單列了一下原因而已。

前面簡單總結來講就是以下原因:

  • 供不應求
  • 資訊更新速度快
  • 你本身具有一定的能力

但有趣的事情來了,你可以思考幾件事情…

當「供過於求」時會發生什麼事情呢?

當知識越來越容易取得時又會發生什麼事情呢?

這就留給你思考了。

工作機會較多

工作機會這件事情很有趣,為什麼工程師的工作機會特別多呢?以我的觀點來講,我認為是最不具有限制性的職業,因為工程師幾乎可以在任何領域都有工作機會,而且也是最不具有地域性的職業,因為工程師幾乎可以在任何地方都有工作機會。

但是你要思考一件事情,當你去除了地域性的限制之後,你接下來要面對的是什麼呢?

我相信你應該猜到是「語言」了吧?但我相信你如果可以往國外發展的話,你應該對於這件事情也已經有一定的心理準備,如果沒有的話,你可能還是要思考一下這件事情原因我就不提了。

當然除了語言還有另一件事情要注意,也就是大家幻想很重的「遠端工作」

遠端工作最大的問題其實就是溝通,以往我們在與他人溝通時,你可以透過面對面觀察對方表情、語氣來推敲出對方的意思,甚至是即時釐清疑問點,但是當你在遠端工作時,你就只能透過文字來溝通,這時候你就必須要思考一件事情,你的文字是否能夠讓對方準確的理解你的意思。

而且當你無法理解對方意思時,你又該怎麼辦?你可能會想說…

「那就直接約電話、視訊啊?」

沒錯,確實是可以這樣子,可是你有想過嗎?你有空並不代表對方有空啊?世界並不是繞著你轉的。

更不用說遠端工作大家可能都在不同的國家,那這時候如果你的問題很緊急時,你又該怎麼辦呢?這都是一個你值得思考的事情,因為許多事情你都必須要靠自己來解決,而不是一直依賴別人。

自由度較高

關於這件事情滿有趣的,我問了不少人對於「自由度較高」這詞是怎麼定義的,聽了不少人的回覆,我簡單總結來講就是…

「我可以在任何地方、任何時間上班,而不會被綁在特定的地方。」

以一名前端工程師來講,你只要持有一台電腦 + 一個可以穩定上網的地方,基本上你在任何地方工作,看起來相較一般職業來講確實是滿自由的,但是你真的有好好想過這件事情嗎?

  • 難道業務不自由嗎?
  • 難道行銷不自由嗎?
  • 難道其他職業不自由嗎?

自由的定義是怎麼決定的呢?這邊先不提其他職業,就單純提工程師就好,你有想過你去哪裡都必須帶著一台電腦並且無時無刻可能都要注意一下手機訊息,甚至是出去玩都要找一個可以穩定上網的地方,這樣真的是所謂的自由嗎?

這件事情滿有趣的,但是我想你應該可以想像到…

  • 當你在外面玩的時候,你的手機一直在響,你會不會想要去看一下?
  • 當你在外面玩的時候,你的手機一直在響,你會不會想要去回一下?
  • 當你在外面玩的時候,你的手機一直在響,你會不會想要去處理一下?

這樣真的有符合你所謂的自由嗎?你真的喜歡這種生活嗎?你可以思考一下。

你必須要知道自由的代價可能會有哪些問題,而不是只看到自由的好處。

只需要面對電腦

這件事情相對單純很多,通常會覺得面對電腦比較好的原因是因為自己原有的工作可能必須要無時無刻面對客戶,許多事情牽扯到人就會很複雜,而這件事情真的不可否認沒有錯。

雖然工程師大部分時間都是面對電腦,但是工程師的核心價值在於解決問題,而解決問題的過程中,你還是要面對的人,而不是電腦好嗎?

這時候你可能會想說…

「我不是寫寫程式把問題解決就好了嗎?」

確實,但你難道不需要跟你的同事/主管溝通嗎?難道你不需要釐清需求嗎?開發一個系統總要跟主管/同事釐清跟分配工作吧?這些事情你不需要面對人嗎?

而且老實講,每次核對需求時往往都是先聽到各種天馬行空的想法,然後你必須要跟他們溝通並且釐清需求,重點還要用他們能懂的方式跟他們解釋,這樣子才能確保你們的需求是一致的。

你千萬不要覺得好像沒有什麼,基本上當你聽到以下任何類似的話時,你就要小心了…

「我們的需求很簡單,只要…」

「這邊只是一個小小的功能,只要…」

「這邊只是一個小小的修改,只要…」

結果光釐清這些客戶的需求就有可能要花你一整個禮拜,儘管這需求好像很小、很簡單,但我百分之百保證你,你一定會花很多時間在釐清需求上面。

因為客戶/主管的想法往往都是天馬行空的,他們對於工程師這行業充滿的各種幻想,基本上都會這樣想

「我只要出張嘴就可以了,反正我有付錢就好。」

講到現在,你也可以思考一下真的「只需要面對電腦」嗎?基本上凡事只要牽扯到「」、「利益」都會變得很複雜,不要以為自己只會面對電腦而已。

改善生活品質

如果你原本的工作可能很傷身的話,那麼轉職當工程師確實是一個不錯的選擇,至少總比你原本的工作好。

但我必須要老實講,當工程師並不代表不傷身,因為你可能會因為…

  • 長時間面對電腦,導致眼睛疲勞
  • 長時間坐在電腦前,導致腰背肩頸酸痛
  • 長時間打鍵盤,導致手腕疲勞
  • 長時間思考需求,導致腦袋疲勞
  • 無時無刻都有新的技術出現,導致你必須要不斷學習,導致你的壓力很大
  • 可能會有 on call 的工作,導致你的休息時間不穩定

…等等

假設你原本工作可能會讓你壽命減少的話,那麼轉職工程師真的是不錯的選擇,但是如果沒有的話,那麼你可能會因為工程師這份工作而讓你的壽命減少。

而且相較於本科系(資訊工程、資訊管理、資訊科學、資訊工程學系)畢業的人來說,你的薪水起薪可能會比他們低,因為你沒有相關的學歷,而且你的工作經驗也不是在資訊相關的領域,所以你必須花非常多的時間在學習上面,你必須花比平常更 N 倍的時間在學習上面,才有辦法跟他們競爭,不然人家從高中讀到大學(3 + 4)不就白讀了?

這些都是你值得你好好思考的事情。

成為前端工程師後的挑戰

聊了很多關於許多人對於前端工程師的幻想以及現實,接下來我想跟你聊一下,當你真的成為一名前端工程師後,你可能會需要面對的挑戰。

我希望你可以釐清一個很重要的事情,你必須把自己當作「服務業」,你的客戶只是變成了主管/老闆而已,你的工作就是要解決他們的問題,你千萬不要把自己當作科技業,因為你在工作時根本不會真的八小時都在寫程式,你的工作內容可能只有 20% 是寫程式,剩下的 80% 都是在跟人溝通。

接下來你必須面對「資訊焦慮」這件事情,可笑吧?身為工程師,你其中一個要面對的事情竟然是「資訊焦慮」,以前端工程師的領域來講,平均每半年至一年左右都會出一個新的框架、新的知識,因此你會被迫無時無刻都要學習新知識,這件事情你是必須要面對的,而且是閃不掉的。

求別更新了,老子學不動了

我輔導過不少「資訊焦慮症」的學生,其實面對資訊焦慮症的解決方式並不難,只是你必須遵守以下幾個原因

  • 管理好資訊來源
    • 選擇可靠且有價值的資訊來源
  • 管理好學習時間
    • 一次只學習一個主題
  • 培養專注力
    • 一次只做一件事情
  • 好好休息
    • 休息是為了走更長遠的路

雖然看起來很簡單,但是許多人做不到,尤其是社群媒體這麼發達的狀況下更困難,因此這件事情你是必須要好好放在心上學習的,更不用說 ChatGPT(生成式對話 AI)出世後,你會發現資訊焦慮症的問題會更嚴重。

最後一點很重要,也就是你必須接受「加班」這個事實,所有行業中,我認為工程師是最容易加班的行業,雖然很多公司會盡可能避免你加班,但是實際上呢?不可能,因為你的工作內容就是解決問題,而解決問題的過程中,你會遇到各種問題,而這些問題往往都是你沒有預料到的,因此你必須要加班來解決這些問題。

更不用說商業操作以及利益上的考量,你的主管/老闆很有可能會要求你加班,因為產品可能必須要在某個時間點上線,這時候你就不得不加班了。

以我自己來講我就曾經從早上九點加班到凌晨四點,隔天早上八點又要上班,因為那時候必須要拼系統上線,否則公司將會虧損至少一百萬,當公司專案如果因為你虧損的話,那麼你的工作就會不保了。

工程師就如同小嬰兒一樣,無時無刻都在挑戰新事物
必須要不斷的學習,不斷的成長,不斷的面對挑戰,而這就是工程師。

寫程式這件事情就跟拼積木一樣,工程師就像小嬰兒般想盡辦法把積木依照父母及自己的想法拼出一個完整的積木,而這個過程中,你會遇到各種各樣的問題,而這些問題就是你的挑戰,你必須要面對這些挑戰,而這些挑戰就是你的成長。

那麼這可能又會牽扯到…

「怎麼把積木拼好?」

怎麼樣拼才能夠靈活,而這就是往後你成為工程師後必須要學習的其中一個技能,也就是「設計模式」,但這是一個很大的議題,所以我不會在這一篇提到這件事情,你只需要知道…

成為工程師後你還有很多東西要學習,絕對不是轉職成功就結束了。

最後的最後,還有一件非常重要的事情,不論你成為什麼樣的工程師基本上你是閃不掉看英文文件的,正因為大部分的文件都是英文的,所以你也必須要學習如何閱讀英文文件,因為很多 Bug、你不會的功能,其實都隱藏在官方文件內,甚至是 Issues 上。

儘管 Google 翻譯非常方便,但有時候看懂英文版會比較好,因為有些專業術語在翻譯成中文之後真的是非常奇怪,更不用說各國有各國的翻法,因此除了進修之外你也要慢慢習慣看英文文件。

至於為什麼文件很重要呢?這我就不得不抱怨一件事情,其實我寫過不少文章與心得給輔導過的學生,許多問題我都放在那些文章內,但他們終究不會去看…

為什麼呢?因為他們習慣了「問」,而不是「找」,他們習慣了問別人,而不是自己去找答案,其實這是一個非常不好的習慣,因為你永遠都不知道別人會不會回答你,而且你也不知道別人會不會回答你的問題,因此你必須要學習如何找答案,而不是問答案,而這件事情就跟你的工作一樣,你必須要學習如何找答案,而不是問答案,許多答案都藏在官方文件內,你只要稍微用心的去看或許你就會找到答案。

結尾

那麼你可能會想說為什麼我要寫這一篇呢?主要原因是因為我希望每一位想轉職成為工程師的人都能夠知道你未來可能會遇到哪些挑戰,而這些挑戰是你必須要面對的,而不是單純的幻想工程師的生活是多麼的美好,多麼的美妙。

如果有,那也是他有本事,而你我不知道。

但我希望這一篇可以讓你在踏入工程師之前,先了解一下你可能會遇到的挑戰有哪些,但是如果你只是想要嘗試看看對於這一行有沒有興趣,當然是沒有任何問題的,因為許多事情總是要嘗試之後你才知道自己對這一行是否有興趣。

但如果你是要轉職的話,那麼我會希望你想清楚一點再跨進來,因為這一行真的不是那麼的美好,而且你必須要付出很多,尤其相較本科系的學生來講你打從一開始就已經處於劣勢,因為你沒有任何的基礎,而且你也沒有任何相關經驗,因此你必須要付出更多時間與精力,才能夠跟上別人的腳步。

不管怎麼樣,我不希望你只是一時工作不愉快就興起想轉職,而是希望你可以深思熟慮之後再做決定,如果你已經思考清楚確定要踏進來了,那麼我也真心期望你可以成功。

最後我也提供一個延伸閱讀,也就是「轉職前端,之後呢?」給你更多的參考來源,讓你知道我是真心希望你想清楚再踏進來。

Liker 讚賞

這篇文章如果對你有幫助,你可以花 30 秒登入 LikeCoin 並點擊下方拍手按鈕(最多五下)免費支持與牡蠣鼓勵我。
或者你可以也可以請我「喝一杯咖啡(Donate)」。

Buy Me A Coffee Buy Me A Coffee

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ