Justin 在 2020 年八月底結束 ALPHA Camp 三個學期課程後即投入 AC 求職輔導計畫,這篇文章主要是記錄他的求職心得、過程中觀察到軟體業在找什麼樣的人才以及 AC 求職資源對自己的幫助,如果你對 Justin 的面試過程感興趣,可以看看「轉職後端工程師 24 場面試全記錄」。
推薦閱讀:成為軟體工程師的條件:每日工作內容、重要技能、面試如何準備
求職規劃
由於距離上一次真正面試已經超過一年以上了,加上現在是以後端工程師為求職目標,我認為自己需要先練習一下,熟悉技術面試的內容與流程,因此把 104 找到的職缺(技能符合)大概分成三個 tier:
tier 1: 很有興趣、具產業指標性的公司
tier 2: 感覺普通、但不排斥的公司
tier 3: 沒聽過、沒興趣的公司
接著就是從 tier 3 開始投履歷了,剛開始一週投 10 間,但發現人家也不一定要找我去面試,所以之後就是一週投 20+ 間,一週大概排 2~4 場面試。
求職結果
我投了 100+ 間公司,獲得 24 個後端工程師職位的面試機會,總計得到 5 個 offer;過程中也有收到前端、PM 或 BD 的面試邀請,但我沒有興趣所以就婉拒了。
求職心得
在 AC 求職輔導計畫中除了刷題跟個人專案之外,每週都有求職準備,像是求職目標、履歷優化、行為面試題擬答,以及一次模擬面試,基本上有跟著進度走,結訓時的狀態就是可以直接開始投履歷了。
求職就像交男女朋友,你有意思,對方不一定有意思,反之亦然。也可能雙方都有意思,但因為其他外在原因就無聲卡或感謝函了,從投履歷到錄取的過程中,存在非常多的變數是求職者無法掌控的。
過程中有些公司面試時感覺很好,最後得到的回應是員額有限或無聲卡,難免會有點懊惱,但靜下心來想,如果兩邊的都有一定的專業程度,那面試的過程本來就該是舒服的,最終錄取與否,還是回歸商業需求,這些都不是求職者能掌握的。(可參考《面試相談甚歡,卻沒有被邀約第二次面試?》)
結論,求職者能做的就是把自己準備好,全力以赴參與面試,面試結束了就放寬心,持續改善面試時發現的弱點,放眼下一次的面試;就像阿湯哥在明日邊界裡面一直死掉又一直重生,最後每個環節都熟悉了,就可以輕鬆闖到大魔王面前。
經過了九個月的學習,以及三個月的求職,我的轉職之旅總算是告一段落了,這一年的心路歷程實在是很難用言語形容,在完成作業時感到心滿意足,但也伴隨著無數次的自我懷疑,會覺得這樣真的就夠了嗎?自己還可以做什麼?因此我選擇把每一份作業都做到最好甚至自己加需求,更積極使用 AC 提供的求職輔導資源。
轉職除了努力學習之外,很多時候也是在磨練意志力,因為沒有人能夠保證轉職成功,每個人的條件不同,對於成功的定義也不同,就算準備得再多,還是會覺得不夠,永遠想要裝載更多再上路,但其實永遠沒有準備好的那一天,唯有帶著這些懷疑一路走到最後,才會知道迎接你的是什麼。
求職過程中也了解到自己不足的地方還很多,到職後要面對的是全新的挑戰,面試時主管也提到,在軟體圈唯一不變的事情,就是一直在變。希望自己成為工程師之後,依舊可以享受寫程式的樂趣,保持用技術解決問題的熱情,並讓技能樹與時俱進,永遠不要忘記自己是為了什麼而走到這裡。
求職過程中的一些觀察
#1 軟體人才需求真的很大
在我把 LinkedIn title 改成 Backend Engineer 之後,每天都有人造訪檔案,每週都有獵頭來建立連結,相較於前一份工作,三年只有一個獵頭找過我,產業的差距相當明顯。我的理解是獵頭的獎金是來自於被獵者最後談成的 package,因此獵頭多的產業除了有人才需求之外,薪資行情也是有一定水平,獵頭才有存在的意義。
#2 後端 or 全端
大部分公司雖然開的是後端職缺,但還是會希望求職者本身不排斥前端,工作內容也會是全端開發,所以前後端各掌握一個框架算是求職的基本配備了。前後端都掌握一個框架在求職上會更有彈性,因為前端的職缺真的多到爆炸,就算框架不同也有機會;後端職缺也很多,但因為有語言的區別,我看到的大多是 Java、C#、Python、Golang,而 Node.js 後端相對就比較少。
#3 技能深度 vs. 廣度
大部分公司比較在意廣度,例如在 AC 後端學的基礎是 Node.js、Express、MongoDB、MySQL、RESTful API、Socket.io、Git / GitHub / Git Flow,常被問有沒有這些經驗:單元測試、CICD、公有雲 AWS / GCP / Azure、TypeScript、容器化技術 Docker / Kubernetes、Linux、GraphQL;深度比較常被問到的是 MySQL transaction or index 概念及做法;或是除了用 ORM,有沒有直接下 SQL 操作資料庫的經驗,然後延伸到 JOIN,如果平常沒用就很難回答。
#4 溝通協作能力
每一間公司都很注重 people skills,有問專案經驗的,例如遇到衝突或困難如何解決;有也出情境題的,例如手上有兩個案子都很急,會怎麼處理。這些問題其實沒有標準答案,會希望求職者回答實際的經驗,或是表現特定的人格特質:同理心、對事不對人、充分理解需求、主動回報前輩或主管等等。
#5 英文能力
大部分公司是問有沒有看原文文件跟技術論壇的能力,只有幾間電子業大公司會要求多益成績 or 當天上機考試。
最後,特別感謝 AC 求職輔導計畫的團隊,像是教練 Red, Yenting 中不斷鼓勵以及鞭策我,提供我許多專業建議及內推機會。(推薦閱讀:轉職軟體工程師必看,了解 AC 人才推薦計畫)
還有講師維元在講解資料結構與演算法真的超專業,助教群 Shizuku、Eugene 在 office hour 解釋 LeetCode 作業時也相當用心。我覺得最有幫助的是課程中會點同學回答問題,或是說明自己的思路及解法,與講師或助教討論就像是面試時寫白板題與面試官互動一樣,透過這些練習,讓我在面試過程中可以表現得更好。
我的個人專案 Mentor Wells 完全傾囊相授,讓我理解後端工程師是如何看待程式碼,在期末發表結束後也提供我非常實在且一針見血的建議,對我後續面試相當有幫助。我之前有寫一篇 Mentor 訪談,有興趣請看「資深後端工程師訪談 — Wells」。
AC 助教 PJCHENder、 Leo、Brian 及之前的同學 Tim 與我分享面試的經驗及軟體產業資訊。
還有強者我同學們 T4、Henry、Danny、Harry、Carey,能跟大家一起學習,一起刷題,一起找工作,我感到相當榮幸,也從大家身上學到許多,不論是技術或是學習的態度,相信大家都能走出屬於自己的工程師職涯,同學們的轉職文都寫得超棒,分享在這:
轉職時就像走在寂寞公路一樣看不見盡頭,只能往前走;現在我所看到的世界就像天空一樣遼闊,有無限的可能。
最後感謝家人及女友這段時間的體貼,偶爾問問我的進度或狀況,但不會多做評論,這對於我來說就是最好的陪伴了。當然,也要感謝自己,你真的走過來了,你很棒!