如何準備面試?後端工程師的求職全攻略

古古

2024/09/17


在軟體工程師的世界中,大家可能常常聽到「漲薪水就是要靠跳槽」,但是,在跳槽之前,做好面試的準備是非常重要的!所以這篇文章就會來分析一下後端工程師在求職時,有哪些注意事項要準備。

後端工程師的求職全攻略 #

在求職時,主要會分成兩個流程:「履歷審查」「面試」,雖然這句話聽起來很像廢話沒😂,但是在求職時,一定要分清楚自己目前是處在哪個階段。

如果你是海投了 100 家公司,但是連一封面試邀請信都沒有收到,那你就是「履歷」的部分有問題,需要回頭調整履歷呈現方式;相反的,如果你是滿手面試邀請信,但是沒有一家順利拿到 offer,那就是「面試」的部分有問題。

所以大家在求職時,除了要好好準備面試大魔王之外,履歷的準備也是非常重要的!這兩項是相輔相成的,缺一不可!

所以這篇文章也會分別從「履歷」和「面試」這兩個不同的角度,分別來介紹在這不同的階段該如何進行準備。

補充:本篇文章主要是針對 Junior(初階)後端工程師所撰寫的求職攻略,Senior(資深)的部分會稍微提到一點,但是不會深入太多,所以大家如果是資深工程師、或是主管大大等級的話,這篇文章可能幫助不大🥹。

履歷部分 #

履歷長度要濃縮成一頁 #

在撰寫履歷時,首先一定要把自己的豐功偉業濃縮成一頁,常見的履歷就真的是只有一頁而已(可能 HR 們也來不及全部看完,只會看一頁),所以想盡辦法把自己做過的事情濃縮成一頁是非常重要的。

剛轉職後端,沒有過往的工作經驗該怎麼辦? #

如果是剛轉職比較沒有過往工作經驗的話,那麼會建議可以放一些你自己實作的小專案,如果是轉職的話,通常是會跟著資策會、或是線上課程學習,所以就可以把那些學習過程中所實作的專案,當成是你的求職作品集這樣,比起什麼都沒放會好很多!

至於後續有累積越來越多工作經驗之後,就可以把作品集的部分拿掉了,把履歷的空間留給你最新的工作經驗。

履歷不要只描述產品本身,而是要描述「你做了什麼」 #

在撰寫履歷時,建議不要只描述產品、作品集本身,而是要描述「你做了什麼」。

舉個例子來說的話:

  • ❌ 我使用 Spring Boot 實作了一個電商網站,裡面包含會員功能、訂單功能、商品功能。
  • ✅ 我使用 Spring Boot 實作了一個電商網站,裡面包含會員功能、訂單功能、商品功能,其中用到的技術有 Spring Boot、RESTful API、Spring MVC、Spring JDBC、單元測試。

在上面的例子中,上面的 ❌ 錯誤寫法,就只是在描述這個電商網站本身有什麼功能這樣,其實對於面試官來說,你實作的產品是什麼不重要,重點是你在實作的過程中,使用到了哪些技術,這個才是最重要的!

所以在撰寫履歷時,建議可以改成下面的 ✅ 正確寫法,描述你在實作電商網站的過程中,使用到了哪些技術,像是 Spring Boot、RESTful API、Spring MVC…等等,這樣子面試官後續才可以透過這些關鍵字,延伸去考察你是否了解這些技術的運用。

履歷不要有形容詞 #

在撰寫履歷時,還有一個很重要的重點,就是在履歷中 「不要出現形容詞」!!!

舉例來說的話:

  • ❌ 我實作了一個具有高吞吐量、高擴展性的搶票功能,並且撰寫易於維護的程式,有效減少後期維護成本。
  • ✅ 我實作了一個能負擔 1000 人同時在線搶購的搶票功能,其中使用了限流器中的令牌桶算法(Token Bucket),確保伺服器不會因為過量的人流導致崩潰。並且我使用 JUnit 撰寫單元測試,單元測試覆蓋率為 80%。

透過上面這兩個例子,可以看到上面的 ❌ 錯誤寫法,用了非常多很厲害的形容詞,像是「高吞吐量」、「高擴展性」、「易於維護」…等,但老實說,這些形容詞對面試是一點幫助都沒有的,所以透過上面那句話所得到的資訊,就只有「你實作了一個搶票功能」而已。

而至於下面的 ✅ 正確寫法,就提供了很多資訊,像是面試官就能知道你實作了一個能負擔 1000 人的搶票功能(對後端來說,能同時負擔 1000 人和 10 萬人是不同等級的系統架構),然後後面也呈現了你所用到的技術,像是限流器、令牌桶算法、JUnit 單元測試…等等。

因此面試官之後在面試時,就可以根據你這份履歷中所提到的關鍵字,具體的問你「那你了解限流器是什麼嗎?請解釋一下你為什麼採用令牌桶算法」…等等,等於是埋了許多關鍵字給面試官問這樣。

所以在撰寫履歷時,建議改成正確的寫法,就是 「在履歷中盡量不要出現形容詞」,反而是要好好的把你的實作給 「量化」 出來,這才是最重要的!

PS: 這時候有的人可能會有疑問,啊我都離職了,要怎麼取得到當初我實作的系統數據?沒錯,你拿不到的(如果你拿得到,公司的資安就完了)。

所以履歷其實是要在工作的過程中隨時更新的,建議是當你做完一個大案子的時候,就可以回頭拉一下數據、更新一下你的履歷,這樣子後續要求職的時候,才不會苦無找不到數據來佐證自己的情況出現🥹。

海投履歷,渣男/渣女式求職法 #

抱歉這一個小節的標題有點聳動,但是這是我真實的想法😂。

在投履歷時,除了那種「你上了也完全不想去的公司」不用投之外,其餘的公司,但凡你有一點點興趣,建議履歷就是直接給他大膽地投下去,等到你真的上了之後,再考慮要不要去。

很多人在投履歷時,可能會陷入一個迷思,就是「我已經正在面試某幾家公司了,我還要繼續投履歷嗎?」,這個答案,一定是 Yes! 在你真的拿到 offer 入袋之前,有幾家你就投幾家,每天照三餐投,反正就是有幾家就投幾家就對了!

這樣子海投履歷的好處,就是 「你能掌握主動權」,舉例來說:

  • 假設你今天突然面試到一半被刷掉了,這時候就不需要特別擔心,因為你還有備胎
  • 假設你今天同時得到 2 家公司以上的 offer,那太棒了,你們 2 家公司去打架吧,看誰給的錢高、待遇好、發展性好,我就去哪家

所以對於求職者來說,手上掌握越多 offer 通常是越好的,這代表你在市場上有競爭力,所以大家都搶著要你,所以你就越有底氣和 HR 談更好的薪資待遇,因此在求職時,如果時間允許的話(畢竟面試也是需要時間準備),還是會建議大家可以海投履歷,為自己掌握更多的主動權。

PS:之所以說海投履歷是渣男/渣女式的求職法,是因為在還沒有正式交往(還沒有正式簽 offer)之前,你都還有許多備胎(其他公司)可以選擇;同樣的,公司也是除了你之外,還養著無數的備胎求職者,所以這就是一個比賽誰備胎比較多的世界,根本就是逼人當渣男/渣女😂。

所以建議大家,在找工作時,就先放下你善良的感情觀,用渣男/渣女的方式來求職,讓自己成為許多公司搶著要的對象,才能成為真正的贏家!

先用中文寫履歷,再一口氣翻譯成英文 #

這點我真的是恨不得早點發現🥹,在一剛開始求職時,我也常常遇到履歷寫不出來的情況出現,本來還怪說是不是自己英文太爛了才寫不出來,但是後來當我嘗試用中文寫寫看時,嗯.…我發現我還是寫不出來XDD。

這就像是英文作文一樣,拿不到高分時,以為是自己英文不夠好、名言佳句背不夠多,才寫不到高分,後來才發現原來是自己中文不好,用中文寫的文章結構就很糟了,這樣就算翻譯成英文,仍然沒辦法變成一篇好作文,進而拿到高分的。

所以就建議大家,一開始可以先用中文寫履歷,等到全部寫完之後,再叫 ChatGPT 幫我們翻譯成英文,最後再根據英文的長短句,精煉一些單字,努力把履歷塞到一頁裡面,這樣會是撰寫履歷效率最高的方式!

履歷小結 #

所以綜合以上的討論的話,要撰寫一份好的履歷,建議滿足以下條件:

  • 履歷要濃縮成一頁
  • 剛轉職時,可以放自己練習的專案當作作品集;等到工作經驗累積越來越多之後,再將作品集的部分刪掉,把版面留給工作經驗
  • 履歷不要描述產品本身,要描述「你做了什麼」
  • 履歷中不要有形容詞
  • 海投履歷,當一個渣男/渣女,還沒正式簽 offer 之前都不算數
  • 先用中文寫履歷,再一口氣翻譯成英文

只要滿足上述條件,基本上就可以寫出一份完整的履歷了!

面試部分 #

忙完了履歷部分之後,再來就會進到面試的階段了!

所謂 「履歷寫的好,面試沒煩惱」,面試官對於你一個未知的求職者,他所有的資訊都是從你的履歷上面展開的,就像是你不會突然問一個寫 Java 的工程師 Python 的問題一樣,面試官不可能天馬行空的亂問,所以能夠在有限的面試時間中,展現多少你的強項,這就是在履歷期間要下的功夫了。

不過當然啦,履歷只能作為一個 Hook(鉤子),勾起面試官對你的興趣,但是實際上你是否能真正錄取,還是要看你在面試中的對應進退來評估的~

所以接下來,我就會嘗試用面試官的角度,來分析面試官想要看到的東西是什麼,並且分析大家在求職時,又要如何來進行應對。

面試前的心態準備 #

這裡要先給大家打一個預防針,就是面試的最終目標,是找到一個「面試官想用的人」。因為面試官通常就會是你未來的主管,所以如果我是主管的話,我當然會想找一個和我合的來的人(難不成要找一個天天跟我對著幹的人嗎?不會吧😂)。

所以建議大家在求職前,要先建立一個良好的心態,就是 「面試是雙向的」,假設今天你沒面試上,不一定是你的錯,有可能就是你跟這個面試官磁場不合,這樣的話反而儘早結束面試比較好,勉強是不會幸福的!

但我也能理解,有時候大家就是擠破頭很想進某些公司(ex: FAANG),所以除非是真的有很強烈的動機想進某些公司,逼自己容忍與面試官的不合,不然的話,建議還是順著自己的感覺走,畢竟工作是每天時間佔比最長的事情,能夠找到一個合的來的主管還是比較重要的。

而在建立好心態之後,接下來就可以正式進到面試的環節了!

如果我是面試官… #

假設我是一個面試官的話,我就會從 「會做事」、「能跟我溝通順暢」、「認真負責任」 這三種方向來面試後端求職者。

1. 會做事 #

在這個面向中,就是考察求職者的基本技術能力,至少要會寫 CRUD、至少要能夠使用後端框架(ex: Spring Boot)來開發程式、至少要知道什麼是 API…等等,這是最基本的要求,不達標的完全不考慮。

而求職者達到上述的最低標準之後,接下來我就會考察深度,看看你到底懂多少,所以可能就會發生下面的對話(以下以 Spring Boot 為例):

  • 👤 面試官(我):你的作品是什麼?你是怎麼實作的?
  • 🧑‍💻 求職者(你):我的作品是用 Spring Boot 架設一個簡易的電商網站,實作了會員功能、訂單功能、商品功能,並且用到的技術有 Spring Boot、Spring JDBC、Spring MVC、單元測試。
  • 👤 面試官(我):你說你有實作電商網站的訂單功能,那你知道什麼是「交易管理 Transaction」嗎?(內心:我想考考這人懂不懂 Transation,是否了解如何在 Spring Boot 中運用 @Transactional)
  • 🧑‍💻 求職者(你):交易管理就是 XXX…..

所以面試官就是會透過你的作品集、以及你在履歷中所描述的功能,用一問一答的方式,考驗你的技術能力,通常就是問到你答不出來為止(所以面試時被洗臉不用太緊張,大家都是這麼被洗過來的🥹)。

所以透過這個例子,也再次說明了履歷的撰寫真的很重要,「履歷寫的好,面試沒煩惱」,只要履歷上你有提供足夠多的鉤子、好好的呈現你的技術實力,那麼在有限的面試時間裡面,面試官就可以直接切入重點,考察你的各項技術能力,讓你的所做所學能夠被看見,進而提升面試成功的機率!

不過當然啦,就算你在履歷上撰寫了再多的技術,只要面試官一問下去你就含糊帶過,那面試成功的機率還是不高的,所以維持自身的實力還是很重要的!

大家在面試前,可以先上網查詢一下「Java 面試題」、「Spring Boot 面試題」、「Python 面試題」…等等,有很多人整理出相關問題集,可以先用這些題目暖身當作練習,如果遇到不會的問題,就回頭努力學習,讓自己變的更強💪。

很多人也都是藉由面試的過程中發現自己的不足,然後慢慢成長的,只要一直往前走,就會越變越強了!

補充:所以在投遞履歷時,建議也可以把比較想去的公司擺在後面一點投,先拿這些不太感興趣的公司練習面試,等到越來越熟悉面試的感覺之後,再去面試最想去的公司~

2. 能跟面試官溝通順暢 #

在這個面向中,基本上就是考察求職者在面試的過程中,是否有辦法理解面試官所提出的問題,並且是否能夠用簡單易懂的方式,解釋到能讓面試官聽懂這樣。

會考察這個方向,主要是因為在現實的工作中都是團隊合作,所以考察求職者能不能用言語、圖畫…等等的方式,把你心中所想的內容呈現給別人,也是一個很重要的技能。

3. 認真負責任 #

在這個面向中,就是考察求職者是否是一個認真負責的人,就是這麼簡單暴力。相信如果換作大家是主管,一定想要你招來的人是個認真負責任的好寶寶吧(最好是好寶寶印章集滿的那種),畢竟認真負責任的人誰不愛呢?

但老實說這一個面向就比較玄了,沒有明確的問題可以問出這題的答案,面試官總不可能問求職者:「你是否認真負責?」吧😂,所以這題就只能夠在面試的對答過程中、或是依靠履歷上的過往工作經驗,讓面試官自己去感受出來。

如果大家是面試 FAANG 的大公司的話,一定會有一關是 「Behavior Question(行為面試)」,這一關基本上就是在考察你是否是一個好寶寶、個性是否符合公司的文化這樣。

像是在 Behavior Question 中,就會有下列的題目:

  • Tell me about a time when you disagreed with someone. How did you approach the disagreement?(你有沒有和同事意見不合的時候?你是如何處理的?)
  • Tell me about a time you failed or made a mistake(介紹一個你曾經失敗、或是犯錯的經驗)
  • Tell me about a time your responsibilities got a little overwhelming. What did you do?(當你的任務實在太多,根本就無法處理完時,你是怎麼處理的?)

不得不說,Behavior Question 真的每一題都很尖銳,尖到要把你的心剖出來看的那種🥹,老實說我也不知道為什麼要問這麼血流成河的題目,才能證明自己是一個好寶寶,但是如果大家的目標是 FAANG 的話,那麼 Behavior Question 是一定要準備的方向。

Behavior Question 的題目我覺得是比前面的技術問題更難準備(因為沒有標準答案),所以大家如果想挑戰 FAANG 的話,建議還是要多花一些時間來準備這部分會比較好。

面試小結 #

所以綜合以上的討論的話,要完成一次好的面試,建議滿足以下條件:

  • 做好面試前的心態準備:面試是雙向的
  • 從「會做事」、「能跟面試官溝通順暢」、「認真負責任」這三個面向,訓練自己的技術能力、溝通能力、以及認真負責的價值觀
  • 履歷寫的好,面試沒煩惱

面試可能還有更多細節要顧,不過如果能做到上述的幾種事項,相信絕對是可以提高面試的成功率的!

後端工程師的求職全攻略總結 #

所以總結一下上面的介紹的話,最後可以歸納出下面這張表格:

履歷注意事項 面試注意事項
履歷要濃縮成一頁 做好面試前的心態準備:面試是雙向的
剛轉職時,可以放自己練習的專案當作作品集;等到工作經驗累積越來越多之後,再將作品集的部分刪掉,把版面留給工作經驗 從「會做事」、「能跟面試官溝通順暢」、「認真負責任」這三個面向,訓練自己的技術能力、溝通能力、以及認真負責的價值觀
履歷不要描述產品本身,要描述「你做了什麼」 履歷寫的好,面試沒煩惱
履歷中不要有形容詞
海投履歷,當一個渣男/渣女,還沒正式簽 offer 之前都不算數
先用中文寫履歷,再一口氣翻譯成英文

也建議大家在求職時,可以針對 「履歷」和「面試」,分別去對症下藥,了解自己不足的地方、並且努力學習、持續成長變強,最終就能夠收穫自己心儀公司的 offer 了!

結語 #

這篇文章我們針對「後端工程師的求職全攻略」主題,分別從「履歷」和「面試」這兩個方向,來探討每個階段該做什麼事,希望可以透過這篇文章,幫助大家在求職路上更順暢!

如果你對後端技術有興趣的話,也歡迎免費訂閱 《古古的後端筆記》電子報 ,每週二為你送上一篇後端技術分享,那我們就下一篇文章見啦!