前言:
首次在本版貼文,若有不恰當或是需要修改的部份麻煩再告訴我,謝謝
本次面試的時間在2022年3月到4月之間,內容可能有點多,請見諒
列出的公司順序是按照我自己開始面試的時間做排序
內容也是結束根據印象寫下的,所以可能不是很完整
如果懶得看的人或許可以參考一下我個人面試完的結論
但由於我自身的經驗所以結論可能不完全正確,如果有其他想法也歡迎留言
希望這篇文章能夠幫到有需要的人,也祝大家都能找到自己理想的職缺
背景介紹:
四中碩士,2年後端工作經驗
主要使用Java和Spring Framework進行API開發
熟悉關聯式資料庫、mongoDB和有使用過一些Message Queue的經驗
有使用過Docker及Kubernetes部署過服務,沒什麼在Leetcode上刷題
1. Line:
自己主動在求職網站投遞履歷,有點忘了當初投的職缺,但應該是Junior的後端工程師
一面:
HR會寄一個測驗連結,印象中答題時間是1個小時,題目總共10題
大概有2-3題coding的題目,難度大概在Leetcode Easy左右,主要是字串和陣列處理
剩下的則是選擇題(單、多選皆有),但包含的領域很廣
基本上一題就會是一個領域,但難度應該都不高
我有印象的內容有Security、DNS、SDN、Linux output code之類的
結果:無聲卡
2. IBM:Application Developer - Java & Web Technologies
自己主動在求職網站投遞履歷、LinkedIn上被HR詢問意願後,協助安排時間面試
總共面試過三個職缺,不過工作內容都是Java後端,所以把他們有問到的問題做統整
一面:
面試時間都是1個小時,和面試官1對1、1對2的情況都有,都會留5-10分鐘讓我提問
被問到的問題大概分為下方這幾類:
1. 使用過的技術的掌握程度:
Java、Spring Framework相關的問題
專案上使用Kafka、Solr、MongoDB的原因?
有使用過script language的經驗嗎?主要在哪種OS上開發?
讓我介紹SVN和Git的差異
2. 優化、調教的經驗:
對於Java Memory的管理方式是否清楚、是否有做過效能的優化?
如何加速關聯式資料庫內的資料撈取?
3. 設計相關:
在開發的時候有使用過Design Pattern,或是有考慮使用嗎?
我開發過專案的架構是怎麼設計的,有沒有其他更好的設計方式?
有設計過微服務的架構嗎?
4. 其他:
當拿到需求的時候要怎麼將它轉換成業務邏輯?
在開發服務的時候怎麼和其他開發者溝通,或是要怎麼設計出前端需要的物件?
離職的原因?
結果:三個職缺裡,感謝函和無聲卡都有
3. 趨勢:Software Developer
自己主動在求職網站投遞履歷
一面:
HR會寄一個測驗連結,答題時間1.5個小時,總共3題的Coding
印象中應該是一題字串處理、一題陣列處理和一題比較複雜一點的飛機安排座位問題
對於有在刷題的人來說,應該不算是太困難的問題
二面:
當天安排三個單位進行面試
第一個小時由兩個部門一起面試,第二個小時則是分配給另一個部門
三個部門都會各自介紹開發中的產品和這個職缺會需要那些能力
主要根據我在自我介紹時,提到的技術來做提問
有些他們比較有興趣的部份會繼續延伸問題
像是為什麼某個專案要採用Kafka?
Kafka在使用上的優點和特性是什麼?有沒有其他替代的方式?
如果不能使用任何Message Queue的技術,要怎麼設計架構?
這個替代的方式會遇到什麼問題?
面試結束後,HR有請我根據自己的喜好排序剛剛面試的部門的優先順序
三面:
不確定和上一輪的喜好排序結果有沒有關係,但最後是和我最希望的職缺再面試一輪
這次面試官增加了一位
由於上一輪面試比較少談到Java相關的問題,所以這一輪主要都在問Java相關的問題
印象中Java問題和IBM提到的內容差距不大,所以這邊就不贅述
四面:
到公司和HR進行現場面試
有被問到一些技術上的簡單問題,主要還是集中在個人性格和個人背景的問題
像是有沒有和其他人合作的經驗?
有沒有領導過團體的經驗?
如果有的話具體又是什麼情況?之類的問題
結果:Offer get
4. 美商網基:Java Backend Software Engineer
獵頭詢問意願後,協助面試申請
一面:
4個小時做2題,2題都是程式題,據說評分會根據程式的正確性和花的解答時間有關
題目和他們公司做的內容有關係
第二題是第一題的延伸,但會更加接近真實情況和解法的效能增進上為主
結果:獵頭告知成績未達標
5. 樂天國際商業銀行:Java後端工程師
自己主動在求職網站投遞履歷
一面:
面試時間1個小時,總共有4位面試官,應該從工程師到大主管都有
比較有印象的問題大致如下:
若讓我使用SpringBoot從頭開發一個簡單的、只需支援單張資料表CRUD的服務
會需要多少時間?
有沒有使用過除了Tomcat之外的Web server,像是JBoss或是其他server?
CD的流程是使用Jenkins嗎?如果是的話,流程又是怎麼做的?
在開發服務的時候,有特別考慮到叢集的方式來開發嗎?如何保持資料的一致性?
最後有留一點時間讓我做提問
但由於他們有需要保密的地方,所以比較難問使用的技術相關、或是工作細節的問題
結果:感謝函
6. 微軟:Technical Support Engineer-Developer
LinkedIn上被HR詢問意願後,協助安排時間面試
由於這個職缺不是後端工程師,比較偏向技術支援
所以HR有稍微介紹了這個職缺比較需要的能力和工作上會遇到的情況
一面:
Phone screen,1-1.5小時的全英文交談
技術上討論的點不多,比較多著重在英語的口語表達能力和個人性格
首先請我介紹我自己,然後大致上被問一兩個技術相關的問題後便開始下方的問題:
我認為這個職缺在技術能力和溝通能力哪個比較重要?
我目前手上有沒有Offer或是正在面試的公司,如果有,我會怎麼排序它們?
我自己覺得的3個性格上的優點,有沒有例子可以證明?
假設在工作上遇到緊急事件我會如何應對?
我是屬於冷靜的人嗎?
二面:
Role Play,30分鐘左右的英文對談,但我實際上只講了15分鐘
面試前會事先給你一份文件,介紹你所扮演的角色
讓你根據文件上設定的情境,事先思考要怎麼模擬這個角色
如果有事先準備的話應該沒什麼太大的問題,遇到問題時,對方也會提供協助
三面:
由兩位面試官一起面試,全中文交談
有技術也有個人性格的問題,但比重上是技術大於性格
其中一位會簡單介紹這個職缺會使用到的技術、需要的能力
另一位則會準備兩個簡單的測試
1. 給我一份開源的程式碼,請我找到其中的某個函式後
根據它的程式碼介紹它的功能
2. 給我一份技術文件和三個問題
讓我在5-10分鐘從這份文件中找出這三個問題的解答
最後詢問我對於這個職缺有沒有興趣?
或是有沒有什麼想法,以及我是否喜歡學習新知識
四面:
由一位面試官進行1個小時的面試,相較於前一個關卡,這個面試比較輕鬆一些
有要求使用英文自我介紹,然後他會根據介紹的內容來進行英文提問和對答
五面:
和一位面試官面談1個小時,大概15分鐘中文->20分鐘英文->25分鐘中文
問題比較偏向上一關比較沒有問到的部份
第一段偏向使用過的技術相關的問題
第二段則是使用英文回答面試官的問題,主要被問到的比較像是工作時會遭遇的情況
像是我在工作上遇到問題的時候要怎麼處理?
關於我的性格?
有沒有例子可以證明我的性格?
第三段則是輕鬆一些,被問到關於未來3-5年預期的發展
然後給我一點時間來做提問
結果:Offer get
7. 中國信託:軟體設計工程師(核心轉型)
求職網站上HR詢問面試意願後,與他商量面試時間
面試前要填一份簡單的個人的履歷檔案
一面:
面試時間1個小時,面試時用人主管和HR會一起參加,但兩者問的問題不會重疊
HR的問題就是一般人格特質的問題
再加上一些關於背景的詢問以及離開前公司的原因
用人主管的問題有如Java和Spring相關的知識,也會根據我專案使用的技術來提問
有被問到怎麼將客戶需求轉換成業務邏輯,應該是這個職缺會很需要的一個能力
所以有不少問題都是基於這個來做延伸,怎麼轉換的思路和步驟可能要說明的很明確
結果:感謝函
8. Garmin:企業流程服務課_軟體工程師
求職網站上HR詢問面試意願後,與他商量面試時間
面試前要花一點時間做性向測驗、英文測驗和個人的履歷填寫
一面:
表定上安排了30分鐘的HR面試,但我實際上大概進行了45分鐘左右
HR會按照她拿到的資料(求職網站上的履歷、公司網站上的個人履歷填寫),詳細詢問
二面:
和一位主管面試,大約兩個小時左右,首先他先介紹了這個職缺的主要工作內容
基本上會根據個人的經歷,然後按照技術的類型來做問答
像我有被問到Java、Spring、資料庫(SQL與NoSQL都有)、Kafka相關的問題
除此之外,關於結構設計上
主要是問我開發過的專案中為什麼要使用Kafka或是MongoDB之類的問題
還有我是否理解Java的memory管理的機制、有沒有Performance Tuning的經驗
此外也有提到關於這個單位的未來發展,最後也給我一些時間來提問
個人感覺主管人蠻好的,面試起來蠻愉快的
結果:已拿到其他Offer,中止面試流程
9. Ubiquiti:Sr. Backend Engineer
獵頭詢問意願後,協助面試申請
一面:
大概1.5個小時,由2位工程師一起面試
前30分鐘根據他們給的題目在類似Google Doc的網頁上直接作答
題目大概是2題Java相關的基礎知識,另外3題Coding
題型大概是簡單的數字計算、陣列處理和一個簡易的Linked list
作答時間結束之後,請我一邊解釋我的作答內容,每一步操作的內容是要做什麼
然後讓我說出我的解法的計算時間複雜度
由於這個缺比較不需要處理CD相關的流程
所以我沒有被問到Docker、Kubernetes這些技術
結果:獵頭告知已選擇其他人
10. Yahoo:Software Engineer (Backend)
從官網上投遞履歷後,與HR商量面試時間
一面:
與面試官大約一個小時的中文對談
因為這個缺和金流比較有關,所以會額外注重security相關的知識
一開始面試官會稍微介紹一下這個職缺的工作內容和使用的技術
他會從我的自我介紹的內容中選擇他比較有興趣的技術、專案的功能提問
除了上述過程的提問之外,也有被問到Java與Spring相關的知識
像是Java的==與equals()的差別?hashCode()是做什麼的?
什麼是hash?在實現hashCode()有沒有什麼需要注意的地方?
Spring的話,則是請我解釋什麼是控制反轉(IoC)與依賴注入(DI)?
和我是否有使用過@Bean來做一些操作的經驗?
由於在我面試的這個時間點,Spring有出現兩個安全性的漏洞
一個與Log4j有關,另一個則和Spring4Shell有關
所以也有被問到我是否知道這個漏洞,以及要如何去解決他們和臨時的修補方式
再來是透過類似google doc上的網頁來寫程式碼
這個部份主要是觀察遇到問題的反應能力,和一些coding的習慣
總共三題蠻基本的題目,印象中題目的暴力解都很直接,最佳解也不算特別刁鑽
然後都會要求你計算和解釋各自的時間複雜度
有時會根據你的解法再問你有沒有其他最佳解
最後有留5-10分鐘的時間讓我做提問
結果:感謝函
結論:
面試起來的感覺是,2年的工作經驗處在一個比較不上不下的情況
比Junior多一些知識和熟練度,但經驗卻又不到Senior的程度
由於準備的時間不多,所以我本身準備的內容
主要還是集中在使用的開發工具,如Java和Spring相關的知識
但其實還是很常遇到一些超出我能力的問題
像是架構設計方面的問題和效能優化的問題
這些因為我本身經驗不足,所以被問到的時候都會比較難回答
如果有時間的話可以稍微準備一下相關的知識
除此之外,不確定是不是我經歷上有寫使用Kubernetes的經驗
所以不少公司都會問到有沒有使用AWS、GCP、Azure的經驗
但由於我只有使用過自建的Kubernetes叢集
所以比較難回答相關的問題,這點比較可惜一些
若有機會的話,我想可以花一點時間培養相關的能力,應該會有些收穫
值得一提的是,如果是換工作,不論用人主管或是HR都有很高的機率會提問離職的原因
所以非常建議事先思考要如何回答和包裝一下,這邊的包裝並不是捏造的意思
而是選出你覺得比較能展現你個人優點或是特色的部份
我想,會考慮離職大概會是好幾個原因的綜合因素,而不是僅僅因為一個單純的理由
可以事先從中挑出一兩個理由,若是這個理由能讓他們接受和理解應該會有一些幫助
在投遞履歷上,除了使用比較知名的徵才網站
我也建議在Linkedin建立自己的檔案,讓其他人有辦法聯繫
雖然我在Linkedin上提供的資訊不多
我只有放上公司、學歷、技能和一個Java的技能標章
但還是接到不少詢問或是邀約,這點倒是超出我個人的預期
若是公司本身有提供窗口或是管道可以直接投遞履歷的話
使用這個方式的我覺得接到面試邀約的機會,會比前兩項更高一些
可能是因為疫情的影響,所以面試的方式和我兩年前的時候差很多
比較前面的面試主要都是使用視訊的方式
所以我比較有機會一天的下午同時排2-3個面試一起,蠻省事的
實際上我自己只有一間公司需要去現場面試
其他都是線上面試,所以我覺得對求職者來說,面試花的成本降低不少
--