(轉職)對我來說,這兩年來的時間是不斷往前突破,

意思是,每當達到一個小里程碑,取代當下心態的不是休息,而是更慌張,

慌張自己會卡住、自己會無法前進、自己會被學歷綁住...。

 

直到大概三個多月前拿到現在的 offer,

這兩年努力的踏實感才出現。

 

因此,趁著這份「踏實感」記憶猶存的時候,

分享給現在在轉職、考慮轉職的你!

 

 

這篇文章寫給誰?

給跟和兩年前的我相似的朋友,尤其是以下三種人,是我想說故事的對象:

 

1. 覺得本身沒什麼「技能」,羨慕有「技能」的人有較好的收入

2. 覺得自己的工作環境日復一日,然而身邊的人覺得「自己的學經歷只能做這樣的工

   作」,而你看不慣這樣的想法

3. 工作了三年五年,想要轉換跑道,卻發現自己沒有任何優勢,卻又不甘願就這樣下去

 

以上三點中,後兩者跟加入直銷的人講的話很像,

但不一樣的是,我現在寫的是工程師的職涯路。

 

 

為什麼我要寫這篇文章?

前面「這篇文章寫給誰」已經回答 90% 的動機,

剩下的 10% ,是一直以來在 ptt 獲得很多資訊、進而想回饋。

 

滿腔熱情投入喜愛的旅遊業,但面臨現實的是...

在當工程師之前,我是一個廣泛的旅遊業從業人員,

我當過導遊、做過民宿,也在飯店工作過,而我的大學念的,是史地系。

 

大學剛畢業的時候,對於薪水、職涯發展想法沒有太多,

也算是年輕熱血、本身活潑搞笑,投入了「聽起來很有趣」的旅遊業,

而在三年左右,就感受到薪資的瓶頸----在南部做旅遊業,薪資很難超過35k。

(除非你特別優秀!而且是超優秀那種)

 

我在墾丁,看到一個熱血的青年加入民宿產業,過著早8晚10的生活,

一天工作快14個小時,薪水多少?22k,老闆還一副賞你飯吃、給你學習的臉,

 

現在回頭看,我當時沒有領悟到職涯選擇上重要的道理:「產業極限」。

 

 

生活上遇到產業極限,澆熄工作熱誠

 

什麼是產業極限?

 

意思是,「一個產業的高薪、可能會是另一個產業的低薪」。

舉例來說,「旅遊業 40k」,那麼這算是旅遊產業的高薪,

但「寫程式薪水 40k」就會被說血汗低薪。

 

剛開始我進旅遊業時,我一直告訴自己說,

喜歡這個產業就待著、遇到好老闆就多學,等學完以後日子會更好;

當時的我認為「還好我在那麼稍微有人性的地方上班、老闆要慎選」。

 

是,當你慎選老闆、到一個比較有良心的公司上班時,

你的確會領到「該產業」平均以上的薪資、擁有平均以上的福利,

但一切僅限於「該產業」,我沒有認真去面對----產業有它的天花板在。

 

認清這件事情,是工作三年左右,跟幾個高中、大學同學聊天的啟發,

如果你在南部做國貿,可能剛開始 28k ,漸漸的每年調 2~3k ,

三年以後就會很尷尬,你知道你未來不會有大幅度的成長,可能十年後破不了 50k;

但當你是台南人在台南工作,有個 35k 的白領工作,真的很難去放棄。

 

旅遊業更是如此,如果你不是什麼儲備幹部、top sales,

基本上,工作三年還是很難突破35k。

 

而當我聽到「台北的工程師」起薪 40k,甚至 50, 60k 的時候,

我身邊的朋友普遍是:「啊喲,那是別人唸資工的,台清交資工才有啦」

或是:「嗯....寫程式不是每個人都能寫吧?」

 

這些都是很扎實且有說服力的理由,

但如同我前面提到的第二點

「身邊的人覺得`自己的學經歷只能做這樣的工作`,而你看不慣這樣的想法」

 

而我,就是這樣的人。

 

A man with a backpack on the busy Times Square
照片來源: Unsplash, CC Licensed

 

密謀轉職,策略考量:先看大方向、再看小細節

我的轉折點說來很戲劇化,五年旅遊相關業的工作經驗中,

在第三年的時候,我就開始思考「人生是否還有不一樣的可能?」

 

。想過把日文練強配上自己的口才,可以當日本線導遊

>> 現在自由行盛行、資訊也越來越透明,導遊人才又太多,我沒信心可以做到頂尖 (X)

 

。去澳洲打工賺回人生第一桶金

>> 去了半年,有天想到「然後呢?我終究是得回到台灣面對同樣的問題,

>> 我無法待在澳洲一輩子」,於是就回台灣了 (X)

 

。做保險、做直銷

>> 嗯....不太適合我的個性 (X)

 

直到後來加入一間旅遊新創公司後,我開始思考「轉職工程師」這條路。

 

很慶幸,活在這個有 google、有 ptt 的時代,真的很快樂也很安全;

什麼意思呢?基本上,所有你想做的事情,你多少都可以找到一點資訊跟資源,

尤其在 ptt 上。

 

職涯道路選擇三大方向心法

我翻了一些關於資策會、Alpha camp 轉職相關的文章,也從中看到了一些轉職的資訊,

讓我開始思考「轉職工程師」這條路到底可不可行,我的想法很單純:

 

1.「供給與需求」的趨勢很重要:

  我不走日本線導遊,一部分是團客量下滑、二來是導遊人才供給太多,

  在需求下滑、供給上升的情況下,沒有信心可以做到頂尖;

  而如果走不到頂尖,薪水也不會比現在好多少。

  而工程師薪資相對穩定,且人才需求遠大於人才供給,我認為是機會。

 

2.「經驗的累積能不能帶走?」很重要:

  在旅遊業,你做久了,學習到的是各種軟實力與市場資訊,

  偏偏這個市場又薄利到近乎無利可圖,軟實力在轉換領域上形同沒有;

  但工程師這工作,你在 A 公司寫 php、到 B 公司還是可以寫 php,

  甚至到日本、新加坡、美國也還是可以寫 php ,專業跟著自己走。

 

3.「進入門檻」很重要:

  投資銀行、基金經理人薪水很高,台積電、聯發科薪水也很不錯,

  但這些工作對一個史地系畢業、在旅遊業打滾五年的人來說,門檻太高了!

  我可能需要花個一年準備考試、兩年念研究所,「才有機會」拿到面試。

  而「部分的工程師」,其實薪資水平高於我的現況、門檻在了解過後相對也不高。

  (下面會敘述,是「哪部分的工程師」)

 

基於以上三個「大方向」上的理由,我就決定,

我要試著往「工程師」的路前進。

 

成為工程師細節執行門路

怎麼思考「成為工程師」這條路?

如果能重來,我會怎麼給自己什麼樣的建議?

 

融合了一些我過去的經驗與我後來協助朋友轉職的經驗,

以這些經驗來看,認真唸書+實做約 400~800 個小時(依照英文能力與天份有所不同)

就可以拿到面試的門票。

 

我的建議如下:

 

1.從「網路應用」領域開始

 

「網路應用」指的是 web, app這兩個領域,為什麼從這個兩個領域開始呢?

原因很簡單,一來是進入門檻相對低、二來是學習資源好找且好懂。

 

舉例來說, Udemy、Udacity、Codecademy 上就有許多資源可以進修,

遇到問題時在 stack overflow 上也幾乎都能找到解答

(前題是「了解問題、問對問題」)

 

等到你成為一個稱職的 SOD (Stack Overflow Developer) 要學什麼都只是時間問題!

 

2.從 web 開始,尤其從前端開始

 

為什麼不從 app 開始?

這是我後來才體悟到的,當初在 web 與 app 的抉擇上,

沒有思考太多就秒選 web 回過頭來看,算是幸運。

 

為什麼說幸運呢?因為我的經驗中,

「公司是否有一個比你強的人教你東西、你能對公司有所貢獻」這兩點,

是達到「邊工作邊進步」的兩個重要的因素,缺少其中一個,都會讓速度變慢。

 

而在求職市場上,一間小公司,

可能只有一個 android、一個 ios 工程師,甚至只有一個 app 工程師;

但一間小公司,同時有兩個以上的 web 工程師是還不算是少數。

 

(甚至 app 是外包,請一個工程師來維護 ios + android 囧>)

 

因此,當公司有一個相對於資深的工程師,可以從他身上學到東西,

更重要的是,能夠做出對公司有貢獻的事,若能達到這樣子的狀態,

通常自己會有成就感、也可以看到目標往前走,前進的速度是最穩定的。

 

但以 app 領域來說,常常一個人就要頂 android or ios,沒有前輩可以學習,

而開發團隊較大( app team 超過三人以上的),條件通常比較嚴苛:

有經驗 or 資工系、理工科背景。

 

因此,相對於 web 來說, app 是一條比較困難、條件比較嚴苛的一條路,

雖然我身邊還是有一些朋友從「非本科」轉「app工程師」,但通常是:

1. 2014年以前就轉(需求更大、供給更少)

2. 很努力、也有天份

 

綜合以上,如果你是新手、對 web 與 app 沒有明顯偏好、非本科想要踏進來的朋友,

以求職市場面來看,我認為走 web 是一條比較安全、相對輕鬆的路。

(除非你對 app 有滿滿的愛,愛可以克服很多事情,真的!)

 

那,為什麼從前端開始呢?一來是我們對瀏覽器、網站的相對熟悉,

寫完的作品馬上可以看到、有互動,成就感來得比較快。

二來是工作機會多(呼應到「為什麼建議走 web」)。

 

舉例來說,我現在去 104 搜尋 android,出來大概 2400 筆,搜尋 ios 大概 1800 筆;

而 javascript 呢?總共有 3900 筆!

 

 

3. 挑個有實作的課程

 

相對於 Udacity、Udemy 這種小單元小單元的課程,

我會比較推薦「可以看到老師從 0 開始完成一個具體作品」的課程。

 

例如 網頁基礎 15天 https://www.everyonecanwebsite.com/

 

課程中老師在解釋完基本概念後,會從 0 開始完成一個成品,

因此,

「你不只知道一個功能該怎麼做,更會知道真實的開發中,

  會遇到什麼問題----見樹又見林」。

 

我並不推薦不懂程式的人透過 Udacity 或 Udemy 做學習,

這兩個平台的特色是通常一堂課不會太長,

但也因為不會太長,所以課程是「言簡意賅」的,

老師在實作每個功能時,並不會「犯錯」也不會有「思考過程」,而是直接給你答案,

但自己做開發時,卻發現無法很系統性的思考「開發」這件事情。

 

Udemy 上面有很多單一主題非常好的課,

例如 JavaScript: Understanding the Weird Parts

https://www.udemy.com/understand-javascript/

我超級愛這堂課、也從中學習到超級多基礎的 javascript,

讓我的 js 觀念前進一大步,

 

但,當初我在連一個網頁都刻不出來的情況下,這堂課對我來說不是解藥、而是毒藥。

因此,除非你過去有些程式底子、或是過去的工程素養很好,

不然我會建議「先找實作多於觀念的課」,等有能力實做一點東西以後,

 

再把基礎的觀念摸深,然後「工具 <=> 基礎」兩邊互相交換,

會讓學習更有動力、也可以把每天在做的事情了解得更透徹!

 

4. 完成前端作品以後,開始學後端

 

後端的部分我推薦學 php,

原因與前面邏輯一致----工作機會多。

 

雖然我推薦走「先」走前端工程師,但完全不懂後端的前端工程師,找工作真的很競爭,

尤其要跟又會設計、又會一點前端的人,如果你完全不懂後端,幾乎沒有競爭力。

 

管道我很推薦 laracast https://laracasts.com/

以基礎的 php 來說 https://laracasts.com/series/php-for-beginners 是免費的!

 

以我過去的經驗來說,並不需要學到很精,只要基本的資料 CRUD,

能讓自己寫的前端網頁透過 php 把資料寫進資料庫裡面就行了。

 

以上的敘述對初學者來說或許很可怕,但別擔心,

這些都是跟著課程(or 你喜歡的書)走,

多走幾次就能學會的基本功。

如果能掌握基礎的前端技能、最最基礎的 php(嚴格來說,是後端程式操作資料庫),

那麼,你已經拿到「前端工程師」的門票,

 

 

成長最快速的路:迅速進入第一份工作,無論它長什麼樣子

這是我後來領悟出來的道理,像我這種以前完全沒寫過程式的人,

進步最快的方式是拿到實戰的機會,模仿別人的程式碼、了解背後的脈絡、再去學更多新

的知識。

 

而這一切的起源來自於「找到一個可以實戰的機會」,否則沒有後續。

 

我的程式學習路程不是自學,是加入 alpha camp 後端線下課程,當時學的是 rails。

學習的過程很棒,遇到優秀的老師、優秀的同學。

 

三個月結訓以後,當時非常想拿到 rails 的工作,

因為「已經練習 rails 三個月了,希望可以用 rails 找到工作」,

但天不從人願,全台北幾乎所有 rails 公司有在招募的,

只要是需求兩年以內的職缺,我全部都投了,

有拿到一些面試,但全部都沒拿到 offer。

 

過程很沮喪,看著當初帶來台北打拼的錢已經快用盡(有點像 30 年的劇情我知道),

曾經也打算放棄過、家人也勸過我不要太固執,直到我想通幾個道理:

 

1.如果投 rails 拿不到工作,為什麼我不投別的程式語言?

2.rails 是操作資料庫、顯示網頁的框架,懂了中間的流程跟概念,應該也拿得到其他後

端語言的 offer?

3.rails 在 104 上大概只有 150 個職缺,而 php 有 2000 多個,如果我真的要放棄,

等這 2000 多個投完再說吧!

 

甚至有朋友跟我說:「你這 2000 多個投完都沒找到工作,沒地方住我家讓你住」

於是,我開始踏上「狂投猛面」的面試之路。

小結論:

建議已經有程式基礎的朋友,如果你已經能做出一個小作品(會一點前端+後端),

除非你特別特別有自學能力、或是有朋友跟著做專案,我強力建議「馬上開始找工作」,

 

原因是什麼呢?

 

- 實戰跟練習中就有差,只要公司有稍微資深的人(如果能找到很資深當然好,但就算只

  有資深一點也很好)很容易點醒自己的盲點、也可以了解「原來會遇到這樣的問題、

  而這些問題別人是怎麼解決的」

 

- 工程師的技能是完全帶得走的。以前做旅遊業,每間公司的 SOP 不同、客群等級不同

  ,除了軟實力、心態面的東西以外,全部都要重來。而工程師,我前三份工作是寫 php

  + angular,隨著年資增長、實力增強,做的功能越來越複雜,雖然不是在同一專案、

  同一間公司,但累積卻是走在同一條路上。

 

上面的第二點不適合已經有獨立貢獻能力、甚至是能影響開發流程的資深工程師,

但非常適合新手工程師。

 

 

第一個我真正滿意的面試:你看似一無所有,但你還有學習能力

剛開始面試的時候,其實很沒自信,原因跟文章開頭的自我設限有關,

「覺得自己非本科系、又不是名校,為什麼相信我可以當工程師?」

 

這些自我設限限制了我面試的準備,讓我綁手綁腳,事後發現,我花了太多時間在沒意義

的事情上糾結:

 

1. 對方會不會覺得我學歷差...

>> 我是來工作的,我能貢獻就好

 

2. 我要怎麼解釋「想要成為工程師」這件事情?要怎麼舉例...

>> 雖然沒有背景,但我已經寫五個月、並完成一個完整的專案了,而且我會繼續寫下去

 

3. 面試的考題我都不會、我好無能、果然不是學四五個月就能轉職...

>> 去敘述自己會的部分、不會的部分去思考過去是否有做過類似的事情,

>> 或是會怎麼 google 未來怎麼透過進修、自學來彌補現在的不足

 

思考清楚以上的事情,專注在

「我能做什麼、我還有多少不足、要做什麼樣的事情來補強自己」上,

 

當我改用這樣的方式思考面試的時候,在面試時,

更能把焦點轉到我的動機、學習能力、熱情上,

而不是不相關的學歷、五年的旅遊業背景。

 

 

第一個我真正滿意的履歷表:你有了一些表現,你需要更好的環境及挑戰

如果你是已經在職中想離職的新手工程師、或是手上有些「很鳥 offer」的新手工程師,

我的建議是,如果你投不到 100 個職缺,放手繼續投,你可能還沒拿到最好的:

但如果你已經頭超過 100 個職缺了,就代表你能拿到的缺可能差不多這個程度,

你要做的是「增強實力」而不是「期望好運」。

 

什麼意思?意思是,如果你跟我一樣是非本科菜鳥,你沒有實績證明「能夠寫程式」,

對於風險趨避者、或是比較優秀的公司,他們對於人才的要求本來就比較高,因此,

你最該做的事情是「累積一定的實戰經驗」,

累積到以後,拿著這些經驗,去談加薪、或是換更好的工作。

 

「累積一定的實戰經驗」的意思是,去累積工程師的關鍵字,例如:

金流、部署、自動化測試、AWS、angular、vanilla javascript、API、Git...

 

而對我來說,我過去的經歷搭配上述的關鍵字有:

 

「將原本沒有版控的專案導入 Git,讓專案中兩位同仁協作更順暢」

「建置與維護 AWS,包含 EC2, RDS, Lambda, CloudWatch, S3」

「完成 javascript 30,讓自己能更了解 javascript 語言本身而不只是用框架」

「維護 angular 的 SPA,並用 ionic 包成 app」

「完成 Stripe、綠界科技金流串接」

 

 

每當我完成一整個功能的時候,我就對自己稍微有信心一點,

因為我知道自己在做的事情、與求職市場上對工程師的期望是更接近的,

當自己的關鍵字累積的更完整的時候,就會去面試、了解自己的狀況,

如果發現「另一個地方更能夠累積到好的關鍵字、有合適的挑戰」,

就是可以考慮換工作的時候了。

 

btw 如果你已經有作品,但沒有拿到 offer 且還沒投超過 100 個職缺,

常常不是代表你實力不夠,只是代表你不夠努力。

 

第一個我真正滿意的 offer:你有能力貢獻了,勇敢去爭取你要的

我的前兩份工作薪水都不高、團隊內也沒有很資深的前輩可以教我,

但以當時的學經歷以及對薪水的急迫性,差不多就是找到這樣的環境----

 

重點不在當時的環境,而是在能累積什麼。

 

第一份工作 大約 35k,陸續接了三個專案的維護與新功能開發,但因薪資凍漲而離職,

期間熟悉了 php,以及 linux 的操作,並碰觸到多數的「工程師關鍵字」,

例如:包含「金流、部署、AWS、angular、API、Git...等」。

 

第二份工作 大約 45k,讓我從頭到尾完整參與一個專案開發,

「實作並熟悉」常見「工程師關鍵字」,然後靠現有的技能,轉換到更成熟的開發團隊。

 

接著我就發現,

自己的思考漸漸從「如何寫程式」到「如何完成服務」到「如何完成容易維護的服務」,

面試的時候除了講「我會寫什麼語言、用過什麼工具」,

轉變成「遇到什麼樣的問題、怎麼樣拆解、最後選擇哪些方案」。

 

第一份工作結束後,我開始知道自己

「能做什麼」

「不會做什麼」

「該怎麼學會原本不會做的事」

 

第二份工作結束後,我開始探索自己

「為什麼要做」

「為什麼要用這個技術」

「這個技術為什麼出現?在出現以前人們怎麼解決同樣的問題?」

 

 

到這個時間的時候差不多是工作一年半左右

(過程是每天工作 12 小時、一次兩三個案子在身上)

透過朋友的內推,就到現在的公司。

 

 

Two "one-way" signs with arrows going different ways on a street in New York
照片來源: Unsplash, CC Licensed

最後,給 2018 年思考要不要進到軟體工程師領域的朋友

 

「轉職軟體工程師是個好選擇嗎?」

我會說,這個答案會隨著時間而改變,

如我上一篇文章提到的:回到供需法則。

 

當市場上 60 分以上的工程師有 100個、而需求有 500 個工程師時,

每個 60 分以上的都會被當成寶,而 30,40 分的工程師都能找到工作,而且薪資還不錯

 

當 60 分以上的工程師有 1000 個、而需求還是只有 500 個時,

只有 70 分的工程師才能找到工作,而 80,90 分的工程師才能得到不錯的報酬。

 

而以我的觀察來說,未來兩年左右,軟體工程師的需求還是大於供給很多,

現在進到這個領域、迅速累積自己「履歷關鍵字」,這還是條不錯的路。

 

「這工作要有天份、或是興趣嗎?」

說句坦白話,我對寫程式的興趣度普通。

 

以前的朋友聽到我轉職,或許會覺得「我找到興趣了很棒」,

諷刺的是,比較起寫程式,或許我更愛跟人喇賽、旅遊,跟寫一個購物車相比,

我覺得賣出一個行程、推薦客人去哪裡玩,甚至親自帶客人去體驗其實也很不錯,

 

但重點是什麼?重點是「我想要的工作環境、薪資,以前的產業跟工作給不了我」。

 

年輕的時候覺得為了理想、夢想、興趣犧牲是可行的,

長大以後發現,看懂大環境、了解自己的優劣勢、執行力、了解自己的價值觀與需求,才是讓自己過得更踏實的方法。

 

年輕時的興趣到底是不是興趣?興趣到底是什麼?

人該為了興趣做怎樣的選擇?人該怎麼選擇才會快樂?

這些是哲學問題,直得關起門來深思。

 

我最後選擇了轉職、也一直待下來,

不是因為我特別有天份,更不是對寫程式有多大的興趣,

而是這個職業給了我想要的工作環境,

例如組織扁平、工時彈性、一定的成就感以及很現實的:合理的報酬。

 

祝大家在求職&工作的路上,都能順利!

 

 

(本文經原作者 shanmon (翔夢) 授權轉載,並同意mit.Jobs編寫前言與製訂大、小標題,原文:《[心得] 文組生轉工程師攻略》)