城市碼農

轉職前端工程師三個月後隨紀

前言

雖然從 2020/05/11 就擔任前端工程師,但對我而言,在上週 08/11 工作滿三個月,才算是實質上的轉職前端工程師成功。

sharing at Appworks School 7 月時有回 AppWorks School 分享,當時其實還未滿 3 個月 (汗)

這篇算蠻隨性真實的記錄轉職上的思考,偏重以下幾點:

  • 為什麼要轉職的推力
  • 為什麼要轉職的拉力
  • 轉職後,期待有沒有落差?
  • 給想轉職者的建議列表
  • 結語

內容沒有「如何才能轉職成功的方法」,而是著重紀錄思考「為什麼轉職」、「轉職結果反思」和總結「給想轉職者的建議」。

適合閱讀的對象,偏向「考慮是否要轉職」、「剛決定要轉職的人」,很確定要轉職,甚至開始行動的人閱讀助益不大就是聽聽故事,想要知道轉職方法論的,可以直接 Google 資料已經很多。

其實原本只是想記錄轉職的歷程和反思、有沒有達成當初期待等,寫著寫著想說乾脆分享出來,說不定有人能從其脈絡受益。

註:內文是個人經驗的論述,永遠只是參考指標,而非絕對的答案。


大綱

寫完發現內容過多,想說先把「給轉職者的建議表」結論列出,如果看完沒興趣,這篇文章可能不適合你:

  1. 反思現狀的職涯到底不滿足在哪裡?把不滿足的推力都列下來。
  2. 轉職前端工程師後就能滿足嗎?把拉力列下來,看是否有解決推力。
  3. 嘗試 coding 至少一個月以上,確保不討厭這件事,也非三分鐘熱度。
  4. 把想轉職的緣由和策略,分享給朋友或者工程師聽,讓他們挑戰自己。
  5. 把風險列下來,確保可以接受最糟的狀況,成敗後果自負。
  6. 訂個明確的轉職時程,與期望薪資。例:半年內,60w 年薪 up 。
  7. 在身心狀態好時,先準備挫折大時的應對方案,if 挫折大就怎麼舒壓。
  8. 好好享受轉職寫 code 時光,有很多時間寫程式且自主權高。
  9. 永遠都要學,因此學會怎麼學才重要,找到適合自己的方法。
  10. 心態上要記得:轉職只是開始,未來的路還很長。

接著開始談我的個人經驗,算是上述各項列點的個人範例和脈絡。


關於為什麼要轉職?

轉職的原因,包含推力和拉力兩部分,推力是對於當下的職涯有不滿足的狀況,拉力則是在各種嘗試中,發現有能填補不滿足狀況的職涯方向。

關於「推力」的部分,最主要有三點:

一、從職位本身,察覺不到自己的價值

在轉職前,我擔任線上課程內容品管的職位。當時蠻大部分的工作內容,是在課程製作後,觀看完課程並提供課程建議給老師,老師看過建議後,決定是否修改或優化,如果老師決定不改,要能提出理由。

在當時的流程下,我認為課程的好壞有極大的原因,是來自於「老師的教學實力」與「課程內容企劃(另一個職位)的協作」。

在大部分情況下,我認為即使沒有我的介入,課程不會有太大的問題,因為課程的架構規劃或課程本身內容並非我做的,而觀課後所給的建議,很多時候僅是微調課程內容。的確有少部分課程太糟,我的介入有較大的影響,但大部分的工作時間,其實都偏微調課程,影響力較小。

上面這段的主詞一直是「我」而非「課程品管」,原因是這些都是很主觀的感受。以嚴謹的角度思考,課程品管的職位有其價值所在。

舉例而言,一堂大賣的課程,老師如果不小心沒注意圖片 / 音樂等版權,後來被學生察覺,是否可能演變成很大的傷害?老師若承諾無經驗者都可學習,結果卻讓無經驗的學生看不懂、獲得挫折感,學生是否負評連連?

長久下來,不僅讓學生不信任老師,也可能影響線上學習平台的信譽。

然而即便我理解該職位有其重要性之處,甚至也因工作內容包含找出問題、給予具體建議、參與使用者訪談、和同事交流等,讓我在思維上有不少進步,但我依然主觀上無法滿足於職位本身。

仔細想想,我覺得職涯目標重點並非僅是理解職位本身的重要性,接著想辦法讓自己融入其中。而是要不停地去理解反思對工作的期許,能滿足於什麼樣的貢獻感、成就感與薪水,並 try and error 漸漸找到對應的職位。

而且每個人生階段想要的貢獻感、成就感與實質薪水又不同,所以職涯發展是變動性的過程,或許當初擔任此職位時,有所期待與滿足,但現狀而言,已不能滿足我。

職涯是漫長的過程,需要持續迭代與優化,才有慢慢地趨向心中所向,持續找到一種剛剛好的平衡感。

經過一些反思,在轉職前的職位中,我探究出接著想要的職位希望能有:

  • 客觀的貢獻感:能更直觀地衡量,工作上是不是有立即產出、是不是有貢獻度,貢獻通常會呼應到公司實質上在追的量化指標(每季甚至每天會 hightlight 的那些數字)。
  • 主觀的成就感:能親手去打造東西,東西的成敗與自己高度相關,最好要可以打從心底相信「這個產品的好壞,我在其中扮演重要的角色」。

補充名詞定義,成就感偏向「我想要做的事情,做起來會滿足、開心」; 貢獻感偏向「別人會需要我做的事情,做起來可以有對應的指標衡量」。

同時察覺,無論即便公司的同事很厲害或有趣,或是公司的制度再怎麼自由,如果在「職位」上,無法滿足自己的價值,還是會很想離職。

二、職涯的選擇權,如果要離職,技能能帶著走嗎

既然上述提及對職位的自我懷疑,就衍生出:「離開了,要去哪裡?」的問題。於是開始思考現有能力,我在職位上成長的能力,究竟能否帶著走,去下間公司依然用好用滿?

我判定的方式很簡單,打開求職平台看一看。

通常分成硬實力跟軟實力,軟實力上,比起工作前的自己的確有所增長,但硬實力上,一直認為比較沒有值得一提的技能,或許也因為這樣,所以在職場上,總是維持焦慮。

慢慢調理思緒後,認為:

我想要的硬實力,是能夠在多個公司,甚至跨國公司間都有足夠的價值,這些硬實力會在 JD 被攤開來看,且相對軟實力好衡量,更不會因為換公司而減損價值,反之,甚至更有價值。

久而久之,會更有機會去選擇公司,而不只是被公司選擇。

三、薪水多寡

以前真的不太 care 薪水(多無畏又無知的青春XD)。因為算幸運,出社會後,不用給家裡錢,家裡也無須給我錢。

第一份工作,在桃園月領 27- 28 k ,每天 50 – 60 元便當兩餐解決。當初到台北工作,發現能月領 30–33k 時,還想說真的能夠勝任這份薪水嗎?反而在意的不是能不能有金錢享受或投資。

因為生活隨性,即使在台北租屋,省吃儉用,還可存錢。即使旅行,東南亞一個月 30k 內搞定完全可以,過得還算可以。

直到看到家人老了,因為上樓梯一跛一跛的,想要改建老家樓梯時 ; 或者是父親節想要送台按摩椅時; 或者在是狹小的房間中無法照射太陽,還會吸入飄入油煙味時,再回過頭看看戶頭,就越來越意識到錢的重要性。

此外,當想轉換跑道時,看看 bootcamp 或任何課程的價格,再想想有多少時間,會因專心轉職沒有薪水,就發現:當人生需要有較大轉折時,金錢會是很好的籌碼和工具,能讓自己擁有更大的選擇權。

所以,我想要有階段目標地,獲得薪水更多的工作。

當然在同份職位不停地努力,總有機會可以慢慢加薪,可能再領個 4X k 之類,但問題是機率。舉例而言,同樣是 junior ,軟硬體工程師、藥師等等,能找到 40k 以上的機率,比起其他職位高太多了。

其他職位,就比較不累或沒價值嗎?我完全不覺得。但這就是就業市場的現狀。

比起平輩,我認為我沒有特別出眾之處,所以在薪水上,傾向選擇即使在職等差不多的位置,但有更高機率能領更高薪的職位。

提完以上三點主要推力,接著就進入到促使我轉職的拉力。

其實推力很重要的是:它讓我持續反思是不是有更好的職涯方向,以及我不想要什麼。

至於選擇轉職「前端工程師」,則是結合以下兩點「拉力」所造成:

一、主觀上的衡量:擁有成就感

身為在線上課程平台的職員,一定會好奇其他公司怎麼做學習型內容的產品。所以我買其他線上課程平台的課程來體驗,其中包含 Alpha Camp 的初階 Bootcamp 來參與。

當時就發現只有三件事情讓我能持續做到 4:00am 都還停不下來: 寫程式、看漫畫、修照片,寫程式就是其中的一件。

主要是因為它滿足兩個要件,讓我有成就感,會想一直做的事:

  • 在寫程式當下,有立即性成果和回饋能刺激自己,有持續優化的動力。
  • 在寫完程式後,會有完整的成果可以 Demo 給別人看,能讓自己有成就感,無論好壞,我參與很大部分的產出。

有件事很重要,為了避免三分鐘熱度,我有把這件事情持續到至少一個月以上,發現這些感覺並沒有退去,我才認為是有機會的。

二、客觀上的衡量:技能、薪水、成功機率

技能能不能帶著走?

打開求職平台一看,junior 前端工程師的能力大致上就那些,即使不同公司也差異不大,JavaScript / CSS / inline CSS / React or Vue or Angular / State Management …。即使公司的 Domain 不同,技能樹差異不大。

薪水夠不夠?

打開求職平台一看,或者上網 Google 成功轉職的人薪水是多少,再怎麼糟就是 3X k,有部分可以到 4X k,少數可以到 5X k。以當時才 3X k 薪水而言,成本很低。而且會發現如果願意持續精進,薪水成長幅度是高的,轉職一年多經驗加上不停學習,之後再跳下間公司,很可能就加個 10 k 以上。

轉職成功的機率?

我算是相對謹慎的人,所以當然 Google 過轉職大概的成功率,包含 AppWorks School / Huli Bootcamp / 六角學院等等…。全部平均來看,轉職成功案例多,只要能堅持學習到最後,找到工作機率算高,差異在薪水多寡,如同上述,轉職前我薪水 3X k ,成本低。

轉職之路有沒有足夠的資訊輔助?

有,上網 Google 「轉職前端工程師」,會發現有各種方法告訴你可以怎麼學習,讓你有機會轉職成前端工程師。

綜合以上推力和拉力,就大概確定要轉職,不過都僅止於自己的推演和網路的資料,還有一點非常重要,就是:「找身邊朋友聊聊,最好能找前端工程聊聊」。

這點很重要,帶著自己的認知,和身邊相關的人分享,讓他們問問題,甚至挑戰你的邏輯,因為一定有沒想到的觀點。

倒不是問到沒思考的風險、或邏輯有誤後,就決定不轉職了,而是

即使被問倒後,還是能接受所有的風險,並且打從心底和說出:「我就是要去轉職,這是我自己的決定,也會承擔後果」。

然後,最好是找「前端工程師」聊過。

很幸運地,無論是重要友人或是前公司幾位同事、主管,都願意聽我分享,並給予我珍貴的建議。


對自己的最後一問

經過持續反思不滿足現職的原因、實際嘗試學習程式、與軟工或朋友聊過後,最後的最後,我問自己一個問題:

如果現在的我選擇不嘗試,那三年後的我會不會後悔? 答案是:會後悔。

這是促使我邁向轉職路的最後一推。


轉職之後,期待有沒有落差?

重點結論而言:我喜歡現在的職位,轉職後的工作,確實滿足許多先前我不滿足的部分。

分為兩個層面分享,一個是比較正面的回饋,包含轉職後滿足期待的部分,另一個是比較負面的回饋,包含轉職中犧牲的部分,及工作後依然要面對的挑戰。

一、轉職後的正向回饋

正能量滿滿,就是提幾個確實達到我目標的部分,包含以下幾點:

1. 職位本身的滿足

我很喜歡現在前端工程師職位所帶來的貢獻感和成就感。舉例而言:

三個月內重製數個對外官網頁面,由原本的 Wordpress 託管,改到 AWS S3 上,讓 performance 提高,並優化 RWD 體驗。除此之外,還需將這幾個頁面的內容,串接到 Contentful CMS 平台,讓這幾個頁面的資料能夠直接被 MKT 團隊透過 GUI 介面修改。在每次部署時,利用 CI/CD ,跑 script 抓取並製作出最新的 json 內容資料檔案,最後打包成靜態頁面,上傳到 S3。

這幾個頁面與公司招攬客戶有高度關聯,讓我實質感受到貢獻感,同時算 Own 這個專案,並且挑戰先前沒做過的技術,擁有很足夠的成就感。

2. 技能能帶著走嗎

目前工作上用的是 JavaScript / TypeScript / React Hook / React Context / styled-component / webpack / Git / Gitlab CICD…。

老實講,實力還有太多需要進步的地方(菜 Orz),但至少這些技術精進後,如果要跳到其他公司,都有蠻大機會可以沿用。也就是技能可以帶著走跳,持續精進就能讓選擇公司的權利更高。

3. 薪水成長

公司都會簽保密協定,但總而言之,比起轉職前,大概提升了 1.5 倍左右。無論是在同間公司精進或跳巢,在現在的大環境下,理論上會越來越好。(當然跳巢漲比較快)

二、轉職後的負向回饋

網路上轉職文章,大多提好的成果,這邊也想提些比較不好的,畢竟一定有好有壞,只提供好的資訊不太合理。

但也強調,造成負向情況的原因有很多,例如:個性是否容易焦慮、原本的身體是否健康、轉職設定時間長短等等。

1. 健康狀況變差

健康狀況的損失,算是可預期的,多少有預料到可能會變差。只是變得比想像中更差。我轉職歷程大概是這樣:

  • 2019 / 11 前,零零總總投入 100 hr up
  • 2019 / 11 每週投入學習與專案 40 ~ 50 hr
  • 2019 / 12 ~ 2020 / 04 每週投入學習與專案 60 ~ 70 hr
  • 2020 / 04 ~ 2020 / 05 每週練面試題與找工作 40 hr
  • 2020 / 05 開始擔任前端工程

隨意的粗估大約花費 1300 ~ 1500 hr 的時間,而很多時候是深夜凌晨時段還在寫 Code,這段時間是焦慮的。

主要有兩個原因,一個是會自我懷疑是否能成功,一個是我借十萬左右來轉職的,壓力會更多(不鼓勵也不反對,想清楚就好,主因是我認為時間比金錢更重要,存夠再轉的時間成本比較不划算)。

即使是剛擔任前端工程師時,我也沒改掉持續工作和作息混亂的習慣,而且因為所處的團隊剛好忙碌,沒有蜜月期直接衝刺,這最終的結果,就是近期胃食道逆流、胃發炎、脹氣嚴重,說實話身體蠻痛苦的。

當然不是每個人都會搞成這樣,也有很多人健康都良好。

只是如果你是一位很容易自我懷疑、會一直衝刺工作、生活作息隨便的人,沒有同時規劃怎麼維持健康,那麼就有可能導致這樣的後果。

2. 溝通成本依然高

為什麼會想提這點?是因為偶而會聽到工程師不太用溝通的錯誤觀點。

我認為「很看公司和團隊」,因為每個團隊的工程師角色不同,有的可能被保護的很好專心寫 code,有的可能要去面對很多會議。

但再怎麼樣,都不可能不溝通,至少多少要能溝通需求以及 API 規格。

所以,最能專心寫 code、寫自己喜歡的專案的時刻,其實是在轉職的那段時光,因為可以決定任何想寫的功能,甚至技術,寫自己想寫的專案。那時還不太需要與他人溝通的成本。

實際工作上,當然不是這樣運轉的,溝通與開會的時間,許多時候就佔掉 30 ~ 50 %,一天的開發時間就是 4 ~ 6 小時,有的人甚至更少。更不用說 Sprint Demo 還要準備投影片之類的,也需要時間。而通常越資深越需要越強的溝通能力。

順帶一提,其實軟體工程師要會溝通是很合理的事,因為:

軟體工程師是用 coding 解決問題的人,不只是寫 code 的人。而要解決問題就要會透過詢問和溝通,來探究問題的本質。

能夠探究問題本質或是會溝通技術又強的工程師真的很厲害。

3. 轉職新手的壓力

轉職只是開始!就像玩遊戲剛出新手村一樣,未來的路還很漫長,同時也會發現身旁有一堆怪要打、有一堆人比你強,壓力不會少。甚至聽過有人會遇到很差的新手工作環境,還是需要先撐一陣子,才有經驗籌碼找更好的工作。

剛出新手村,因為太菜,所以處於什麼環境大概都能成長,也能不斷地碰到新鮮的技術或功能,讓你持續學習和成長。網路上也總是有強者的資料可以閱讀,大概不覺得無聊或沒新東西玩 。

但同時也因初階,思維不夠深或縝密,有時在討論時提出的技術想法,可能會被質疑的眼光看,當然不一定代表是有惡意的。不過會需要練習在不信任的眼光下(有的人僅僅是因為你非本科的背景,就會不相信你),試著提出自己的想法。

例如可以嘗試:

實際訂出多久以後要換公司,可以很久也可以很短。重點是,別人怎麼看我就沒那麼重要,因為會離開,我學會了,能帶著走,是最重要的。

除此之外,要怎麼樣在需求持續來的過程中,持續維持自己的學習步調,也是蠻大的挑戰,我還沒找到平衡。

總體來說,極少有那種成功轉職,之後就一帆風順的美好結局。大多的狀況是:挑戰不會停,學習不止息,焦慮永遠有,人生繼續走。


綜合而言,對於想轉職者的建議列表

我從上述脈絡精簡與延伸,統整的轉職建議列表如下:

  1. 反思現狀的職涯到底不滿足在哪裡?把不滿足的推力都列下來。
  2. 轉職前端工程師後就能滿足嗎?把拉力列下來,看是否有解決推力。
  3. 嘗試 coding 至少一個月以上,確保不討厭這件事,也非三分鐘熱度。
  4. 把想轉職的緣由和策略,分享給朋友或者工程師聽,讓他們挑戰自己。
  5. 把風險列下來,確保可以接受最糟的狀況,成敗後果自負。
  6. 訂個明確的轉職時程,與期望薪資。例:半年內,60w 年薪 up 。
  7. 在身心狀態好時,先準備挫折大時的應對方案,if 挫折大就怎麼舒壓。
  8. 好好享受轉職寫 code 時光,有很多時間寫程式且自主權高。
  9. 永遠都要學,因此學會怎麼學才重要,找到適合自己的方法。
  10. 心態上要記得:轉職只是開始,未來的路還很長。

這邊補充三點,分別是第 6. 點、第 7. 點以及第 9. 點。

關於「6. 訂個明確的轉職時程,與期望薪資。例:半年內,60w 年薪 up」

是因為有年薪後,會更容易決定要學什麼; 有時程後,可以回推時間規劃。綜合兩者,會比較好規劃轉職的過程。

舉例:有年薪的訂立後,就直接先去看職缺,挑幾間符合期待年薪的公司,把需要的條件取共同交集列下來,差不多就是找工作前必須夠熟的能力。

接著有半年的時間,以終為始,如果半年要轉職,那最後一個月要準備面試、投履歷和找工作,倒數第二個月要做專案作品等等,會更好規劃。

如果要找適合的轉職課程或平台,也建議先這樣做會較好。避免遇到整個 bootcamp 學完,框架只會 jQury ,結果想要去的公司都在用 React / Vue 了之類的後果。

關於「7. 在身心狀態好時,先準備挫折大時的應對方案,if 挫折大就怎麼舒壓」

簡單來說,在身心狀態不好、挫折很大的時候,很難有心力去制定要怎麼放鬆或舒壓,因為意志力是有限的,挫折大時,意志通常被花光了。

因此最好在狀態好時,先把挫折很大、快放棄時,怎麼做才能舒緩壓力或恢復能量的方法寫下來,真的不行時,直接拿出來看,無腦的照著做,會有比較大的機會更快速的復原。

換句話說,其實就是程式中的 if XXX 就 XXX 的概念,可以多列幾個,不一定都做得到,有列有機會。

關於「9. 永遠都要學,因此學會怎麼學才重要,找到適合自己的方法」

永遠要持續學習,就是軟體工程師的寫照,沒什麼好說的。但怎麼學方法真的是每個人不同,最好能趁著在轉職期間,整理出一套自己的方法,方法不一定要很確定或超詳盡,至少先有了,之後慢慢修正。

舉自己的例子:偏向解決問題或目標導向型學習,要我沒事去把文件看完根本不可能。我曾看到好友早上 9 ~ 10 點,都固定會先到公司看 styled-componet 的文件,覺得超棒,很想學,兩天就放棄了。

我喜歡的是在任何專案中,實際遇到一個問題並且要解決時,把這個東西學習起來。例如:最近在專案中遇到需要打多個 fetch 後,但又需要這些 fetch 同時做完,於是就去看了 Promise all 。學起來,做筆記。

這樣的優點是,學的當下就應用,會很深刻,因為真的碰到了問題並解決它。反之,這樣的缺點是,很難系統性的學習,學習會變得很片段化。

我目前還沒有很好的解法,在想或許是寫系統性的技術部落格,或是來做工作外,專門為學習而生的目的性專案。

以上就是我學習的方式,和過程中反思的過程。


結語

文中沒提到個人背景,並不是不重要,而是探詢自己的為什麼才是最優先的。在理解自己之前,就先去看別人背景,反而可能會產生一種我們很像,那我也很適合轉職吧?並且就會轉職成功 / 失敗吧?的認定偏誤。

我認為正確的順序是:先探詢到自己的目標後,再去找和自己相同背景的人如何實踐這個目標,會更有意義。而這篇文章主要探討自己的目標居多。

所以最重要的是:

確實地去思考轉職能為自己的職涯,解決什麼問題,並且在衡量風險後,做出一個自己認定的最佳答案。最後,無論答案是轉職與否 ,是轉職工程師還是其他職位,都要能為其後所帶來的結果負責。

大方向的方法是上述的提醒列表,都有做到,至少有基本盤的認知。

最後私心推薦轉職平台的話,AppWorks SchoolLidemy Bootcamp 都很推!因為沒有同儕密集討論或合作或比較的話,我覺得超容易耍廢,這兩個平台都能滿足我的需求,且又符合目前的前端技能需求。

而我最後是在 AppWorks School 中,透過其所規劃良好的「目標導向型」學習方式中成功轉職,它運作的核心不是手把手的課程教學,而是「工作導向」的自學模式,舉例而言:每天早上提供你一項任務需求,你就想辦法自己透過網路資源、同儕交流等方式,用程式碼把需求實踐,並且推上 GitHub,是非常項工作模式的,我覺得很棒,因為這才真正能學到如何工作,而不是如何上課。

最後提個蠻重要的事情,就是轉職成功,有個對自己而言很重要的成果:

找回職涯上的自主權或者說職涯上的自信。

在轉職前,我所處的公司算新創、透明化、自主權高,意思是,無論你是什麼職位,理論上都可以提出 idea,公司有資源就有機會幫你實踐。

自己的舞台,理應可以自己創造。但我創造不出來,沒有任何好的想法,工作能力上也沒有特別優秀的地方,我好像也不算不努力不認真?到底該如何是好?

總之,就是處於職涯高度自我懷疑的狀態。

這次轉職的成果,是我謹慎地考量反思、多方衡量諮詢、冒一定風險後,最後做出決定,並確實執行到底,最後達成的結果。

這個過程讓我找回些職涯上的自信,因為算是透過自我的選擇和努力,翻轉職涯處境。也讓我相信,在一定的階級內,透過提供適當的教育資源與良好的學習環境,是有機會能促進水平階級的流動。

當然,轉職的過程中包含了很多人的協助與鼓勵,每當夜深人靜回想起這一切,依然深深地覺得自己是個幸運的人啊。

如果分享的內容對你有幫助,歡迎 點此小額贊助請我喝杯咖啡 😌 ; 如果發現部落格文章內容有誤,或有想進一步討論的內容,歡迎點此前往開 Issues 討論,感謝!