Facebook面經記

背景

可能因爲我 GitHub 較爲活躍,國慶期間竟然收到了 Facebook 的面試邀請函,既然有這機會,固然不能浪費,試試那就試試吧,下面是個人GitHub 頁面及面試邀請函java

準備

電面流程

在和HR交流前我也查看了不少關於 Facebook 面試相關流程,正所謂知己知彼,百戰百勝。HR是在新加坡的,和他交流仍是用中國話,簡單交流完以後就給我發了面試相關郵件,不過以後的電話面試固然得用英文了。郵件中介紹了電面相關流程,總時長45分鐘左右,前5分鐘自我介紹下並回答幾個簡單的 Android 問題,接下來的35分鐘就是 coding 了,最後5分鐘就是你能夠問面試官幾個問題。git

LeetCode

面試FLAG(Facebook、Linkedin、Amazon、Google)這樣的外企,數據結構和算法確定是要過關的,而且能夠脫離IDE編寫代碼,也就是所謂的白板編程,Facebook 是用 CoderPad 在線coding,題目的話着重推薦 LeetCode,因此我推薦把題目拷貝到 CoderPad 上,而後在 CoderPad 上完整地寫出AC代碼,若是某些APIs不熟悉的話,那就去IDE上面查一下,確保本身寫出的代碼等同於IDE格式化後的代碼。下面附上一首詩。程序員

明有科舉八股,今有LeetCode。
八股定格式而取文采心意,LeetCode定題目且重答案背誦。
美其名曰:"practice makes perfect."
爲什麼今不如古?
非也非也,
科舉爲國取士,LeetCode爲Google篩碼工,各取所需也。github

這方面的話,幸虧我大學是ACMer,數據結構和算法相關的仍是有點底子的,爲了方便你們,我在 GitHub 上開了 awesome-java-leetcode,其中包括了 Java 語言的 LeetCode 相關題解,以爲不錯的話給個 star 吧。說句題外話,我一直都以爲數據結構和算法是做爲一名程序員必須掌握和藹於利用的,即使我沒這個機會面試 Facebook,我也是照樣會去刷 LeetCode 的,從此也會不斷更新 LeetCode 題解。面試

如下是和HR交流以後他發給個人部分面試準備內容。算法

其中也有說起 LeetCode 相關內容,可見其重要性。編程

簡歷

面試外企一份英文簡歷是必不可少的,我花了兩天時間作了份 Markdown 通用的簡歷,利用 Pandoc 能夠很方便導出各類格式,至於爲何花了兩天,固然是爲了以後能分享給大家哈。數據結構

以前寫過一篇文章:爲跳槽的你獻計獻策(Android) 有不少小夥伴想要查看個人簡歷,而當時我只提供了模板。若是如今小夥伴們還不清楚怎麼寫簡歷或者以爲本身的簡歷不夠完美,那大家能夠借鑑個人本身去修改修改,我已把它上傳到了 GitHub,這裏是傳送門,喜歡的話記得 star 哦。數據結構和算法

注意點

Facebook 更爲注重的是團隊精神,即使你 coding 水平一流,在面試的時候你聲也不吭地敲完了全部代碼,即使是 bug-free ,那面試官內心也確定會想:「wc,老子確定不但願跟這種人作同事!」。因此coding 的時候要和麪試官進行交流哈,不要悶頭就敲代碼,而是要表現得是在和麪試官在一塊兒討論問題,好比要問清楚數據的邊界,你要用什麼方式去解決這個問題,時間複雜度,空間複雜度等等,作完以後不要忘了測試用例,固然,最終目的確定是須要 bug-free 的。測試

結語

以上即是個人面試總結,不論我以後還有沒有機肥面試下一輪,我仍是會繼續鞏固數據結構和算法,不斷更新個人 awesome-java-leetcode,畢竟面試 Facebook 的機肥年年都有,即便不爲 Facebook,這也是我做爲程序員應該堅持的,完結,撒花。

相關文章
相關標籤/搜索