2014年10月,作者有幸通過(guò)了Facebook的電面,參加了在Palo Alto的on-site面試,并最終成功拿到了offer。期間作者有很多經(jīng)歷的東西想要記錄下來(lái),以做備忘。同時(shí)在當(dāng)時(shí)準(zhǔn)備的時(shí)候,發(fā)現(xiàn)國(guó)內(nèi)對(duì)于Facebook面試經(jīng)歷的資料和分享時(shí)少之又少。因此,也想以記錄的方式和大家分享經(jīng)驗(yàn),讓更多的華人成為Facebook的一員!整個(gè)記錄會(huì)分為三個(gè)大部分:面試流程,面試題集錦,入職流程和生活準(zhǔn)備。
寫在前面
由于我申請(qǐng)的職位是MySQL Database Administrator(MySQL數(shù)據(jù)庫(kù)管理員),相對(duì)比較冷門。為了使得讀者受眾面更廣,我盡可能的挑選面試中對(duì)于程序員和其他IT崗位能普遍試用的經(jīng)驗(yàn)來(lái)作重點(diǎn)描述。如果你受不了博主的流水賬敘述形式,可以直接跳到最后一節(jié),獲取簡(jiǎn)要通關(guān)秘籍。
基礎(chǔ)要求
我們來(lái)看看要成為一個(gè)Facebook的潛在員工候選人,需要有哪些硬條件。要求的遠(yuǎn)比你想到的要簡(jiǎn)單很多:
學(xué)歷:由于拿到offer后,辦理工作簽證時(shí)出示本科成績(jī)單。所以本科學(xué)歷是最低要求的。
英語(yǔ):英語(yǔ)沒有硬性要求,不需要雅思托福成績(jī)。個(gè)人覺得能無(wú)障礙的聽懂youtube上的技術(shù)分享,會(huì)一些基本日常語(yǔ)法加上相關(guān)專業(yè)詞匯,就能比較順利的完成電面和人肉面。
專業(yè)經(jīng)驗(yàn):沒有硬性的相關(guān)領(lǐng)域證書要求,當(dāng)然如果你沒有內(nèi)推渠道,有個(gè)把證可以增加通過(guò)簡(jiǎn)歷過(guò)濾器脫引而出的機(jī)會(huì)。
技術(shù)經(jīng)驗(yàn):是否有能力維護(hù)設(shè)計(jì)Facebook服務(wù)器量級(jí)的系統(tǒng)是一個(gè)重要考察點(diǎn)。當(dāng)然不要求你一定要經(jīng)歷過(guò)這么大的量級(jí)經(jīng)驗(yàn)(畢竟這樣的公司不多)。
家庭:“一人Offer,全家受益”是我對(duì)Facebook Relocation的總結(jié)。拿到Offer后的所有環(huán)節(jié),Facebook都會(huì)把你的家庭(配偶和子女)作為一個(gè)整體考慮進(jìn)去。所以只要家人支持,家庭不會(huì)成為入職的羈絆。
國(guó)外生活經(jīng)歷:博主在去Facebook前,除了一次自助蜜月游,從來(lái)沒有出過(guò)國(guó)。也證明這方面沒有硬性要求。個(gè)人覺得生活就像學(xué)游泳,扔進(jìn)水里了,撲騰幾下怎么樣都會(huì)了。
會(huì)翻墻 呵呵。。。
看了那么多,是不是覺得自己也是個(gè)合格的FB準(zhǔn)候選人呢?火速進(jìn)入網(wǎng)申階段。
第0階段:網(wǎng)申
因?yàn)槲冶緛?lái)就安排在2014年9月底的時(shí)候去一次舊金山。所以一開始是報(bào)著試試看想法,并帶著萬(wàn)一要on-site面試,我還可以省個(gè)機(jī)票錢的心態(tài),通過(guò)Linkedin找了幾家正在招募MySQL DBA職位的硅谷公司。從中挑選了幾個(gè)巨頭投了簡(jiǎn)歷,包括:Google、EA、Apple、Linkedin、Twitter、Facebook(后簡(jiǎn)稱:FB)。悲劇的是,只有FB通過(guò)了簡(jiǎn)歷篩選,并得到了郵件回復(fù)。
之后從已經(jīng)在這些公司工作過(guò)的朋友那邊了解到,海投簡(jiǎn)歷確實(shí)是一個(gè)效率比較低下的方式。很有可能因?yàn)楹?jiǎn)歷關(guān)鍵字匹配不成功就直接失去了后續(xù)面試機(jī)會(huì)。所以,如此悲催的首輪通過(guò)率也不足為奇了。他們強(qiáng)烈建議如果想從硅谷公司的簡(jiǎn)歷篩選中脫穎而出,還是盡可能找公司員工做內(nèi)推。
不過(guò),相較于國(guó)內(nèi)公司,硅谷巨頭做的比較好的一點(diǎn)就是無(wú)論你簡(jiǎn)歷通過(guò)與否,都會(huì)在兩天內(nèi)給到郵件結(jié)果。所以,網(wǎng)投時(shí)留得郵箱建議是能夠每天查收一次的。下面是我眾多悲?。ū痪埽┬胖械囊环猓?/span>
Thank you for your interest in a role at Twitter. We have reviewed your experience in regards to this open position, and unfortunately do not see a strong match for you at this time. We will also keep your resume on file should a future match become available. We realize it is a time commitment to engage any company in the application process and we sincerely appreciate your efforts.
關(guān)于職位的具體信息,各個(gè)巨頭都有自己的招聘主頁(yè)。也可以通過(guò)Linkedin搜索。FB家的職位具體信息可以通過(guò):https://www.facebook.com/careers?_rdr查找。什么?博主!這個(gè)鏈接打不開??!好吧,翻墻對(duì)于大陸應(yīng)聘者是一道“面試題”。
此外,走整個(gè)申請(qǐng)面試流程前,確保自己已經(jīng)準(zhǔn)備好了。因?yàn)椋?/span>FB的效率非常高,從網(wǎng)申到第一次電面最短會(huì)只有兩三天的時(shí)間。一旦闖關(guān)失敗,距離下一次申請(qǐng)需要有至少半年的冷卻時(shí)間。
第1階段:電面
在和HR互通幾封郵件后我們商定了電話面試時(shí)間。由于時(shí)差問(wèn)題,面試定在了北京時(shí)間凌晨1點(diǎn)。Facebook的工作時(shí)間是當(dāng)?shù)貢r(shí)間早上9點(diǎn)到晚上6點(diǎn),對(duì)應(yīng)的北京時(shí)間是凌晨1點(diǎn)到第二天早上10點(diǎn),如果是美國(guó)夏令時(shí)的話,那么時(shí)差從16個(gè)小時(shí)減少到15個(gè)小時(shí)。所以對(duì)于大陸應(yīng)聘者來(lái)說(shuō)面試時(shí)間有兩個(gè)選擇:一個(gè)是熬夜到凌晨,一個(gè)是早起面試。
博主由于當(dāng)時(shí)還是在前公司任職,早上10點(diǎn)在公司面試并不是一個(gè)很穩(wěn)妥的選擇。因此幾次電面時(shí)間都是定的凌晨在家面試。
如果進(jìn)行順利的話總共會(huì)有3-4次電面(我進(jìn)行了3次,具體數(shù)量按照崗位要求和面試質(zhì)量決定)。電面采用直接淘汰制。電面結(jié)果直接決定了你能夠進(jìn)入下一輪(不是多次面試成績(jī)?nèi)∑骄K?,?duì)于每一輪電面都要格外的重視。每次電面時(shí)間都控制在45鐘內(nèi),技術(shù)電面無(wú)論題目是否完成,都會(huì)用足45分鐘。
電面方式可選電話(由面試官座機(jī)打過(guò)來(lái))或者skype。博主建議使用手機(jī),Skype通話質(zhì)量不太穩(wěn)定。我的電面過(guò)程中,兩種都用過(guò)。相比之下電話的體驗(yàn)更好些,因?yàn)榭梢园央娫拑?nèi)容錄下來(lái)之后做回顧。每次電面前,我都會(huì)提前半小時(shí)呆在一個(gè)安靜的房間,做一些簡(jiǎn)單的面經(jīng)操練進(jìn)行熱身。然后確保電話暢通,耳機(jī)音量OK,Skype在線。
一般來(lái)說(shuō)面試官的來(lái)電時(shí)間非常準(zhǔn)時(shí),我的三次電面來(lái)電時(shí)間都和約定時(shí)間誤差不超過(guò)5分鐘!這也是FB嚴(yán)謹(jǐn)?shù)恼衅革L(fēng)格的一部分。電面全程使用英語(yǔ)。每次電面的一開始,面試官會(huì)有簡(jiǎn)短的自我介紹,并對(duì)本次電話面試的時(shí)間和內(nèi)容安排做一個(gè)約有5分鐘的詳細(xì)介紹。這部分是你適應(yīng)面試官口音的一個(gè)絕佳環(huán)節(jié)。我的運(yùn)氣較好所有電面都是英語(yǔ)的native speaker。如果你對(duì)于印度口音承受力較差的話建議先在youtube上搜一些印度哥們的技術(shù)分享視頻研究下。
以上就是每次電面共性的內(nèi)容,下面按照電面輪次,逐一詳細(xì)介紹:
注:本文只介紹流程,所有技術(shù)面的題目會(huì)在后續(xù)文章中分享
1.1 第一次電面
第一次電面全程是Recruiter(即國(guó)內(nèi)常說(shuō)的HR)。整個(gè)招聘流程中從電面到入職,除了技術(shù)考官外,他是你唯一的聯(lián)系接口人。所以給他留下一個(gè)好印象當(dāng)然是成功的第一步。簡(jiǎn)單的流程介紹后,就要求我進(jìn)行一個(gè)自我介紹。然后會(huì)根據(jù)幾個(gè)和應(yīng)聘職位相關(guān)的工作經(jīng)歷提幾個(gè)具體的非技術(shù)問(wèn)題。之后會(huì)進(jìn)行客觀基礎(chǔ)題的問(wèn)答。所謂客觀基礎(chǔ)題就是有唯一標(biāo)準(zhǔn)答案的問(wèn)答題。
例如:Linux上HTTP上的端口是多少? MySQL和Linux基礎(chǔ)題各20題。答題期間,recruiter不會(huì)告訴你正確與否。因此,在答題結(jié)束前是可以修正之前的答案的。我就這么修正過(guò)一次。所有40題答完之后,面試官會(huì)告知答錯(cuò)了幾題。我當(dāng)時(shí)是錯(cuò)了一題,面試官暗示成績(jī)應(yīng)該足以讓我進(jìn)入下一輪面試(具體的及格線我不清楚)。
答完題以后就是,Q&A環(huán)節(jié)。問(wèn)了兩個(gè)事先準(zhǔn)備的套路問(wèn)題,一個(gè)關(guān)于職位本身,一個(gè)關(guān)于公司文化。最后,互相感謝,等待面試官先掛斷電話。
1.2 第二次電面
第二次電面是coding技術(shù)面,由將來(lái)的team內(nèi)部的員工全程主持。coding技術(shù)面的形式是,45分鐘內(nèi),面試官會(huì)給出4道技術(shù)題,讓面試者在 Stypi上進(jìn)行答題。
Stypi是一個(gè)在線協(xié)同代碼編輯網(wǎng)站,即你的實(shí)時(shí)代碼編寫和修改都會(huì)在面試官那邊展現(xiàn)出來(lái)(可以理解是網(wǎng)頁(yè)版的遠(yuǎn)程桌面)。每道題都會(huì)通過(guò)Stypi貼在編輯區(qū)域內(nèi),然后答題者在編輯區(qū)域內(nèi)當(dāng)場(chǎng)進(jìn)行coding。每次出完題后,如果覺得題目表述不清楚或者覺得模棱兩可的地方可以及時(shí)詢問(wèn)面試官。每一題答完后,面試官如果決定有明顯的bug或者效率比較低的地方會(huì)提出,讓答題者進(jìn)行修改,或者口述改進(jìn)方案(具體根據(jù)時(shí)間進(jìn)度而定)。
下面是一個(gè)Stypi界面的截圖:
1.3 第三次電面
由于應(yīng)聘的是MySQL Database Administrator,電面也必然免不了進(jìn)行MySQL技術(shù)面試。第三面就是另一個(gè)來(lái)自將來(lái)同事的面試。該輪面試是問(wèn)答形式,因此也就沒有用到電腦。題目由淺入深,考察的都是MySQL的一些基礎(chǔ)知識(shí)。同時(shí)也會(huì)根據(jù)簡(jiǎn)歷上的自我介紹和項(xiàng)目經(jīng)驗(yàn)進(jìn)行深入的提問(wèn)。
1.4 第四次電面
本來(lái)在第一次電面中Recruiter提到會(huì)有一共會(huì)有四輪電面,且第四輪電面是故障排查演練。也許是進(jìn)度原因(因?yàn)殡x我出發(fā)去舊金山只有一周了),又也許是之前的考察已經(jīng)達(dá)到了目的。Recruiter郵件告知我,接下來(lái)就直接去Palo Alto總部面試了。Bravo!
第2階段 On-site面試
2.0 面試前夕
確認(rèn)有on-site面試資格后,面試官會(huì)確認(rèn)具體面試時(shí)間。同時(shí),讓候選人辦理入境簽證。由于我因?yàn)橹暗某鰢?guó)計(jì)劃,已經(jīng)有了B1/B2的visa所以就略過(guò)了這一步。一般來(lái)說(shuō)美國(guó)簽證的周期在兩周以上,包括材料準(zhǔn)備,提交,大使館面簽,護(hù)照快遞等。按照之后的經(jīng)驗(yàn),所有這些流程都會(huì)有FB指定的代理商BAL跟蹤協(xié)助。所以,整個(gè)流程會(huì)非常的省心,非常的人性化!
由于我的個(gè)人安排,機(jī)票和住宿是自己搞定的。實(shí)際上根據(jù)FB的政策,所有面試的來(lái)回機(jī)票費(fèi)用和住宿費(fèi)用都是全包的。按照之后的經(jīng)驗(yàn),機(jī)票會(huì)由FB的指定代理CWT代為下單,商務(wù)艙標(biāo)準(zhǔn)。酒店是五星級(jí),時(shí)間一般最長(zhǎng)三天,即:面試前夜,面試當(dāng)天和面試后的調(diào)整日。這兩部分的錢都是FB支付。
此外,FB允許報(bào)銷面試期間發(fā)生的生活費(fèi)用,每天150美元。包括:來(lái)回酒店機(jī)場(chǎng)的出租票,伙食費(fèi)和基本生活用品。這部分的費(fèi)用在面試結(jié)束后一個(gè)月內(nèi),通過(guò)系統(tǒng)上傳發(fā)票(Receipt),最后通過(guò)銀行轉(zhuǎn)賬的方式打給面試者。所以最好能提前擁有一張支持國(guó)際匯款(有SWIFT CODE)的銀行的銀行卡。
2.1 面試當(dāng)天
面試約定在Hacker Way Site早上9:45進(jìn)行。搭乘賓館提供的直達(dá)車,早早的到了FB總部。在前臺(tái)進(jìn)行訪客登記,等了約10分鐘我的接口Recruiter就來(lái)接我了。由于來(lái)的較早,他先帶我大致參觀了下園區(qū),當(dāng)然免不了show一下 FB引以為傲的十幾個(gè)餐廳。隨后,在某個(gè)休息室匆匆的抓了杯咖啡就到了面試室。所謂的面試室就是預(yù)先book了一天的會(huì)議室,候選人整個(gè)一天的面試都會(huì)在這里進(jìn)行。
on-site面試總共是5輪,每輪嚴(yán)格控制在45分鐘(答不完就結(jié)束,有空余則繼續(xù)聊),每輪一位面試官。按照我當(dāng)時(shí)的情況和之前的面經(jīng)來(lái)看5輪的分工都比較明確,分別是:coding、實(shí)戰(zhàn)經(jīng)驗(yàn)、未來(lái)的manager、未來(lái)的teamate、未來(lái)的兄弟team組員。由于今天我們主要講流程,在這里我就大致過(guò)一下每個(gè)人的面試題傾向。具體的面試題內(nèi)容會(huì)在后續(xù)博文中分享。
coding部分:和之前的電面題類型大致一致,只是形式變成了FB著名的white-board coding,即在一塊大白板上寫代碼。也就是說(shuō):沒有高亮!沒有自動(dòng)補(bǔ)全!重度依賴IDE的童鞋在沒有準(zhǔn)備的情況可能會(huì)有些吃緊。
實(shí)戰(zhàn)經(jīng)驗(yàn)部分:由于我是面試MYSQL DBA方向,因此內(nèi)容和MySQL內(nèi)部原理密切相關(guān)。按照Recruiter的說(shuō)法是:?jiǎn)柕侥悴粫?huì)為止(找到知識(shí)的邊界)。一般來(lái)說(shuō)這一面都會(huì)是技術(shù)專家出面進(jìn)行。形式為問(wèn)答+白板的偽代碼。
未來(lái)manager部分:0.5人文+0.5技術(shù)。主要考察團(tuán)隊(duì)合作能力,以及過(guò)去的一些項(xiàng)目中遇到的困難和如何解決的。如果簡(jiǎn)歷上沒有撒謊,并且實(shí)戰(zhàn)經(jīng)驗(yàn)豐富的話,這一關(guān)會(huì)是非常輕松的。
未來(lái)的teamate:全技術(shù),這部分的深度會(huì)沒有技術(shù)專家面的那么深。個(gè)人猜測(cè)這一關(guān)除了做技術(shù)能力的double check外,也是為了確保候選人能夠很好的與將來(lái)的同事交流。
未來(lái)的兄弟team成員:這部分主要考察周圍知識(shí)面的觸及程度。例如:作為MySQLDBA了解Linux相關(guān)知識(shí)就是必要的;對(duì)于programmer來(lái)說(shuō),了解一些產(chǎn)品設(shè)計(jì)原理,或者前端知識(shí)也是必要的,等等。此外,也考察部分跨團(tuán)隊(duì)交流的能力。
由于是從上午開始的面試,在前兩面結(jié)束后就是一個(gè)一小時(shí)的午休時(shí)間。當(dāng)然,這段時(shí)間就是好好享受FB奢華的飯菜調(diào)整狀態(tài)的時(shí)候啦。Recruiter當(dāng)時(shí)和我說(shuō),每天最煩惱的時(shí)候就是午飯時(shí)刻,因?yàn)椤叭ツ膫€(gè)食堂吃,吃什么”是最困難的問(wèn)題。為此,他們內(nèi)部還有一個(gè)APP,用于展示每個(gè)食堂當(dāng)天提供伙食菜單,ORZ。。。
全天面試完成后,沒有特殊安排的話,Recruiter會(huì)詢問(wèn)你是否想繼續(xù)逛下。否則就陪同離開園區(qū),完成一天的面試執(zhí)行。
2.2 面試后的結(jié)果
大約在面試當(dāng)周的周五都會(huì)有個(gè)候選人PK會(huì),每位面試官會(huì)表明自己的看法。在這個(gè)會(huì)上就會(huì)有一個(gè)候選人是否通過(guò)的結(jié)論。我當(dāng)時(shí)在面試后5天左右就收到了錄用結(jié)果。之后Recruiter就會(huì)起草offer,談工資(具體工資我就不說(shuō)啦,如果想知道一個(gè)大概的業(yè)界標(biāo)準(zhǔn)可以上Glassdoor),郵件確認(rèn),走流程。Offer搞定后,就開始啟動(dòng)relocation項(xiàng)目了。所有的relocation相關(guān)你能夠想到的問(wèn)題,FB都有指定的代理回來(lái)幫助你,實(shí)在是非常的周到!例如:簽證,搬家海運(yùn),臨時(shí)落腳點(diǎn),機(jī)票等。關(guān)于華人relocation和國(guó)外生活的部分,我也會(huì)在日后的博文中陸續(xù)更新。
Tips
如果你將要或準(zhǔn)備參加FB電面/面試的話,下面是一些我個(gè)人感覺比較需要注意的點(diǎn):
沒有做過(guò)的或者不清楚的知識(shí)千萬(wàn)不要寫在簡(jiǎn)歷中,任何信息都有可能在電面中被考察到;
申請(qǐng)時(shí)留的郵箱,保持暢通可用,建議每天查收新郵件;
電面環(huán)境建議安靜,溫度合適,電話信號(hào)良好;
電面準(zhǔn)備一條有麥克的耳機(jī)(普通手機(jī)的通話耳機(jī)就行);
注意保證手機(jī)電量充足;
王淮的《打造Facebook》一定要看,我的大部分面試流程的疑問(wèn)都在書里得到了解答(PS:我真的不是出版社的托!覺得我是托的可以看PDF。PPS:出版社別打我);
coding電面之前,建議先通過(guò)stypi練習(xí)一些簡(jiǎn)單的算法題;
關(guān)于白板題目去哪里找:Leetcode TopCoder, Codeforces, Project Euler 都是不錯(cuò)的選擇;
關(guān)于薪資范圍,可以參考Glassdoor上給出的標(biāo)準(zhǔn)基本上很準(zhǔn);
關(guān)于家庭
收入:以Facebook的待遇,一個(gè)人養(yǎng)活一家三口基本不是問(wèn)題,會(huì)有少許結(jié)余。
簽證:Facebook的指定代理會(huì)幫一家三口搞定一切(但是不包括申請(qǐng)人的家長(zhǎng))