前言:本文作者 RoBa ,據其個人部落格中介紹是在騰訊北京搜尋部門做後臺開發工作。他最近拿到 Facebook 入職 Offer 後,不少讀者對此事有些提問。本文是 Roba 做的問題答覆總結。
說實話,其實我的眼界從來很狹窄,以前想的是,如果能在天朝帝都紮下腳跟,過上老婆孩子熱炕頭的日子,對我來說已很滿足。所以之前也從未對出國讀書或工作有過準備,下文所述很多內容都是我在最近的一小段時間裡才接觸到的,而且現在離正式入職還早,對於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: 面試的流程是怎樣的?
A: 好像每個人都略有不同,只說我自己的。發簡歷過去之後,先被要求在interviewstreet.com上限時做一道題(很水,就是看看你會不會寫程式碼的程度。難度遠低於那網站上的題目的平均水平,不要被那網站公開出來的題目嚇到了)通過之後就是預約時間進行電話面試,電話面試的形式是面試官打電話過來,然後一邊講電話一邊在一個線上白板網站(collabedit.com)上寫程式碼,雙方都可以實時看到,約45分鐘到1小時。我只電面了一輪,據後來瞭解,也有人電面了兩輪或三輪的。然後被叫到香港去現場面試(三輪,每輪45分鐘左右),前兩輪是純技術面試,最後一輪一半技術,一半應是所謂behavioral question。然後就是等訊息了。
關於面試地點,我們那批是在香港。之前有大神是直接去美國面的,之後據說又有一批是在北京面的。
Q: Facebook 這次招了多少中國人?
A: 我不知道。我們去香港的那批估計有二十人左右,有應屆生,也有兩三年工作經驗的,我不知道多大比例拿到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。反觀國內有些公司,有的面試官給人的感覺是臨時從網上找了幾道題目,自己也對某些細節不明所以,於是雙方都稀裡糊塗,互相跟不上對方的思路。
我感覺如果fb繼續在海外招人,他們應該很快會發現“啊……原來中國有這麼多神牛啊……之前招的那個叫roba的真是弱的像渣一樣啊……裁掉算了吧……” 所以還請各位神牛輕虐……orz……
Q: 去了之後主要做什麼方向?
A: 只知道是Software Engineer,具體未知。他們的說法是在剛去的幾周內有機會在各個方向都體驗一下,然後自己選擇。我覺得這應該只是理想情況,估計應該是個雙向選擇吧。
Q: 工資?
A: 具體數字不能說,呵呵。可以參考glassdoor.com上給出的統計,還是比較接近實際情況的。
(伯樂線上補充:這裡有幾篇關於美國 IT 公司薪資的資訊,均是根據 GlassDoor 的資料。《美國IT公司薪酬大起底》、《去Facebook做實習生吧,月薪6000美元》《矽谷企業軟體開發實習生月薪排名》。)
Q: 什麼時候過去?聽說有綠卡?
A: 只是工作簽證(H1B)而已,綠卡什麼的是很久遠以後的事了,fb哪有那麼大能量直接發綠卡的。如果這期間我被公司裁掉了又沒找到下家,就得直接回來了。
關於H1B簽證的申請和發放時間是值得一說的,每年H1B的開始申請時間是4月1日,簽證發放時間是10月1日,所以即使拿到了名額,從中國過去工作的話也只能在10月份以後。近年的名額數目是每年65000個普通名額+20000個高學歷名額 (僅給在美國大學取得碩士以上學位的留學生),用完為止。以我自己為例,收到和接受offer是在今年5月初,公司請的律師把申請遞交到美國移民局是在5月中旬,遞交上去就算佔住坑了,當時65000個名額裡我記得是已經用了一半多一些。這次的名額全部被用完是在6月中旬。我知道的幾個應屆生大神,因為學校的畢業證差不多也是那時候才剛發下來,所以就搞得相當危險。H1B名額的申請速度每年波動很大,以前甚至出現過在4月一開始就被佔滿的情況,這次的消耗速度就比去年快得多,有牛人預測明年的速度可能會更快,所以如果想從國內直接找美國工作的話,要早做準備。比如現在因為今年h1b已用完,聽說facebook已經暫停了從海外招人[Edit: 我不確定,可能不實](呃……我不清楚美國的公司如果有意向從海外招人,一般每年是從什麼時候開始……我一開始收到獵頭的信好像是在3月份……總之要記住4月和10月這兩個時間點來安排計劃,呵呵)
上面這一段是我現炒現賣,詳請大家可以去自行搜尋。如有錯誤請高人指正。
Q: 妹紙怎麼辦?
A: H1B簽證是可以帶家屬的(當然得先領了結婚證),不過家屬過去的話是H4身份,法律上規定不能找有收入的工作。要想工作的話,一種是也直接找到一個可以幫她申請H1B的公司,另一種辦法是先讀個書,這樣再找工作會容易些。
ps. 具體到我自己的妹紙,她的事業心還是比較強的,決不甘心在那邊當主婦。目前正在準備英語考試中,打算看看能不能申請到一個附近學校的master讀。這次facebook的面試,從投簡歷,準備面試,到後來去往香港過程中的諸多波折(沒有且來不及辦港澳通行證,買了到泰國的機票想裝作過境香港,出發前一天發現泰國雖然落地籤但是中國邊檢不放,又退了換成到印尼的,在機場被工作人員攔下說必須有往返票,又臨時改簽+買回程票),每次我覺得太折騰想放棄的時候,都是她一邊忙前忙後地查票打電話上網搜尋,一邊鼓勵我,才終於有了現在的結果,我對此非常的欣賞與感激。
Q: 需要託福GRE成績麼?
H1B和H4都不需要
Q: 能否推薦一些對面試有用的資源?
A: 如果時間充裕的話,看書我還是推薦《演算法導論》……只為準備面試的話,有一本叫Career cup Top 150題之類名字的書可以看一下(可以搜到電子版,這裡就不提供連結了),類似的針對程式設計師面試的英文書還有另外幾本,比那個《程式設計師面試寶典》靠譜些。
網站資源的話,上面提到的interviewstreet.com, glassdoor.com都不錯,另外careercup.com,leetcode.com都是聽別人提起比較多的,上面有各種各樣的演算法題目(我自己都沒怎麼上過,不知道哪個更好些)。當然對於ACMer來說,各個OJ都是很好的資源,對於非ACMer來說,如果想接觸一下競賽題的話,我推薦topcoder.com裡面的Algorithm競賽裡Div2難度的題目。Topcoder的題目程式碼量通常不會太大,更接近面試時的情況,而且多數題目都會在賽後有解答,而且可以看到別人的提交,所以也是學習的好機會。
論壇的話,我上的最多的是水木社群的演算法版(newsmth.net),另外mitbbs.com上關於在美國簽證、找工作、移民等等的討論都很多。前不久發現一個叫”一畝三分地(www.1point3acres.com/bbs)的論壇看上去也很贊。
突然發現寫了這麼多了,先到此為止。