我想在說說自己的故事之餘,也整理一些一路走來的建議。如果你也想轉職工程師,可以從這 5 件事情開始:
近幾年台灣軟體工程師的職缺變多,薪水也提高不少,身邊很多不管是不是資工系出身的朋友都躍躍欲試。我自己也是從大學時期不太相關的工學院,透過修課、實習、 side project 等方式一步步轉職成軟體工程師,現在有幸在新加坡就職。我想把自己一些自身經驗分享出來,讓想嘗試卻不知道如何起步的你,有一點參考方向。
有個具體的目標準備起來一定是比較容易的,如果你想當工程師賺錢,就必須了解現在的就業市場有哪些機會、需要什麼樣的能力。依我自己的觀察,不管是什麼樣規模的公司,通常都會招前 / 後端工程師,這也是我覺得比較容易轉職成功的職缺。
前端工程師包括網頁跟 app (ios & android) 工程師,負責開發跟使用者互動的頁面,串接後端 API ,而後端工程師大多職缺描述會寫後端 API 、資料庫功能的維護與開發。前後端工程師我覺得是其實不用懂很多就可以做出能動的東西,當然懂的多的人可以做出又快又好的架構,但對剛入門的人來説,也是相對容易累積作品的領域。
建議可以逛逛求職網站 (104 本土企業多, linkedin 外商多, yourator 新創多),看看你中意的職缺需要什麼樣的能力,有個方向準備絕對是更容易的。也不用被公司列出的多項條件嚇到,通常只要滿足幾項就能有面試機會。
上手難度:⭐️
收益:⭐️⭐️⭐️
當你看中幾個職位,能針對那些職位準備你的作品,一定對面試是有幫助的。例如你想投一個全端工程師的職位,公司用 Go 開發後端,用 React 作為前端框架,如果你剛好有一個作品前後端用到的技能都跟公司開出的缺一樣,招你進來後你可以很快的上手,對公司通常會是加分的,面試時也有東西可以跟面試官聊。
不過這邊提醒一下,前後端框架一直在推陳出新,不用拘泥於學會多種語言框架,把一種語言一種框架練到熟才是更有價值的,之後轉學其他的語言也不會太難。如果不知道要學哪一個,看看多數職位列出需要什麼樣的技能,也是個不錯的著手方向。
求職期間也可以經營自己的 github ,把一些作品放在上面 ,如果你有能力,也可以在一些 open source 上貢獻,就我觀察在台灣的 open source 刷存在感的人其實不多,競爭者少的話,你在履歷上有這份經歷就會很顯眼。想知道具體怎麼著手的人,可以參考這兩篇文章:
(小科普一下, github 是以 git 這個版本控制工具為核心的線上協作平台,很多工程師會在上面協作開發或放上自己的作品,上面也有很多 open source 開源的專案,如果你還是不清楚,可以利用上面提到的關鍵字去搜尋哦!)
上手難度:⭐️⭐️⭐️
收益:⭐️⭐️⭐️⭐️
很多科技公司愛考白板題,導致很多面試者都在 leetcode 等網站上刷了一題又一題。我覺得對一張白紙要轉職的人來說,可以刷題練習寫程式的手感跟解題思維,但沒有必要投注所有時間在上面,如果是 hard 的難題更沒必要了。(會考 hard 題目的公司,如果沒什麼經歷可能連面試都進不去,準備這個的 cp 值其實不高)
我大學剛畢業履歷沒什麼東西的時期,投的幾家公司問的程式題都不會太難,頂多是 leetcode medium ,有些題目甚至只是要確認你會不會寫程式(例如反轉字串)。
另外我也觀察到,對不少新創公司或是規模不大的公司來說,你 leetcode 能解出幾題根本不是重點,更重要的是招你進來之後能不能完成公司現在要做的事,如果有一些實作經驗(像剛剛提到的 side project ),可能比解題解得很快有幫助。
當然,在別人考的題目是要確認你會寫程式時,你不能完全寫不出來,畢竟軟體工程師的日常工作都在寫程式。對於刷題,我會建議初學者選一個程式語言(不管是因為他熱門、好寫、或是跟你的 side project 有關),利用解題的過程更熟悉這個語言,也練習用程式解題的抽象思考。
上手難度:跟你刷的難度成正比 (easy: ⭐️⭐️, medium: ⭐️⭐️⭐️, hard: ⭐️⭐️⭐️⭐️⭐️
收益:看你的目標公司(要即戰力的公司: ⭐️⭐️, 喜歡考刷題的外商公司: ⭐️⭐️⭐️⭐️)
如果你有好的經歷或學歷,要拿到面試機會就更容易。對準備轉職的人來說,一開始能拿到的 offer 條件可能比較不好,但當你有了第一份軟體工程師的職位,累積一點經驗後,願意給你面試機會的公司一定是多很多的,而且在軟體業跳槽是常態,就算一開始的起薪低,也能透過跳槽幫自己加薪。
如果你還是學生在考慮轉換跑道,就有更多的道路可以嘗試了。例如找實習,不少公司對實習生的要求並不會太高,有一點基礎也許公司就願意讓你試試看。小公司的實習又比大公司好找一些,如果及早規劃,從小公司實習跳大公司實習,更容易一步步打造漂亮的履歷。
如果你願意的話,也可以試著取得資工領域的學位,對於第一份工作來說,學歷是個不錯的敲門磚。不過這條路也會相對辛苦一點,像是近年國內資工所人數的報名人數都很高,要錄取本身就不容易。如果你沒什麼基礎,進去後要一邊惡補程式基礎一邊做研究跟修課,也會過得很忙很辛苦。好處是如果你真的想學到什麼,學校提供了很好的環境跟資源。
題外話,如果你有出國工作的夢想,刷個當地的學歷是很多人用的方法。當然這條路要付出的心血跟努力、要面對的競爭絕對是一點也不輕鬆的。
上手難度:⭐️⭐️⭐️⭐️⭐️
收益:⭐️⭐️⭐️⭐️⭐️
這一點我覺得很重要,轉職的過程基本上是從零開始學習另一個領域,要學的東西肯定不少。幸運的是資工領域在線上能找到非常多的資源,甚至可以上到國外名校的課程(例如柏克萊大學的 CS 系列課程),如果你有心可以在網路上挖掘到非常多的資源來讀,如果你很忙或是不知從何下手,也很容易找到別人幫你包好的課程。
之所以把這點放最後,是因為就算看了很多線上課程學到很多知識,在履歷跟面試其實不容易體現出來,如果是找工作導向的人,還是需要花時間利用學到的東西打造成作品,不能只滿足於學到東西。自己做 side project 或者把線上課程的作業做好做完善都可以,有些好課的作業設計得很好,寫完是可以放進作品的。
當然如果是基於個人熱忱想學的不在此限,想上什麼課想不想做作業都隨你開心,能從熱忱出發累積作品也是個很好的方向。
上手難度:⭐️⭐️
收益:漂亮履歷 ⭐️⭐️ ,自我成長 ⭐️⭐️⭐️⭐️⭐️
上面幾點總結下來,如果是短時間想找到工作的,建議從最上面開始準備,如果是有時間慢慢累積的人,建議從下面幾點開始累積實力。
這些建議都是我自己親身走過的,就我自己來說,對我找到現在工作最有幫助的三件事,我覺得是考上台大資工所的學歷、研究所時期在知名外商實習的經歷、自己看線上課程累積的知識(幫助我做論文、通過面試),不過我一路走來的不同階段,每點上面列的建議都曾經給了我不少幫助。
當然,一定還存在著我沒經歷過的轉職方法,像是去資策會等機構上課、在公司內部內轉等等,因為我沒有體驗過,在這邊就不多著墨。最後,上面列的幾點建議,難度跟收益每個人感受可能不太一樣,但希望能帶給看到這篇文章的你一點方向。