面試體驗:Facebook 篇

 

 

 

 

Google、Microsoft 和 Yahoo 都是去年的事情了,接下來講說今年的吧。其實我在豌豆莢很是爽,跟身邊的設計師和工程師合做都很愉快,因此惟一可以誘惑我去面試的就只有 Facebook 了。最初接受 Facebook 面試邀請的緣由並非追求它的 offer,而是我就想了解一下 Facebook 是怎麼面試的,有什麼是值得豌豆莢招聘借鑑的。前端

過去在百度作面試官,只是面試而已,公司招不招獲得人我沒什麼感受。我以爲公司招不到人就招不到人咯,咱們不必擴張得那麼快啊,先專一於作好手頭上的項目再說嘛。豌豆莢其實不是着急要招前端工程師,咱們仍是堅持只招一流人才,只不過長期發不出 offer 仍是讓人感受招聘有問題——咱們浪費了大量的資源在面試上,發不出 offer 意味着回報率低,所以咱們總要想辦法研究如何提升回報率。linux

回到正題上來,我選擇參加 Facebook 的面試,就是想看看他們是如何選拔人才的,他們所使用的題目是如何設計考點的,是否是設計得比咱們的要好。所以,在收到 Facebook HR 的郵件後,我回信說願意聊一下,而後跟他約了一個時間進行電話溝通。由於 Facebook 總部在美國西岸,因此以後的電話溝通和電話面試都約在了早上 8:00。儘管這致使他們要晚一個小時下班(按朝九晚五算的話),不過 HR 也很通情達理地接受了。(我猜大多數工程師都不會採用朝九晚五的正常做息時間吧。)面試

HR 在電話裏先簡單介紹了一下 Facebook 如今的狀況,而後說明這是 Menlo Park 總部的職位,讓我確認若是順利應聘的話我會願意到美國去。接着 HR 問了我兩個很基礎的 CSS 問題:display block 和 inline 有什麼區別?position 有哪些取值?我以爲 HR 可以問這樣的問題對於工程師來講是很爽的事情,由於純粹的小白就被過濾掉了,也不須要浪費工程師的時間來面試。(我在以前的文章中說到過,在中國大多數面試前端工程師職位的候選人沒法回答這兩個如此基礎的問題,不知道在美國是否也如此。)隨後 HR 問我還有沒有什麼不明白的,或者關於 Facebook 想要了解的,我說沒有了。HR 的最後一個問題是「你爲何選擇 Facebook?」我當時內心想的是,「是你主動聯繫個人,我沒想過這個問題哦」。因而我跟他說,「我暫時沒有答案。我如今在豌豆莢工做很開心,不過我也樂意多地瞭解 Facebook。」算法

電話溝通後,HR 給我發了兩道 puzzle,選作其中一道就能夠了。兩道題目都是前端相關的,其中一道須要設計一個簡單的算法,另外一道則須要支持移動設備觸擊交互。這種解 puzzle 的面試方法我不是第一次遇到了,4 年前申請 Google 的 Web Developer 職位時也遇到過相似的 exercise,只不過題目只有一道,沒有選擇的餘地而已。相比起 4 年前 Google 的 exercise 而言,這兩道 puzzle 的考點更加 update。(4 年前的 exercise 還須要考你如何作圓角和背景漸變,如今都是用 CSS 3 搞掂的了。)編程

我花了一週的時間完成了一個 puzzle,搞掂了算法設計和界面實現,連 unit test 也都寫了,而後提交給 HR。HR 在 review 的結果出來後,把我介紹給另外一位 HR,說她會幫我安排接下來的面試。第一輪面試感受有點像 Google 的,主要由 3 道題目構成。題目的考點設計得很好,基礎知識能被覆蓋到,經常使用技法也須要用到,但又絕對不須要某一方面很高深的知識。(設計得很差的題目每每是依賴於面試官很熟悉的一個難點,若是你不知道這個難點,或者你的理解跟面試官不同,你就完蛋了。)前端工程師

第一輪面試的最終通話時間爲 90 分鐘,我猜這意味着我作得不夠好,由於若是以 Google 的標準來衡量的話,45 分鐘解 3 道題纔算及格。通過後面幾輪面試我才發現,原來 Facebook 面試通常是要求 60 分鐘解 2 道題。第一輪的面試官之因此給我加了 1 道題,估計是由於第 2 道題我作得很差,因此他至關於換了一道題給我作。面試結束,面試官又問了以前 HR 問過的問題,「你爲何選擇 Facebook?」我仍是那樣子回答。學習

面試一個星期後,HR 郵件跟我說,我經過了上一輪面試,接着要安排下一輪面試。第二輪面試感受跟第一輪差很少,包括長度和難度。只不過此次就是 60 分鐘 2 道題,估計是由於我 2 道題都解出來了吧。面試結束時面試官又問那個問題了,我決定反過來問他是否喜歡 Facebook 的工做。他說 Facebook 的工做很好,周圍的人都很聰明,可以從他們身上學到東西,同時公司提供一天三餐,福利好到以爲本身被寵壞了。我其實不是很在意福利的部分(豌豆莢又不是沒有每日三餐),我更在意的是人是否聰明,合做的過程當中他們是否總能教會你一些你過去不知道的事情(這是我如今在豌豆莢擁有但離開就可能失去的部分)。隨後我跟他說,我在意的是可否跟聰明人一塊兒工做,聽他這樣說感受 Facebook 不錯。優化

又過了一個星期,HR 郵件跟我說,須要安排我到美國面試。我一開始對這件事也不特別在乎,以爲那你就慢慢安排吧,有人報銷機票讓我到灣區旅行就是好事情。在隨後的電話溝通裏面 HR 跟我說,由於今年的 H–1B 簽證配額已經花出去一半了,若是按照這個速度估算的話可能到 5 月底簽證配額就會花完,因此但願我儘快到美國面試。(若是簽證配額花完了,有沒有 offer 都沒意義了。明年 4 月才能申請明年的配額,申請成功也要等明年 10 月簽證才生效,就算公司很想要你,也只能先安排你在海外辦公室工做一年。)因而我就連忙辦簽證 5 月下旬飛往美國參加面試,所以也就有了我以前那篇《三藩市灣區一週遊》。設計

4 輪面試安排在一天內完成,Facebook 委託旅行社安排好往返機票和兩晚住宿,隨後我就出發了。由於懼怕遲到,又由於美國郊區的公交又是一小時一班的,因此面試當天我早早就起牀了,結果發現酒店門口是長期有出租車的,打車到 Facebook 後等了一個多小時纔到本來約定的面試時間。HR 在見到我後先把我帶到 micro-kitchen 讓我拿吃的喝的,而且問我那麼早來是否是沒有吃早餐。我說確實沒有,而後她就讓我拿一些食品作早餐。(其實我應該在酒店叫早餐的,由於 Facebook 容許天天報銷最多 $75 的餐飲開支。)隨後她把我帶到用做面試的會議室,給時間我解決早餐,而且跟我簡單說明了當天的安排:早上 2 輪面試,結束後她會來帶我去 Facebook 餐廳吃飯,而後下午還有 2 輪面試。協程

整體上來講,4 輪面試的形式仍是同樣的,每輪都是 60 分鐘解 2 道題目。全部題目都是前端相關的,HTML + CSS + JS 都會考到,不過不涉及 HTTP。最後一輪的面試官有點特別,他先問了一個很古怪的 CSS 問題,而後又跟我討論了一個跟前端不相關的編程問題。之因此說他那個 CSS 問題古怪,是由於在現實中你們都不會那樣寫 CSS,但他寫出來了問你會顯示成怎樣,不是很是熟悉 CSS 標準細節的人又很難徹底答對(我也有答錯了的地方)。至於第二道題,他說他是突發性想出來的,他本身也不知道最優解是什麼,就是想跟我討論一下可以如何優化,我就跟他討論了幾種可能的優化方式。全部他又說若是把常數 k 改成能夠變成任意大的 n 怎麼辦?我就說 n 的問題可以分解爲 n/2 的問題,所以可以經過二分法來優化。

一般狀況下,若是因爲面試而進入一家公司的話,HR 所作的只是把你從 A 地帶到 B 地,保證你順利完成面試。若是是朋友帶你參觀公司則會很不同,他會帶你去看有特點的東西,而且告訴你這個好玩那個有意思。Facebook 的 HR 給人的感受更像是後者,她向我介紹 Facebook 牆上的塗鴉,帶我去天橋上看 Hacker Square 全貌,而且告訴我每次 hackathon 開始時你們就會彙集到 Hacker Square 上來。除了 HR 之外,也有一些面試官會說起他們喜歡的 Facebook 特點。這讓我以爲 Facebook 裏面仍是有很多員工挺喜歡這家公司的。

面試結束後,HR 跟我聊了一下,告訴我若是有 offer 的話接下來會須要什麼。根據以前 Google 面試的經驗,我猜 Facebook 會不會也要我提交一大堆的材料,HR 說只要提交申請簽證所需的學位證就能夠了。以後 HR 讓前臺幫我叫出租車,在等待的過程當中前臺還很好人地問我是否須要拿喝的,須要的話能夠在大堂冰櫃裏面拿。

隨後的週末是美國的亡兵記念日,週六到週一連續放假三天,我則利用這個長週末去參加灣區的各類好友聚會。週一中午 HR 打電話來講要發 offer 了,待細節肯定後下午再打電話給我告訴我具體的數字有多少。我當時就在想,難道 Facebook 的面試官和 HR 週末都工做?這個效率很高呀。只要面試官稍微拖一下,週五的面試就必須等到下週纔能有結果。並且肯定 offer 細節估計也要通過幾我的審批吧,節假日發 offer 就意味着你們都要在節假日處理工做了。

整體上來講,Facebook 面試過程當中對候選人的關懷作得很好,效率也不錯。讓我「大開眼界」的是面試題,原來真正好的面試題並不在於它有多難,而在於它有多簡單,簡單到熟悉這個領域的人一會兒就明白到你在說什麼以及想問什麼。可以進入 Facebook 的人應該都以爲面試不難,至少跟中國的面試對比起來如此,那是由於 Facebook 把以爲面試有點難的人都過濾掉了,而中國那些很難的面試反而沒什麼區分度。另外順便給你們推薦一個交流學習羣:812--855--908

《面試體驗》系列文章到此就結束了。接下來有時間的話或許我會寫寫跟應聘美國職位有關的事情,例如 H–1B 的週期和配額是怎麼樣的,選擇什麼時間面試對你比較有利,拿到 offer 以後該如何爲新的生活作準備等等。我知道對於不少在中國讀書或工做的人來講,直接應聘美國職位看起來門檻很高,那是由於你身邊不多人這樣作因此你不瞭解而已。只要你願意花時間去了解清楚,你會發現這件事其實沒有你想象中那麼難。若是你對這個話題感興趣的話,能夠訂閱我,或者留言提問。

寫完以後以爲小編以爲本身作的不對,有點失去了誠信,可是之後會更改,也但願獲得你們的支持和原諒。

轉發點贊分享,沒有看夠的能夠私信關鍵詞linux分享更多,C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒體,CDN,P2P,K8S,Docker,TCP/IP,協程,DPDK技術,面試技巧方面的資料技術討論。

相關文章
相關標籤/搜索