說實話,其實我的眼界從來很狹窄,以前想的是,如果能在天朝帝都扎下腳跟,過上老婆孩子熱炕頭的日子,對我來說已很滿足。所以之前也從未對出國讀書或工作有過準備,下文所述很多內容都是我在最近的一小段時間里才接觸到的,而且現在離正式入職還早,對于fb內部的情況并沒有什么了解,簽證之類的麻煩事還在辦理中,說不定去不成了也是有可能的(-_-)……扯遠了,總之就是說,雖然我已經盡力做到客觀準確,但恐怕難免會有錯漏,請讀者不吝賜教。本文僅供參考,引起什么不好的后果本人不負責任 =,=
Q: 你的學歷、學校、專業、英語成績、論文、競賽獲獎、工作經驗、參與開源項目等背景情況?一定很牛吧?
A: 真的不牛,矮丑窮,純RP爆發而已。本科天津大學軟件學院,碩士天津大學計算機學院。高中無競賽經歷,本科階段ACM-ICPC競賽亞洲區域賽有幾次金獎(其實只是一百個隊里前十幾名而已的意思),進過一次總決賽但無獎牌。Topcoder現在黃圈未滿,最高時曾紅了一點點。世界范圍的算法比賽比如Topcoder Open, Google Code Jam之類只求混件衣服從沒進過決賽,中國范圍的如百度之星, GCJ中國站之類運氣好的時候進過一兩次,但最終沒有很高的成績。沒考過托福GRE。沒有Top期刊會議論文。沒有參與過靠譜的開源項目。畢業前沒有實習經驗,畢業后在騰訊公司有一年工作經驗,做搜索引擎的后臺開發,小兵一枚。
Q: 你是怎么和Facebook聯系上的?自己投的簡歷還是找人內推?
A: 一開始是一個國外的獵頭公司給我發的郵件,說有Facebook的工作機會,如果有興趣的話回復簡歷給他們,我就回了一個。我不清楚這個獵頭公司是從什么途徑找到了我的聯系方式。
Q: 面試用英文還是中文?
A: 全程英文,不過對自己的英語沒有信心的同學也不必太擔心。書面英語大家應該不太發怵,擔心的估計是聽和說。
聽的方面:因為面試的時候大多數時間都是在白板上(在線白板或者現場白板)寫代碼,而代碼是地球人都看得懂的~ 面試問題中一些關鍵的信息,面試官為了清楚起見都會寫在白板上(如果沒有,你也可以要求他寫一下),所以總的來說還好。值得注意的是有些面試官會有口音(最常見的就是印度口音了),如果之前完全沒有聽過的話會很不好懂,尤其是在電話面試時加上噪音的干擾,這個也沒什么好辦法,聽不清就讓對方重復幾遍好了,關鍵信息可以讓對方寫在在線白板上。我在電話面試時遇見的就是印度面試官,答得磕磕絆絆,還好通過了。(扯遠兩句,不知道多聽TBBT里Raj的說話有沒有幫助,嘿嘿。據說對于成年人,練習聽力的最好辦法不是只聽非常標準的英語,而是要盡可能多地接觸各種口音,這樣才能把耳朵的分辨能力練出來)
說的方面:人腦的糾錯功能不是蓋的,你作為non-native speaker,語法錯誤沒人會care,哪怕你毫無語法的一個個單詞往外蹦,老外也能基本聽懂。切記這是技術面試不是口語考試,不要因為組織不好語言就不敢說話了。比如你的思路被卡住的時候,不要一直悶頭苦想,要把你目前想到東西說出來,讓面試官知道你不是毫無頭緒的,他也可以根據你的想法給出些提示。再比如在白板上實現算法的時候,如果代碼不是顯而易見的,最好能一邊寫一邊簡單解釋一下,讓面試官跟上你的思路。(上面這段其實不只限于英文面試)
當然,雖說不用太擔心,但基本的英文水平(包括一些專業術語)還是需要的,比如如果你連二叉樹、排序都不知道對應的英文單詞怎么說,那還是不行的。我覺得如果能在英文字幕的幫助下看得懂MIT算法導論的講課視頻的大部分內容,這種程度的話英文和算法應該就都沒有問題了,哈哈。
Q: 面試的流程是怎樣的?
好像每個人都略有不同,只說我自己的。發簡歷過去之后,先被要求在interviewstreet.com上限時做一道題(很水,就是看看你會不會寫代碼的程度。難度遠低于那網站上的題目的平均水平,不要被那網站公開出來的題目嚇到了)通過之后就是預約時間進行電話面試,電話面試的形式是面試官打電話過來,然后一邊講電話一邊在一個在線白板網站(collabedit.com)上寫代碼,雙方都可以實時看到,約45分鐘到1小時。我只電面了一輪,據后來了解,也有人電面了兩輪或三輪的。然后被叫到香港去現場面試(三輪,每輪45分鐘左右),前兩輪是純技術面試,最后一輪一半技術,一半應是所謂behavioral question。然后就是等消息了。
關于面試地點,我們那批是在香港。之前有大神是直接去美國面的,之后據說又有一批是在北京面的。
Q: fb這次招了多少中國人?
我不知道。我們去香港的那批估計有二十人左右,有應屆生,也有兩三年工作經驗的,我不知道多大比例拿到offer。我知道的ACMer里面大約有五六個。
Q: 面試時寫代碼的語言是?
A: 無限制。不過我覺得最好是用比較主流的語言,比如C++/Java/Python之類。我不確定用偽代碼行不行。
Q: 面試題什么類型?難度如何?
A: 基本全是算法/數據結構題,但我不太確定這是普遍情況,還是因為我的簡歷上強調自己算法還行,從而導致他們有針對性地問。難度的話,不能算容易,但也不算太難,至少比Google中國的題簡單。(ps. 貌似據說Google中國的題也比Google總部難-_-)代碼量不會很大,不超過二三十行的樣子。
另外需要說的一點是,這些面試官給的感覺是真的“懂”自己出的題的,和他們能夠進行有效率的交流。舉個例子,有一道面試題我有個地方用了帶點trick的寫法,面試官指著代碼剛要問,我也剛要進一步解釋,他忽然自己看明白了”Oh I see. Good.”,于是就繼續后面了。另外一場面試時,我有個不太重要的地方粗心寫漏了些東西,面試官說“There is a little mistake…”又馬上說“but never mind.” 我不顧他說了好幾次”never mind”,又仔細盯了半天才終于發現了錯誤,確實是并不影響大局的,他可以看出我是找到了正確的解法的,并不在意這種明顯是手誤的bug。反觀國內有些公司,有的面試官給人的感覺是臨時從網上找了幾道題目,自己也對某些細節不明所以,于是雙方都稀里糊涂,互相跟不上對方的思路。
原文轉自:http://www.anti-gravitydesign.com