2025 資深前端、全端工程師面試心得 (日本求職經驗分享)
2025年2月13日
既《2021 轉職前端工程師的海外求職 (德荷英日新) 心得 II — 找工作與面試篇》與《2022 轉職前端的海外求職與面試心得 (Amazon 與 ByteDance/TikTok 等)》 這兩篇文後,筆者從德國公司到新加坡,再搬到日本生活,也因此有了這篇寫在 2025 年的求職心得。
因為實際寫這篇文是在 2025 年,所以文章的標題寫 2025,但筆者實際的面試都是發生在 2024。不過因為今年開始也協助團隊招募相關的事,以目前筆者對日本整體求職市場與狀況的理解,認為跟 2024 沒有太多差異,因此相信對於 2025 年要準備求職 (特別是找日本工作) 的讀者,這篇文章應該會有一些幫助。
由於過去兩次換工作都有寫下心得,讓今年寫這篇求職心得時,有一個具體的對照。從 2021 年面初階工程師,到 2022 年面中階工程師,再到這次的資深工程師,隨著逐漸變更資深,面試所遇到的題目、追問的深度也有所不同。
希望透過這篇文章,分享這次求職過程中遇到的不同問題,讓有意準備面試的讀者們有個具體的參考。不過,有別前兩次的心得文是以公司來區分,因為先前讀到《2024 資深前端工程師面試心得》這篇心得,覺得文中以題目分類的方式很值得參考,因此這次也決定以這種方式來撰文。
在往下談之前,先簡述這次的求職背景。因為決定來搬到日本,這次主要都是投日商為主,透過 LinkedIn、TokyoDev、Japan Dev 以及一間叫 Build+ 的日本獵頭來投,主要是前端與全端的缺,多數人可能聽過的 PayPay、Mercari 都有面,也面了幾間新創公司。以下會分成技術面試與行為面試兩種類型的面試,分別分享具體有遇到什麼類型的題目。
另外,如果是想了解如何準備資深前端、資深全端工程師的面試,筆者預計另外寫《如何準備資深前端、全端工程師面試 (2025 版) 》一文,等完成後會放上超連結,屆時有興趣的讀者可以一讀。
技術面試
這次求職過程有遇到的面試題目,不外乎是以下四個類型:知識點問題、程式題、實作題、系統設計題。以下分別談實際有遇到的問題 (備註:這次在申請時,有遇到三間公司是要先做回家作業的,但因為筆者是在職找工作,光準備面試與實際面試就幾乎沒時間,所以基本上有回家作業就跳過沒往下,因此這篇文章沒有多談回家作業關卡)。
知識點題
知識點問題在筆者這次的面試經驗中,比重不算太大,但是每個有問的技術問題,都有進一步的追問。值得一提的點,是因為筆者有幾間公司是透過獵人頭申請,其中一間公司的面試幾天前,該獵頭還特別約了一個 15 分鐘的準備對談 (prep call),然後特別提醒,說先前幾位候選人,沒通過技術面試,主要因為被認為回的內容沒有洞見 (insights)。
從這個角度來看,即使被問到的題目跟初階或中階工程師一樣,資深工程師在回答的深度、有洞見程度,也必須有所不同。
以下是這次有被問到的不同前端相關題目
- JavaScript 相關問題:被問到最多的莫過這類,因為題目比較多,基本都有涵蓋在 ExplainThis 寫過的 JavaScript 面試系列 (連結),感興趣的讀者可以參考那系列
- 前端技術趨勢相關題目:例如有被問到對 React 最新趨勢的理解,包含 React Server Component、React Compiler
- 執行環境類問題:例如最常見的 event loop 跟其判讀題這次也遇到不只一次。也有問 event bubbling 問題,同時給一個 HTML、CSS、JS 檔案,以及一個
logger
, 然後問點畫面中不同元素,分別會印出什麼 - 微前端類的問題:不確定是不是日本特別流行,或可能是近年來微前端變熱門,被問到這相關的很多次,之前寫過《什麼是微前端架構? 為什麼要用微前端架構?》,有興趣的讀者可以一讀
- 不同的渲染模式 (rendering patterns) 的相關問題:例如比較 CSR 與 SSR,以及分別優缺點、適用的情境
- 效能優化相關問題:不同間公司切入的問法有些許不同,有從 Web Vitals 切入問,也有從單一點來問 (例如圖片的加載可以如何優化)
- 安全相關的問題:例如問完對 cookie 的理解後追問
SameSite
、HttpOnly
相關的問題
以下是這次有被問到的不同全端相關題目
- 程式語言相關問題:因為筆者前一份工作有用 Go 寫一些後端,就被問了相關問題,例如對 Go 的 concurrency 的理解
- 軟體設計相關問題:例如被問到 DDD (domain-driven design)、抽象化、模組化設計的理解,然後追問一些實務上使用的經驗
- 資料庫相關問題:SQL vs. NoSQL、ACID 是什麼、在 SQL 中遇到 slow query 會如何處理、optimistic locking 與 pessimistic locking 的比較
- 設計模式的問題:例如被問 MVC vs MVVM 的區別
- 架構模式的問題:例如 Event-driven design 架構的理解,以及相關追問,也有一個面試被問到 Micro-services 相關的問題
- 網路相關問題:例如「在網址中輸入,接下來會發生什麼事 」以及後面一連串的追問
- API 設計問題:RESTful API 相關的問題 (從對 RESTful 的理解,到後面一些追問,包含跟其他的 API 風格作比較、分別適用的情境)
- 雲端相關使用經驗的問題:這塊然後追問一些偏向 DevOps 的問題
- 對軟體測試的理解與實務經驗:這塊是因為筆者的履歷有寫帶領團隊提升測試覆蓋率的點,所以被從那邊提問
程式題
前端類型的程式題,這次沒有被問到很多,即使有被問到,也都在 ExplainThis 先前整理的前端手寫 50 題,例如有遇到要實作 JavaScript 原生方法 (像是 reduce
),也有 Lodash 的效用函式 (例如 deepClone
)。
即使有些題目不是完全一樣,但基本上掌握那 50 題有的題型,應該沒問題。例如有遇到一題Promise.all
的實作變形,雖然需求有一點不同,但如果寫得出 Promise.all
就一定寫得出那個變形。
全端的缺則是以資料結構演算法題為主,這部分基本上就是多練習 LeetCode 的不同題型。這次的經驗,有遇到不少經典的考古題,寫完後在網路上都能找到相似的題目。從這個角度看,多練習考古題還是有不小的幫助。
另外,不同公司遇到的題型也蠻不一樣的,有基本的陣列操作,也有需要不同演算法的。舉例來說,有遇到一題在解的時候,當下想到用貪婪算法 (greedy algorithm)。題目是給定一個數 target
(用字串表示) ,可以翻轉任一個位置,翻轉代表把自己以及右手邊的位置的 0 與 1 對調,要找到從 0 能翻轉到 target
的最小次數。
例如 target = '01011',從 '00000' 開始,可以是先翻轉索引 2,變成 '00111',接著翻轉索引 1,變成 '01000',最後翻轉索引 3,就得到 '01011',這樣需要翻轉 3 次。這題用貪婪算法 (greedy algorithm),每次從最左邊開始看,如果值跟 target
在當前索引的值不同,就翻轉 (翻轉就是把值賦予 target[i]
),同時把 count
加上 1,翻的時候代表右邊的會跟著翻,所以更新 currentNumString
,然後跟 target
的下一個索引的值比較,如果不同話就翻。
另外,這次也有遇到一些對效率有要求的追問,例如給兩個陣列,一個是 wordSet
,一個是 sentences
,要找出每次基於 wordSet
中的字來替換 anagram 時,sentence 可以有幾個不同的可能,然後輸出該數字。舉例來說
const words = ["listen", "silent", "it", "is"];
const sentence = "listen it is silent";
const numSentences = countSentences(words, sentence);
console.log(numSentences); // 輸出: 4
這題是直觀可以暴力解出來的,但是在面試中被追問如何在某些極端情況提升效率,這時就需要想不同的解法。筆者當時是透過一些字串的預處理,然後加上 hash map,來避免 words
中的單字數量大的時候會讓整體效率很差的狀況。
除了上面談到的不同類題目、追問題,這次還有遇到相對有趣的題目,印象比較深的是下面這題。不算是傳統的資料結構演算法,反而比較像平常寫一些有趣小程式時會寫的。
// 輸入
messages: string[][]
userWidth: number
width: number
// 範例輸入
[
["1", "hello how r you"],
["2", "I am good"],
]
// 輸出要畫出下面這樣的題
+*************+
|hello |
|how |
|r |
| I|
| am|
| good|
+*************+
實作題
這次在前端相關的面試,相對高頻率有問到實作類型的題目。有遇到最基本的 CRUD 問題 (要實作一個 memo app);也有給定的後端 API 以及相關文件,在 90 分鐘內要做出一個類似 ChatGPT 前端的應用 (要有個輸入框,然後收到訊息時要用串流的方式呈現)。
這類問題多半在實作結束後,會有追問的問題,例如有被追問說某一段程式碼假如要改成更好維護一點,會怎麼做? 也有實作後接著追問某個知識點,例如實作那個 AI 聊天機器人前端的面試,就有在後面被順著問對 React 渲染機制的理解。
另外想特別提,在這類實作題,因為是從零開始做,所以很多工作上已經被處理好的東西,也會要自己從頭寫,例如呼叫 API 那段,筆者先前工作上都是用已經包好的東西,所以在這次求職歷程中第一次遇到實作題時,寫得相對卡。所以在那場面試後,就特別多練習能在一分鐘內把 fetch 某個 API 到轉成 result.json()
到中間的 try...catch...
以及 loading
狀態都練得反射能寫出。
這些東西其實並不難,但如果很久沒處理,一時間真的會寫得非常卡,筆者現在想到還是覺得有點汗顏,畢竟都是面資深的職缺,那場面試光是包個 API 花了快十分鐘,實在很不應該。不過再多練習寫幾次後,後面遇到實作題面試,處理這種都是極快完成,能把時間花在最核心的部分。這邊分享這個經驗,推薦讀者們先練習好,避免面試時很尷尬。
還有一個特別值得提的點,某一間前端的面試中,有被問到要用 Grid 來實現某種排版,然後面試官要求要用香草 CSS。因為筆者過去兩份工作上,都是用 Tailwind CSS 這種工具,所以要直接寫香草 CSS 反而卡住,當時還是在面試官的提示下才完成,再次覺得非常汗顏。因此推薦,平常在練習實作類的題目,務必要練習不依賴框架寫。
在實作類的問題時,除了把功能實作出來,面試官通常也都會追問一些問題。最基本的是先問整體的架構,以及追問某段程式碼「為什麼要這樣寫? 有考慮其他寫法嗎?」,進階一點的是會往設計面去追問,舉例來說有被問到「假如這段要改寫成不論接什麼框架都通用的 (framework agnostic),可以如何重構? 會選擇什麼樣的設計模式?」
像這類的追問題,推薦可以結合實務工作經驗,來展現深度。以這題追問來說,剛好先前工作上有處理過一些用 Adapter Pattern 的東西,所以就花了點時間跟面試官聊那個設計模式,以及實作上要注意的細節。
系統設計題
可能因為面資深的職缺,所以遇到系統設計面試的比例跟前幾年比高了不少。所謂的系統設計面試,基本上是不用寫程式,而是要先釐清需求,然後根據需求去設計。
比較有趣的是,這次有遇到的系統設計題目中,有一半是跟 AI 系統相關的。也許是近兩年生成式 AI 浪潮的關係,感覺日本的公司對於 AI 的發展,也是高度關注。
雖然說是 AI 相關的系統,但是都是給定 AI 的部分有 API 會處理。舉例來說,有遇到要設計 AI 客服系統,也有遇到一個是影像辨識系統。以影像辨識系統為例,要處理的是圖片上傳、存儲,到展示這段,中間會有一些給定的 API (例如 image segmentation、image cropping),然後因為這些 API 都需要時間處理影像,所以系統設計的重點,是如何最有效率地同時處理各類非同步的問題。
另外,有遇到非 AI 類但又比較特別的題目,印象最深的是要設計 Observability System。這題筆者先前讀 《System Design Interview – An Insider's Guide: Volume 2》這本社群上多數人推薦的書時,某個章節有讀到 Metrics Monitoring 系統,但那時感覺這應該是比較冷門的題目,所以就草草看過,結果沒想到在面試時被問到。
因此必須說,在面試時什麼題目都可能出現,在準備時還是能越全面越好。關於如何準備系統設計題,之後筆者在《如何準備資深前端、全端工程師面試 (2025 版) 》一文也會分享一些準備時用的資源。
行為面試
很早以前就有看過一位 Amazon 的首席工程師,說越資深的軟體工程師面試,行為面試佔的比重越大 (影片連結)。這次面下來的心得,確實有驗證這一點,行為面試的比重相當高。以下分兩個部分談遇到的行為面試問題,一個是不論哪一輪次幾乎都有遇到的問題;另一個是在 VP 輪有遇到的行為面試問題。
高頻率遇到的行為面試問題
- 自我介紹 (這題基本是每輪都會出現的,之前寫過《面試時如何自我介紹? 一起練習回答 Tell me about yourself》一文,有興趣的讀者可以參考)
- 針對履歷的經驗提問 (例如問目前工作中扮演的角色、近期做的專案有遇到的挑戰,然後也會從這兩個問題延伸下去追問,在這次行為面試中,這類從過去經驗的追問,佔了非常大的比重)
- 為什麼想來日本? 為什麼對我們公司感興趣? 這一題幾乎是每一間公司都有問的題目,在準備日本公司的行為面試時,如果時間有限的話,推薦至少要準備這題。因為太頻繁被問到了,加上現在協助公司招募時的體認到這題的重要性,筆者之後預計專門寫一篇文章來談如何準備這題
- 為什麼想離開現職工作? 現在選擇換工作,主要原因是什麼? 想找什麼樣的公司? 這題跟上一題幾乎是一體兩面,當被問到為什麼想換工作時,我的回答都是去特別強調想到日本,以及對該公司很感興趣
- 在 XXX 工作可以如何協助你邁向職涯的理想? (What would being at XXX contribute to your career goal?) 這題也算是「為什麼對我們公司感興趣」的變形
- 在過去帶團隊時,有沒有跟其他團隊有過什麼衝突? 如何解決? 學到什麼? 下次會怎麼做不一樣?
- 請分享過去跨文化、跨時區的協作經驗,有遇到什麼挑戰? 如何克服? (這題是因為筆者談到自己當時在新加坡的團隊,平時是跟在美國的團隊協作)
- 請分享過去 mentor 他人的經驗,你會如何描述自己的風格? 你覺得自己哪裡能做更好?
- 請分享一個你在過去一年中最有收穫的學習,平時偏好用什麼方式分享自己的學習?
- 請分享你接下來的職涯目標 (這個問題也有一些變形,例如,目前職涯的發展偏好是技術路線,還是管理路線?)
除了這些問題外,幾乎每間公司的面試,最後都會有「你有沒有什麼想問的」這個問題。關於這個問題,之後筆者在《如何準備資深前端、全端工程師面試 (2025 版) 》一文也會討論可以如何準備。
VP 輪面試的行為相關問題
除了上面提到的行為面試問題外,這次的面試中,有面到幾個公司規模超過兩千人的 VP 輪 (之前也面到 CTO 或 VP 都是在相對小的公司)。而不約而同地在這輪面試中,幾乎都是參雜著部分技術的行為面試問題。換句話說,在這輪面試都沒有實際寫程式,有問的技術問題基本是從談到的專案經驗中追問。
所謂「參雜技術的行為面試問題」,通常是比較高層次的思考,所以雖然需要懂技術,但更多同時透過問題來了解候選人如何思考與在特定情境下會有什麼行為表現。
舉例來說,就有被問到「你在帶團隊進行產品開發時,有沒有遇到團隊中對於選什麼技術有不同意見的狀況? 有的話當時是如何解決的?」或是「有沒有過去公司決定採用某個新的框架,但你不喜歡該框架,當時你怎麼做?」
上面這兩個問題,就是一方面需要談對技術的理解 (技術面),一方面又要談衝突解決 (行為面),所以會說是參雜技術的行為面試問。
因為很多問題都是從履歷出發來問,因此特別有感,如果是要面 Director / VP,在準備時務必特別準備履歷追問題的回答。推薦對履歷上做過的東西要很熟,包含擔任的角色具體做什麼、遇到的困難、如何解決、中間深刻的學習點是什麼、未來預計會怎麼樣進一步改進。因為這輪的面試官很可能再談某個專案時,針對某個技術度提問,沒有充足準備很可能後面會招架不住。
當然,不是所有在這輪問的問題筆者都有相關經驗,所以有些在如實回答說沒有相關經驗後,面試官會追問說「假如遇到這種情況,你會怎麼解決?」,例如有一題就被改問「如果你要帶領開發新的產品,在時間有限的狀況下,你會怎麼做技術選擇」。這題就是一方面要答對技術選擇的觀點,一方面要答如何面對緊迫的時間限制,既是技術問題又是行為問題。
當然,除了上面提的「參雜技術的行為面試問題」外,與產品相關的問題,也在不同公司的 VP 輪分別有被問到。舉例來說,有被問到過去甚至有位 VP 在面試最開頭,就先跟筆者聊「你最喜歡的軟體產品是什麼」這個問題。
然後前面的十分鐘都針對這個問題延伸出來聊,包含問「覺得好的軟體產品應該具備什麼條件」。然後在聊完,該 VP 接著把話題轉到生成式 AI 的討論,並問「如果產品端想要導入生成式 AI,你會如何評估並與產品端溝通?」,其中也追問到「過去有沒有遇過很趕的期限,工程端評估後沒辦法那麼快做出來,你會怎麼處理這種狀況?」
先前就有聽過越資深的工程師,越需要有產品思維;先前甚至聽過當做到主任工程師以上的職級,對產品的掌握度要不亞於一個產品經理。在這次的幾個 VP 輪,似乎應證了這個說法。
閱讀更多
以上分享了這次面試資深前端、全端工程師的心得,如果有閱讀「如何準備面試」的內容,之後筆者預計會寫另一篇《如何準備資深前端、全端工程師面試 (2025 版) 》,屆時可以參考。
如果你想透過線上課程了解如何有效求職。筆者參與的 E+ 成長計畫中,有一門長達 8 小時 57 分鐘的《軟體工程師求職全攻略》課程,推薦感興趣的讀者可以加入觀看。
《軟體工程師求職全攻略》課程會涵蓋找職缺、投履歷、面試準備,再到談薪水等內容。此外,如果觀看線上課程時有任何問題,也都可以在 E+ 的專屬 Discord 社群中提問。另外 E+ 也有專門的履歷健檢頻道,讓讀者們可以問到飽、改到好。
感興趣的讀者,可以點此了解 E+ 的詳細介紹 F