背景
可能由于我 GitHub 較為活躍揭璃,國(guó)慶期間居然收到了 Facebook 的面試邀請(qǐng)函感凤,既然有這機(jī)肥丸相,當(dāng)然不能浪費(fèi),試試那就試試吧竟秫,下面是我的 GitHub 頁(yè)面及面試邀請(qǐng)函。
準(zhǔn)備
電面流程
在和HR交流前我也查看了很多關(guān)于 Facebook 面試相關(guān)流程跷乐,正所謂知己知彼肥败,百戰(zhàn)百勝。HR是在新加坡的,和他交流還是用中國(guó)話馒稍,簡(jiǎn)單交流完之后就給我發(fā)了面試相關(guān)郵件皿哨,不過(guò)之后的電話面試當(dāng)然得用英文了。郵件中介紹了電面相關(guān)流程纽谒,總時(shí)長(zhǎng)45分鐘左右证膨,前5分鐘自我介紹下并回答幾個(gè)簡(jiǎn)單的 Android 問(wèn)題,接下來(lái)的35分鐘就是 coding 了鼓黔,最后5分鐘就是你可以問(wèn)面試官幾個(gè)問(wèn)題央勒。
LeetCode
面試FLAG(Facebook、Linkedin澳化、Amazon崔步、Google)這樣的外企,數(shù)據(jù)結(jié)構(gòu)和算法肯定是要過(guò)關(guān)的缎谷,并且可以脫離IDE編寫代碼井濒,也就是所謂的白板編程,F(xiàn)acebook 是用 CoderPad 在線coding列林,題目的話著重推薦 LeetCode瑞你,所以我推薦把題目拷貝到 CoderPad 上,然后在 CoderPad 上完整地寫出AC代碼希痴,如果某些APIs不熟悉的話者甲,那就去IDE上面查一下,確保自己寫出的代碼等同于IDE格式化后的代碼润梯。下面附上一首詩(shī)过牙。
明有科舉八股,今有LeetCode纺铭。
八股定格式而取文采心意寇钉,LeetCode定題目且重答案背誦。
美其名曰:"practice makes perfect."
為何今不如古舶赔?
非也非也扫倡,
科舉為國(guó)取士,LeetCode為Google篩碼工竟纳,各取所需也撵溃。
這方面的話,幸好我大學(xué)是ACMer锥累,數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的還是有點(diǎn)底子的缘挑,為了方便大家,我在 GitHub 上開了 awesome-java-leetcode桶略,其中包括了 Java 語(yǔ)言的 LeetCode 相關(guān)題解语淘,覺(jué)得不錯(cuò)的話給個(gè) star 吧诲宇。說(shuō)句題外話,我一直都覺(jué)得數(shù)據(jù)結(jié)構(gòu)和算法是作為一名程序員必須掌握和善于利用的惶翻,即便我沒(méi)這個(gè)機(jī)會(huì)面試 Facebook姑蓝,我也是照樣會(huì)去刷 LeetCode 的,今后也會(huì)不斷更新 LeetCode 題解吕粗。
以下是和HR交流之后他發(fā)給我的部分面試準(zhǔn)備內(nèi)容纺荧。
其中也有提及 LeetCode 相關(guān)內(nèi)容,可見(jiàn)其重要性颅筋。
簡(jiǎn)歷
面試外企一份英文簡(jiǎn)歷是必不可少的宙暇,我花了兩天時(shí)間做了份 Markdown 通用的簡(jiǎn)歷,利用 Pandoc 可以很方便導(dǎo)出各種格式垃沦,至于為什么花了兩天客给,當(dāng)然是為了之后能分享給你們哈。
之前寫過(guò)一篇文章:為跳槽的你獻(xiàn)計(jì)獻(xiàn)策(Android) 有很多小伙伴想要查看我的簡(jiǎn)歷肢簿,而當(dāng)時(shí)我只提供了模板靶剑。如果現(xiàn)在小伙伴們還不清楚怎么寫簡(jiǎn)歷或者覺(jué)得自己的簡(jiǎn)歷不夠完美,那你們可以借鑒我的自己去修改修改池充,我已把它上傳到了 GitHub桩引,這里是傳送門,喜歡的話記得 star 哦收夸。
注意點(diǎn)
Facebook 更為注重的是團(tuán)隊(duì)精神坑匠,即便你 coding 水平一流,在面試的時(shí)候你聲也不吭地敲完了所有代碼卧惜,即便是 bug-free 厘灼,那面試官心里也肯定會(huì)想:“wc,老子肯定不希望跟這種人做同事咽瓷!”设凹。所以coding 的時(shí)候要和面試官進(jìn)行交流哈,不要悶頭就敲代碼茅姜,而是要表現(xiàn)得是在和面試官在一起討論問(wèn)題闪朱,比如要問(wèn)清楚數(shù)據(jù)的邊界,你要用什么方式去解決這個(gè)問(wèn)題钻洒,時(shí)間復(fù)雜度奋姿,空間復(fù)雜度等等,做完之后不要忘了測(cè)試用例素标,當(dāng)然称诗,最終目的肯定是需要 bug-free 的。
結(jié)語(yǔ)
以上便是我的面試總結(jié)头遭,不論我之后還有沒(méi)有機(jī)肥面試下一輪(Facebook 應(yīng)該是至少四面)粪狼,我還是會(huì)繼續(xù)鞏固數(shù)據(jù)結(jié)構(gòu)和算法退腥,不斷更新我的 awesome-java-leetcode,畢竟面試 Facebook 的機(jī)肥年年都有再榄,即使不為 Facebook,這也是我作為程序員應(yīng)該堅(jiān)持的享潜,完結(jié)困鸥,撒花。