我找到了一份寫程式的工作,迎接了人生第二次轉職。
資工系畢業後,我跟著社團老師去教吉他、賣樂器,每天工作都沒休假,操了五年搞到身體快壞掉,發現忙到爸媽及女友都快不認識我,才下定決心離職。當時我覺得既然利用興趣賺錢這麼痛苦,不如就挑個完全沒興趣但是準時上下班的工作吧?於是花了六七個月準備高普考,很幸運的讓我吊車尾考上了。
公職生涯生活雖穩定,人的問題卻遠大於工作的問題。即使後來我調到了一個非常自由的單位,但內心卻躁動不安,覺得生活沒什麼目標,一日度一日,不時也聽到在其他公部門的朋友分享他們職場光怪陸離的鬼故事,讓我也不太想轉調其他單位。為了不讓自己三十年後成為 800壯士,開始有了想要離開公職的念頭。
一年多前參加了 ALPHA camp 的大航道計畫,開始過著每天上班顧小孩還要熬夜唸書寫程式的生活,課程畢業後也看著各個同學陸續傳來轉職成功的好消息。前陣子我鼓起勇氣開始投遞履歷,經過一個多月的面試洗禮,每天心情起起伏伏,腦內不時地上演各種小劇場,還好在我腦子快要爆炸之前拿到一些不錯的 offer。
這過程中接受到很多人的幫助,也很感謝肯給予我機會面試的公司,以下我將分享這個月來準備面試的心得。
找個 mentor
剛開始投履歷時我感到徬徨和焦躁,時不時向 Demo day 隊友發牢騷。後來我主動向 AC 的校長 Bernard 尋求協助,他給了我一些鼓勵和準備方向,也介紹了一位業界的前輩跟我聊聊。這位前輩分享了他自己的職涯經歷,也以主管的角度來告訴我工程師該具備怎樣的特質,甚至主動的幫我檢視履歷,提供修改的建議,對我幫助非常大,實在不知道從何感激起。
在投履歷的初期,我有去應徵 AC 學長姐創辦的 Yourator 及 mit.Jobs 的工程師職缺,雖然他們覺得我目前的狀況(年紀以及需要養家等等)不太適合他們公司而沒錄取我,但事後 Yourator 的皓硯(也是 AC 畢業的學長)以及 mit.Jobs 的昶聿哥持續的和我保持聯繫,分享一些公司選擇和職涯的建議,協助我釐清一些想法,緩解我各種焦慮的症狀。
原先我以為大家工作這麼忙,只是因為找工作的問題跑去吵人家很不要臉,但或許是新創圈或軟體圈的前輩們本來就很樂於分享,其實只要注意禮貌及態度,這些前輩都很願意解答你的疑惑,並且給你非常實用的具體建議。
因此如果你在轉職的過程中感到徬徨,請厚著臉皮主動尋求協助,如果你是 AC 的學生,強大的助教群、業界的學長姐大多都很樂於幫忙。假如真的找不到合適的 mentor,mit.Jobs 有提供一小時的職涯諮詢服務,對於想要轉職又玻璃心的你絕對非常有用!
作品集
一開始我把所有在大航道課程的作業都放在作品集內,但事實上對方並不會因為你多做了三四個 CRUD 的作業而加分,反而會稀釋掉你覺得比較重要的專案,所以最後我只留下了兩個專案在履歷上面。
為了要讓面試官可以清楚了解你作品的功能、什麼技術開發,可以使用以下方式整理你的作品集:
- 程式碼放在 GitHub 上,一定要有清楚的 README,或者是在自己的技術部落格中描述開發的想法。
- 一定要將作品部署上去,面試時也不要用
localhost:3000
這種方式 Demo。花點小錢租個 domain name ,用個漂亮的 url,讓面試官在看履歷時可以馬上點開操作你的作品。 - 作品集放在履歷中,最好是可以描述為什麼要做這個東西,這個東西解決了什麼問題,你用了什麼技術實作。
例如我在兩個月前寫了一隻幫公務員找工作的 Line chatbot,在履歷的作品集裏就加上了以下說明:
- 解決公務人員搜尋職缺不便的痛點,可由 Line bot 快速找尋需要職缺。
- 於 ptt 公務員版發布後隨即得到廣大迴響,3 日內好友數即達到 1000 人。
- 使用政府開放資料,但資料源並無 api ,進而使用 ruby nokogiri 來對資料源進行為爬蟲。
- 為配合 line 文字輸出結果,必須簡化輸出文字而對資料源作清洗。尤其是各單位對於公務員職等刊登格式不一,將中文字職等描述轉化為阿拉伯數字是個重要課題。
對於轉職的人來說,有好的作品集一定是加分的,公司除了想要了解你的技術力,也想要知道你除了課程內的作業外,還可以自發的寫出怎樣的程式。因此如果有時間的話,試著做一些非課程內的 side project(或是包裝好 ALPHA camp Demo day 的作品),讓面試官知道你不是只會寫課程內的 CRUD 專案。
履歷
原本我的履歷是將過往的工作經驗寫在前面,再來才是學歷,最後作品集放在第二頁,結果業界前輩看了我的履歷後馬上打槍。
原因是面試官可能不會花太多時間閱讀一份履歷,所以應盡量把應徵缺相關的「亮點」放在最前面。例如我的學歷(本科系也算是個優勢)要優於工作經歷,作品甚至要放在最前面,一切都是為了要凸顯自己的亮點。
面試
面試的過程其實也反應在履歷撰寫上。除了吸引人的履歷可以讓你有面試機會外,履歷其實也是引導面試官在面試的一小時內會問你的「題目」,因此在寫履歷的時候,腦袋中就要演練一下面試時該怎麼描述自己。
面試準備的重點,首要了解公司挑選軟體工程師時重視的兩個部分:
- 技術力:因為技術力沒辦法透過工作經歷證明,所以作品就顯得很重要。
- 溝通協調能力:對於要轉職的人來說,是個可以好好把握的項目,因為比起社會新鮮人,過往的工作經歷絕對個很好發揮的區塊。
我自己的心得是,最好可以量化過往工作的成果,或者可以舉出一些例子,讓面試官可以了解你的人格特質和軟實力。例如有一次面試官問我「有沒有你討厭做的工作,但你還是去完成它的經驗」,我就可以描述我目前的工作主管不太會要求,而且我也不太喜歡當網管,但我還是主動去解決機房架構混亂、無高可用、備份機制不全的問題;另外在溝通能力上面,我舉了以前吉他教學的例子,例如如何搞定廣泛年齡層的吉他學生,並且把溝通技能導入到的銷售技巧上,進而提高銷售數字等等的經驗。
明確的舉出一些過往在職場上的例子,遇到的困難、如何解決,都可以向面試官說明「我在職場上不是個雷,請你放心的錄取我吧」。
技術考試
以 Ruby on Rails 來說,ALPHA camp 提供了很棒的技術考古題,大航道的幾位同學都分享了很多面試準備的考題與方向可以參考:
除了以上同學分享的題目,我自己覺得在大航道課程結束後,需要補強的有三大面向:資訊安全、效能、測試。因此以下推薦一些自己額外閱讀的書籍和課程:
- Rebuilding Rails :了解 Rails 的架構
- Metaprogramming Ruby :了解 Ruby 的語言結構
- Ruby on Rails Tutorial :學會不使用 Devise 實作身份驗證機制
- Everyday Rails Testing with RSpec:超級清楚的 Rspec 入門書籍
- 淺談駭客攻擊手法:給每個人的網站安全入門
這些書籍課程對我面試時幫助非常大,而且很多東西是未來工作蠻有機會使用到。
附帶一提的是,其中有間面試公司第一關是採用 Codility (遠端程式測驗,其實就是白板題),165分鐘要寫四題,可以用自己熟悉的語言應考。考試前我還焦躁的刷了四五題 Leetcode,在刷題的過程中發現竟然有人在 youtube 開了 Leetcode 刷題的頻道!?
雖然直接看人家解答好像有點取巧,但如果自己有時間把這些題目自己做一遍,然後看人家用最佳解法做一遍,好像也可以有效率地達到刷題的功效?
某次面試,面試官説他自己也是從很穩定的公司(幾乎算是公家單位)跳出來創業,所以他大概也能理解我想要轉職的心情。待在一般人認為的舒適圈也許只是生理上舒適,但心裡不見得舒適,對他來說與其待在小小的舒適圈,不如走出去「擴大舒適圈」。
最後再次的感謝這個月來被我叨擾的 AC 校長 Bernard、業界前輩、所有同學、朋友、AC 的學長姐,還有全心照顧家裡的老婆、可愛的兒子、忍受我任性選擇的爸媽和岳父母。
接下來要開始新工作,又是個全新的挑戰。