面試問答
解釋 time & space complexity
略
一開始是在 104 被 HR
面試大約分成三大部分
第一部分是簡單的自我介紹跟behavior questions
。面試官一開始先自我介紹,說她就是後端實習生的主管,所以由他來負責面試。接著自我介紹,我大概講述了自己的相關比賽經驗、Project,面試官會根據你的自我介紹內容提問,大部分都是behavior questions。像是:在團隊中通常扮演什麼角色、如果跟隊友意見不合要怎麼處理...等等。
第二部分是technical interview,包括口試跟coding interview。口試的範圍包括資料結構與演算法、OS、OOP等等。coding interview 比較不像一般 Leetcode的題型,要求實作樸克牌發牌器,以及一些 Follow up 的優化。比較特別的是有問到一些C++的behavior相關問題。
第三部分是Q&A。一個禮拜工作五天,而雖然工作地點在新埔,但是可以申請遠距工作;薪資因為保密條款不方便透漏,跟其他公司的實習生差不多、甚至高一點。對實習生十分友善,主管會親自幫忙 coding review,聽起來真的很有誠意。
面試問答
解釋 time & space complexity
略
求費式數列第 n 項?
1. naive DP O(n) 可以做完
2. 用矩陣快速冪做到 O(logn)
3. 公式解 O(1),要注意精度問題
解釋 dead lock ,以及遇到 dead lock 怎麼解決?
解釋完 dead lock 跟滿足的四個條件後,就跟面試官說不太熟解決方法,她就稍微解釋了Deadlock Prevention 跟 Avoidance
解釋 thread 跟 process
thread 是 cpu 使用時的基本單位、process 是正在執行的 program。
我大概只有答出這種粗淺的概念,印象中後面還有 follow up 但我聽不不太懂,面試官看我不太熟也就沒繼續問下去XD
OOP 三大特性相關問題
那時候沒學過OOP,但我記得是封裝、繼承、多型。面試官問細節,我直接跟面試官說不熟,她就解釋了一下,並且說這個很重要,希望能修相關課程
面試建議
綜觀整場面試,我在演算法以及coding interview 的部分回答得蠻好的,follow up 不用提示就很快都有做出來;但是在 OS 、OOP 相關的題目回答得不太好,但最後面試官對我的表現感覺還是很滿意,有暗示說會給 offer,讓我直接問實習相關問題。
所以我認為資料結構 & 演算法的能力還是很重要,也要熟悉C++ 常用的library以及相關的 behavior,都有可能在coding interview 的時候會用到。
至於OS 、OOP 比較項加分項,面試官有提到會問這些,是因為對程式的撰寫很重要,但是不會的話也沒關係,實習的時候再學就好。