去年底突然有雜事忙了一陣子 最近終於有點空 趁還沒忘光趕緊上來分享
我跟原po(superalf)是差不多一樣的面試時間 不過我是面Android
後來11月底有到新加坡on-site 不過可惜Design關表現不好被刷掉
很多細節原po都有提到 我就補充一些Android面試的差異
希望可以幫助到有興趣往海外發展的人 可以提早準備
我的recruiter是透過LinkedIn聯絡 約好時間後電話打給我
一開始先聊一下彼此背景 還有這個職位相關資訊
最後要結束前 本來以為沒了 結果突然說考幾題Android相關資訊
大概6~7題是非題 問了一些Android基本知識
像是activity一定能收到onStart/onResume/.... event嗎?
device方向改變時 activity會不會restart?
除了Yes/No以外 能補充解釋一些原因會更好
但我也不確定這邊答的不好會不會就被刷掉
之後就線上約電話面試的時間(BlueJeans)
電話面試遇到一位印度工程師
一開始他自我介紹完之後 也是先問了兩題Android相關的問題
這邊可能是因為遠端加上口音的關係 我聽的不是很清楚 回答感覺沒有很到位
難度就比recruiter的難一點 要真的很熟悉元件差異比較回答得出來和完整
接著是兩題leetcode easy~medium等級的問題
第一題寫太久導致我第二題只剩五分鐘 還好有在時間內趕出來
過大概幾天recruiter就打來恭喜 並解釋之後on-site會由別位recruiter負責
再過一陣子後第二位recruiter就來聯絡我 並解釋on-site相關資訊
主要是11月底到新加坡FB site跟其他site過來的RD面試
準備期間也有其他負責差旅的HR會來要一些護照, 銀行資訊
幫忙處理機票以及之後面試期間的花費報銷
一天的餐費就補助到75美金 其他交通或是因為面試而必須的開銷都能報帳
我第一天是下午的飛機到 晚餐前先走到FB辦公室附近了解一下路線和時間
之後就在附近賣場隨便吃 很努力的點也只有30新幣 最後吃超飽XD
on-site總共四關 兩個coding interview, 一個design, 一個behavioral
一開始是recruiter先把大家集合起來 稍微解釋一下之後流程 就各自帶開
面試準備期間就會給一個Candidate Sheet 上面分別有四關面試官的名字
我有特別上網肉搜了一下 了解對方背景 看看有沒有比較合適的問題可以在最後問
這四位面試關就在當天的面試者之間趕場 來面試的人只要待在會議室裡就好
coding interview兩關都是leetcode medium左右 答完最佳解之後
還會在稍微變形問一下
所以準備時最好是相關題還有各種解法都要熟悉
design算是我最擔心的 因為網路上能找到Android職缺面試的design經驗分享幾乎沒有
大部分還是偏system design, 連recruiter給的準備資料也是以system design為主
跟recruiter討論時 recruiter也只能建議 參考手機上的app
想想看如果是你來設計的話會怎麼實作
實際面試時 是參考messenger app, 給兩個activity, 解釋要如何設計聊天相關的功能
app跟backend之間怎麼溝通(API) 至於backend端完全不用管 就當做會有人處理好就行
因為我後來背景主要是以android framework為主 app開發只有一開始碰過一下子
後來很多相關細節都快忘了 就只能盡量扯一些基本東西的像是listview, JSON API
面試過程就跟一般網路上分享的system design interview差不多 面試者會不斷跟你討論
像是問你聊天記錄會怎麼儲存, 打算怎麼排序顯示紀錄, API會傳哪些東西...
雖然跟面試者討論的過程還行 但面試中我就覺得很多都回答得不好或是太基本
也沒有到很積極的lead the discussion感覺
後來從recruiter的feedback推敲大概也是這樣 很遺憾的就被reject了
之後的準備方向 我自己是覺得可以從FB現有的app下手
了解一下主要功能為何 自己大概會怎麼設計 實作 優化
考題我想也許就跟面SDE的差不多 只是面向從system變成Android App
平常有了解一下FB相關系統設計的文章可能有幫助 像我就有讀到一篇是介紹messenger
包括怎麼優化聊天紀錄儲存, real-time msg怎麼推送, 溝通的方式怎麼從JSON變成
proprietary的方式
在回答時剛好就能直接拿來用 雖然還是不夠用就是了XD
負責on-site的recruiter大概是快兩個禮拜後才聯絡我 一開始就很直接的講結果
安慰了一下 請我好好準備 明年還有興趣的話 再聯絡囉
下面再補充一些個人心得 也許有幫助 寫的可能有點雜請見諒
FB的coding interview就如網路上說的非常考古 實際面試過程也是如此
第二個coding interview面試者有直接先問我考題有沒有看過 我就很誠實地回答有
並大概講一下會是怎麼解 就這樣的連換三題都還是考古.....
這邊也很感謝 MIKEmike07 大大分享之前整理的考古題
相當的完整 很有幫助!
照著考古題還有leetcode上的frequency題目準備 其實就差不多100~200題了
有打算上一畝三分地看面經的話的 帳號盡量先開好 除非你不介意花錢買VIP
因為上面很多文章都有權限控管 新手幾乎一半以上都看不了
我在準備過程中每天慢慢答題加簽到 也累積不到兩百顆大米 有些文章還是看不了
上面也會有一些熱心人士定期幫忙整理前幾個月的考古題成excel 有跟到的話多少有幫助
總體來講 有興趣想挑戰北美工作的 越早開始準備越好
不管是coding還是system design 都是需要花時間閱讀 練習 理解
像我這次一邊工作一邊準備面試 在有時間壓力下其實還蠻累的
尤其是system design 因為我自己的背景跟backend不太相關
一些文章讀起來真的覺得這領域博大精深 要記得東西不少
沒有實戰經驗很難短時間上手
on-site中間 有一小段休息時間 這時是第一個recruiter帶我在FB辦公室繞繞順便閒聊
他有分享到因為美國H1B簽證變難取得的關係 之後可能就只會找London的職缺
也了解到新加坡FB主要是做企業方的應用為主
辦公室看出去的view非常好 但這次on-site算是在舊辦公室
大部分的RD都搬到新的去了
另外我覺得mock interview很有幫助 尤其是遇到不熟的題目時
很多臨場反應都是遇過後 才比較知道怎麼改進
跟我之前在台灣的面試經驗比起來 FB的整體流程我覺得很棒
感覺得出來recruiter會是想幫助來面試的人 面試時interviewer的態度都很好
當然就像有些人分享的 面試也是有運氣成份在 遇到不好的經驗也是有的
未來我應該會是繼續練習 有空有機會就去面試看看 當作累積經驗也不錯