【我們為什麼挑選這篇文章】文有點長,但是讀起來很過癮。一個本身不是工程師出身的文組生,要抱著怎麼樣的心態成功轉職呢?對我來說,最可貴的地方在於作者直接承認了寫程式不是他的最愛,而是一種選擇。更能理性地從不同角度分析,給予讀者截然不同的經驗分享。(責任編輯:陳君毅)
文:shanmon (翔夢)
先說一下我故事的結論: 兩年的時間,從一行程式碼都不會寫的史地系畢業生, 達到年薪破百的工程師。
誰適合閱讀這篇文章?
給跟和兩年前的我相似的朋友,尤其是以下三種人,是我想說故事的對象:
1. 覺得本身沒什麼「技能」,羨慕有「技能」的人有較好的收入
2. 覺得自己的工作環境日復一日,然而身邊的人覺得「自己的學經歷只能做這樣的工 作」,而你看不慣這樣的想法
3. 工作了三年五年,想要轉換跑道,卻發現自己沒有任何優勢,卻又不甘願就這樣下去。
以上三點中,後兩者跟加入直銷的人講的話很像, 但不一樣的是,我現在寫的是工程師的職涯路。
為什麼我要寫這篇文章?
前面「這篇文章寫給誰」已經回答 90% 的動機, 剩下的 10% ,是一直以來在 ptt 獲得很多資訊、進而想回饋。
在當工程師之前,我是一個廣泛的旅遊業從業人員, 我當過導遊、做過民宿,也在飯店工作過,而我的大學念的,是史地系。 大學剛畢業的時候,對於薪水、職涯發展想法沒有太多, 也算是年輕熱血、本身活潑搞笑,投入了「聽起來很有趣」的旅遊業, 而在三年左右,就感受到薪資的瓶頸——在南部做旅遊業,薪資很難超過 35k。(除非你特別優秀!而且是超優秀那種)
我在墾丁,看到一個熱血的青年加入民宿產業,過著早 8 晚 10 的生活, 一天工作快 14 個小時,薪水多少?22k,老闆還一副賞你飯吃、給你學習的臉, 現在回頭看,我當時沒有領悟到職涯選擇上重要的道理:「產業極限」。
什麼是產業極限? 意思是,「一個產業的高薪、可能會是另一個產業的低薪」。
舉例來說,「旅遊業 40k」,那麼這算是旅遊產業的高薪, 但「寫程式薪水 40k」就會被說血汗低薪。 剛開始我進旅遊業時,我一直告訴自己說, 喜歡這個產業就待著、遇到好老闆就多學,等學完以後日子會更好; 當時的我認為「還好我在那麼稍微有人性的地方上班、老闆要慎選」。
是,當你慎選老闆、到一個比較有良心的公司上班時, 你的確會領到「該產業」平均以上的薪資、擁有平均以上的福利, 但一切僅限於「該產業」,我沒有認真去面對——產業有它的天花板在。
認清這件事情,是工作三年左右,跟幾個高中、大學同學聊天的啟發, 如果你在南部做國貿,可能剛開始 28k ,漸漸的每年調 2~3k , 三年以後就會很尷尬,你知道你未來不會有大幅度的成長,可能十年後破不了 50k; 但當你是台南人在台南工作,有個 35k 的白領工作,真的很難去放棄。
旅遊業更是如此,如果你不是什麼儲備幹部、top sales, 基本上,工作三年還是很難突破 35k。 而當我聽到「台北的工程師」起薪 40k,甚至 50、60k 的時候, 我身邊的朋友普遍是:「啊喲,那是別人唸資工的,台清交資工才有啦」或是:「嗯…. 寫程式不是每個人都能寫吧?」
這些都是很扎實且有說服力的理由, 但如同我前面提到的第二點「身邊的人覺得『自己的學經歷只能做這樣的工作』,而你看不慣這樣的想法」而我,就是這樣的人。
先看大方向、再看小細節
我的轉折點說來很戲劇化,五年旅遊相關業的工作經驗中, 在第三年的時候,我就開始思考「人生是否還有不一樣的可能?」
想過把日文練強配上自己的口才,可以當日本線導遊
>> 現在自由行盛行、資訊也越來越透明,導遊人才又太多,我沒信心可以做到頂尖 (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 工程師」,但通常是以下兩個原因
a. 2014 年以前就轉(需求更大、供給更少)
b. 很努力、也有天份 綜合以上,如果你是新手、對 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 我超級愛這堂課、也從中學習到超級多基礎的 javascript, 讓我的 js 觀念前進一大步, 但,當初我在連一個網頁都刻不出來的情況下,這堂課對我來說不是解藥、而是毒藥。 因此,除非你過去有些程式底子、或是過去的工程素養很好, 不然我會建議「先找實作多於觀念的課」,等有能力實做一點東西以後, 再把基礎的觀念摸深,然後「工具 <=> 基礎」兩邊互相交換, 會讓學習更有動力、也可以把每天在做的事情了解得更透徹!
4. 完成前端作品以後,開始學後端 後端的部分我推薦學 php, 原因與前面邏輯一致—-工作機會多。 雖然我推薦走「先」走前端工程師,但完全不懂後端的前端工程師,找工作真的很競爭, 尤其要跟又會設計、又會一點前端的人,如果你完全不懂後端,幾乎沒有競爭力。
管道我很推薦 laracast 以基礎的 php 來說 https://laracasts.com/series/php-for-beginners 是免費的! 以我過去的經驗來說,並不需要學到很精,只要基本的資料 CRUD, 能讓自己寫的前端網頁透過 php 把資料寫進資料庫裡面就行了。 以上的敘述對初學者來說或許很可怕,但別擔心, 這些都是跟著課程(or 你喜歡的書)走, 多走幾次就能學會的基本功。
成長最快速的路:迅速進入第一份工作
迅速進入一份工作,無論它長什麼樣子。
這是我後來領悟出來的道理,像我這種以前完全沒寫過程式的人, 進步最快的方式是拿到實戰的機會,模仿別人的程式碼、了解背後的脈絡、再去學更多新 的知識。 而這一切的起源來自於「找到一個可以實戰的機會」,否則沒有後續。
我的程式學習路程不是自學,是加入 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 小時、一次兩三個案子在身上)透過朋友的內推,就到現在的公司。
轉職軟體工程師是個好選擇嗎?
最後,給 2018 年思考要不要進到軟體工程師領域的朋友「轉職軟體工程師是個好選擇嗎?」我會說,這個答案會隨著時間而改變, 如我上一篇文章提到的:回到供需法則。
當市場上 60 分以上的工程師有 100 個、而需求有 500 個工程師時, 每個 60 分以上的都會被當成寶,而 30,40 分的工程師都能找到工作,而且薪資還不錯 。 當 60 分以上的工程師有 1000 個、而需求還是只有 500 個時, 只有 70 分的工程師才能找到工作,而 80,90 分的工程師才能得到不錯的報酬。
而以我的觀察來說,未來兩年左右,軟體工程師的需求還是大於供給很多, 現在進到這個領域、迅速累積自己「履歷關鍵字」,這還是條不錯的路。
「這工作要有天份、或是興趣嗎?」說句坦白話,我對寫程式的興趣度普通。 以前的朋友聽到我轉職,或許會覺得「我找到興趣了很棒」, 諷刺的是,比較起寫程式,或許我更愛跟人喇賽、旅遊,跟寫一個購物車相比, 我覺得賣出一個行程、推薦客人去哪裡玩,甚至親自帶客人去體驗其實也很不錯,但重點是什麼?
重點是「我想要的工作環境、薪資,以前的產業跟工作給不了我」。 年輕的時候覺得為了理想、夢想、興趣犧牲是可行的, 長大以後發現,看懂大環境、了解自己的優劣勢、執行力、了解自己的價值觀與需求, 才是讓自己過得更踏實的方法。 年輕時的興趣到底是不是興趣?興趣到底是什麼? 人該為了興趣做怎樣的選擇?人該怎麼選擇才會快樂? 這些是哲學問題,直得關起門來深思。
我最後選擇了轉職、也一直待下來, 不是因為我特別有天份,更不是對寫程式有多大的興趣, 而是這個職業給了我想要的工作環境 , 例如組織扁平、工時彈性、一定的成就感以及很現實的:合理的報酬。 祝大家在求職&工作的路上,都能順利
——
(本文經原作者 shanmon (翔夢) 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文:《[心得] 文組生轉工程師攻略》首圖來源:Pexels,CC Licensed 。)
更多關於工程師的優質文章
工程師幹過最缺德的事:叫初學程式的朋友去學 C++!
過年把這篇拿給長輩看:工程師一點都不夢幻,很多人只是「基層藍領碼農」
工程師 2018 年的進修清單:行動端、網頁、大數據領域必學的 12 個框架
如果你平常關注人工智慧、fintech、區塊鏈、創新創業、數位行銷、技術開源、資安、物聯網、經營管理、科技小物等,加入《TO》跟我們一起關注社會、產業創新!
TechOrange 社群編輯、實習生持續徵才中
意者請提供履歷自傳以及文字作品,寄至 jobs@fusionmedium.com
來信主旨:【應徵】TechOrange _填上應徵職稱_:您的大名