[心得] 2022上半年後端面試分享

軟工

41380

前言
 首次在本版貼文,若有不恰當或是需要修改的部份麻煩再告訴我,謝謝
 本次面試的時間在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個面試一起,蠻省事的
 實際上我自己只有一間公司需要去現場面試
 其他都是線上面試,所以我覺得對求職者來說,面試花的成本降低不少

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.184.12.61 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1651945002.A.6D7.html
qwe703021樓標題跟我前段時間發的文好像XD 05/08 02:18
qwe703022樓蠻好奇最後的offer是多少,因為我也是兩年,不過是前端 05/08 02:18
價格的話我不太好直接說,但和前公司比的話至少有20%以上
MyNion3樓推分享,下個禮拜也要開始面試ㄌ 05/08 02:25
ntpuisbest4樓java一年推 05/08 02:30
ntpuisbest5樓想要問這些公司都前後分離嗎?不知道需不需要掌握前 05/08 02:41
ntpuisbest6樓端框架,還是一點點jquery就好 05/08 02:41
應該都是前後分離,這些職缺我沒有被問到任何關於前端的問題 不論是主流框架,甚至是最基本的Html、CSS、JavaScript都沒有被問到過
ntpuisbest7樓謝謝喔,我一直在想我在寫內部系統,所以都沒機會用 05/08 03:32
ntpuisbest8樓到K8s,或是kafka,這樣是不是就只能自己去架了或是刷題 05/08 03:32
如果你對K8s內部的運作原理和機制很有興趣的話,我才會建議自架K8s 不然可能會在安裝的過程中,遇到不少麻煩需要處理,額外花掉一些時間 而且K8s的版本發展很快,我印象是每三個月會出一次minor version release 所以如果你想要用到新版本的功能的話,還要自己升級會有一點點麻煩 若你只是想要使用或是了解如何透過K8s來部署你的服務的話 Google、Amazon、微軟應該都有提供相對應的服務來使用,這個應該會省事不少 雖然應該會需要額外的支出,但可以讓你比較專注在你想要學習的東西上面 如果你真的要自己架K8s,現在應該有蠻多別人做好的安裝K8s的服務或是教學 像我當初用的kubeadm、kind(Kubernetes in Docker)或是K3s之類的 使用minikube也OK,但他只能跑執行單個node,所以會和真實的K8s叢集不太一樣 Kafka如果只是要自已玩玩看的話 啟動單個服務應該是蠻簡單的,需要的資源也應該不會太多
Booker55669樓感謝分享 05/08 09:10
mirror022710樓推分享 05/08 09:20
z5656233711樓推詳細分享 05/08 09:28
ccnancy12樓謝謝分享 05/08 09:55
hobnob13樓推心得 05/08 10:59
ntpuisbest14樓謝詳細,感謝 05/08 11:30
moszap15樓 05/08 11:35
whatabiggun16樓 05/08 11:44
foreverk17樓推,年初也是兩年經驗換工作,我的經驗是想被當作Senio 05/08 12:01
foreverk18樓r的話,面試回答內容不再是你會什麼,而是你用這些東西 05/08 12:01
foreverk19樓做了什麼,以及優缺點等等,不然別說面試官,你自己也 05/08 12:01
foreverk20樓會被問到覺得自己好像不上不下的 05/08 12:01
foreverk21樓按錯補推 05/08 12:03
感謝補充,我也覺得這些問題當初在面試的時候 若沒有事先思考和準備,都會比較難回答 畢竟沒有能夠解決所有問題的萬靈藥,很多時候還是要看當時的環境來決定 但像我由於自身經驗的不足,如果只靠自己一個人思考,還是會有點難度 如果能找到一些人一起討論的話,或許會是比較好的解法也不一定
keyboard5622樓好奇最後選擇去哪? 05/08 12:09
shaomi23樓方便問你前工作在哪嗎?是否值得去練功@@ 05/08 12:37
Booker556624樓想問前公司+1 想練功QQ 05/08 12:40
simplelife9725樓推分享~ 05/08 12:46
devilkool26樓 05/08 12:49
jack93101827樓感謝分享 05/08 13:08
BeYaaaaaaaa28樓詳細 推~ 05/08 13:45
acgotaku29樓微軟那個support缺 錢是真的蠻多 05/08 13:48
acgotaku30樓但讓我選 可能會選趨勢 05/08 13:49
我當初也在考慮要怎麼選,因為兩個職缺都有我想嘗試的東西 但最後還是選擇了微軟,一來是因為公司本身的名聲 二來是這個職缺在介紹和面試的過程,有些地方蠻吸引我的
更多心得
[心得] 台積 IT SRE 面試心得
[心得] 可以問面試官的問題整理
[心得] 用 Go 語言實現 Pub/Sub 模式
[心得] Line TW / Vewd
[心得] 彩虹科技 / AmazingTalker Back-end Developer
[心得] 後端工程師面試心得
[心得] 非本科自學轉職分享
[心得] android developer 面試 恒遠/AILAB人工智慧/MEGA/crypto.co