面試問答
你認為資深工程師與一般工程師的差異在哪
可以從過往的經驗結合...
一進去先被帶到公共區等面試官,面試官來了之後因為會議室尚未釋出,在外面等待的時間就先詢問我為什麼想轉換工作 (因為我是在
職中面試),人很友善,我們有點像閒聊的方式交流了一下才進到會議室
面試官是這個職位的主管,過程都是 Behavioral Question,會圍繞你的工作經歷跟 Skills 向你提問,然後根據你的答覆延伸詢問額外的問題,感受上不會很有壓力,當作在閒聊跟一般的技術交流就行,主管不會咄咄逼人,還蠻健談的可以跟他聊很多,他也會自己分享很多知識或看法跟你交流
應對手段基本上履歷寫的要熟悉,不管是工作經歷還是過往使用過的 Skills,平常心即可
最後會給提問的時間,可以利用這段時間深入了解職位或公司,或是主管對這個職位的期待,然後主管說不管面試者有沒有問都會說明加班的部分,可以把主管的回覆納入考量的依據
整體花費時間約 2 小時
面試問答
你認為資深工程師與一般工程師的差異在哪
可以從過往的經驗結合自己的認知答題,但需要講到關鍵的差異點
例如:資深工程師能夠明確的理解每個選擇「為什麼這樣做?」並且精確的說明「這麼做會帶來甚麼好處?」、「有沒有甚麼缺點?」
1. 為什麼選擇這個語言或框架?能帶來甚麼好處?有沒有缺點?
2. 為什麼系統是這樣設計?因為流量不大?因為是 POC 階段的產品?因為硬體考量?
3. 為什麼流程這樣設計?是因為商業需求嗎?還是因為舊系統的包袱?
...等
OOP 是甚麼?為什麼需要 follow OOP?
依照自己對 OOP 的理解,然後說明 OOP 帶來的好處,可以的話也能補充一些過往使用過 OOP 的 case,或是直接舉個例子
如果剛入職後指派給你一項任務,你需要用完全不熟悉的程式語言開發舊系統的新功能,時限為兩週,你會怎麼規劃?
盡量描述的完整一點,當下我是照這樣拆解步驟說明:
1. 熟悉語言
2. 熟悉舊系統 (看 code、翻文件、詢問前輩系統的歷史、理解流程...等)
3. 需求分析 + 收斂
4. 時程評估
5. 開發
6. 測試 + 驗證
6. release + 觀測
主管不希望只聽標準答案,想聽的是你有沒有完整的描述整個過程且脈絡清楚,明確知道自己在哪個階段該做甚麼事來達成目標
對於需求、時程的評估也蠻重視的,不希望你因為不熟悉舊系統或是不熟悉這套語言而卡住,導致需求項目無法順利推進,至少要能提早提出卡點是甚麼並尋求幫助,可能跟我沒寫過這語言有關,如果你有符合 JD 上的語言要求,這點應該就不太影響
面試建議
平常心即可,面試官人很好,過程中很像在閒聊跟經驗交流,他也會分享很多自己的經驗跟看法,技術能力也很強不太需要擔心,但有一些主管比較重視的項目跟人格特質,我自己感覺還是偏向找有經驗的即戰力工程師,總之若有機會參與面試,就把履歷上寫的所有項目都熟悉,完整的描述出來就行