面試體驗:Facebook 篇(轉)

http://www.cnblogs.com/cathsfz/archive/2012/11/05/facebook-interview-experience.html

?

2012-11-05 08:20??????? by??????? Cat Chen,??????? 23266閱讀,??????? 121評論,??????? 收藏,??????? 編輯

Google、Microsoft 和 Yahoo 都是去年的事情了,接下來說說今年的吧。其實我在豌豆莢非常爽,跟身邊的設計師和工程師合作都很愉快,所以唯一能夠誘惑我去面試的就只有 Facebook 了。最初接受 Facebook 面試邀請的原因并不是追求它的 offer,而是我就想了解一下 Facebook 是怎么面試的,有什么是值得豌豆莢招聘借鑒的。

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

回到正題上來,我選擇參加 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 把覺得面試有點難的人都過濾掉了,而中國那些很難的面試反而沒什么區分度。

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

轉載于:https://www.cnblogs.com/kungfupanda/p/3401728.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274833.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274833.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274833.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript 新增兩個原始數據類型

大家好,我是若川。持續組織了6個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列JavaS…

axure低保真原型_如何在Google表格中創建低保真原型

axure低保真原型Google Sheets is a spreadsheet, just like Microsoft Excel.Google表格是一個電子表格,就像Microsoft Excel一樣。 Most people associate it with calculating numbers. But Google Sheets is actually great for organizing your ideas, making…

Weblogic EJB 學習筆記(3)精

編輯實體bean的高級課程 1. 怎樣開發主健類 ejb的主健類主要用做持久存儲和ejb容器中的唯一標識符. 通常主健類的字段直接映射到數據庫中的主健字段. 如果主健只是由單個實體bean字段組成.且其數據類型是基本的java類.如string,則bean作者不必開發自定義的主健類. 只需要在配置…

Lerna 運行流程剖析

大家好,我是若川。持續組織了6個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12 參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列Lerna…

手動創建線程池 效果會更好_創建更好的,可訪問的焦點效果

手動創建線程池 效果會更好Most browsers has their own default, outline style for the :focus psuedo-class.大多數瀏覽器對于:focus psuedo-class具有其默認的輪廓樣式。 Chrome’s default outline styleChrome瀏覽器的默認輪廓樣式 This outline style is cr…

C++builder enum類型

C/C code #pragmaoption push -b-enumTThreadPriority { tpIdle, tpLowest, tpLower, tpNormal, tpHigher, tpHighest, tpTimeCritical }; //這是字節型的.理論上說這是可能的最小整形.可以是1Byte, 2Bytes, 4Bytes...#pragmaoption pop#pragmaoption push -benumTThreadPriori…

chrome瀏覽器世界之窗瀏覽器的收藏夾在哪?

今天心血來潮,用一個查重軟件刪除重復文件,結果把chrome瀏覽器和世界之窗瀏覽器的收藏夾給刪除了,導致我保存的好多網頁都沒有了,在瀏覽器本身和網上都沒有找到這兩個瀏覽器默認的收藏夾在哪個位置,只好用DiskGenius 把…

Vue3究竟好在哪里 等推薦

話不多說,這一次花了幾小時精心為大家挑選了30余篇好文,供大家閱讀學習,提升自己的技術視野以及擴展自己的知識儲備。本文閱讀技巧,先粗看標題,感興趣可以都關注一波,一起共同進步。前端從進階到入院框架原…

eazy ui 復選框單選_UI備忘單:單選按鈕,復選框和其他選擇器

eazy ui 復選框單選重點 (Top highlight)Pick me! Pick me! No, pick me! In today’s cheat sheet we will be looking at selectors and how they differ. Unlike most of my other cheat sheets, this will focus on two components (radio buttons and checkboxes) side by…

過濾詞

<?xml version"1.0" encoding"GB2312"?>-<wordList> <word>,</word> <word>.</word> <word><</word> <word>></word> <word>?</word> <word>/</word> <…

VS2010 VC Project的default Include設置

http://blog.csdn.net/jeffchen/article/details/5491435 VS2010與以往的版本一個最大的不同是&#xff1a;VC Directory設置的位置和以前的版本不一樣。VS2010之前&#xff0c;VC Directory的設置都是在IDE的Tools->Options中設置的&#xff1b;VS2010改為&#xff0c;分別…

初級中級高級_初級職位,(半)高級職位

初級中級高級As a recent hire at my new job, as expected, a lot of things seemed scary and overwhelming. The scariest part was not the unfamiliarity with certain tasks or certain tools, but in communicating with higher-level coworkers, managers and bosses. …

如何寫好技術文章(看張鑫旭老師的直播總結

大家好&#xff0c;我是若川。持續組織了6個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列本文是…

Fact Table and Dimension Table In My Opinion

23轉載于:https://www.cnblogs.com/answeryou/archive/2012/05/10/2495122.html

iOS 流媒體 基本使用 和方法注意

項目里面需要添加視頻方法 我自定義 選用的是 avplayer 沒選擇 MediaPlayer 原因很簡單 , avplayer 會更容易擴展 有篇博客 也很好地說明了 使用avplayer的優越性 blog.csdn.net/think12/article/details/8549438在iOS開發上&#xff0c;如果遇到需要播放影片&#xff0c;…

figma下載_遷移至Figma

figma下載Being an intuitive and user-friendly tool and having the possibility of real-time collaboration are some of the main reasons people choose to use Figma. But the migration process to Figma may sometimes be painful or time-consuming. 人們選擇使用Fig…

metaWeblog 相關的參數

Function: Creates a new post on your blog. tags如果沒會自動那一個 但是categroies如果與已經建立的不同,就會忽略掉的 可以用 string.replace(\n,).split(,) Parameters: Blog ID – For use in multisite installations, typically 0 for single sites Username – WordPr…

TypeScript 常用的新玩法

大家好&#xff0c;我是若川。持續組織了6個月源碼共讀活動&#xff0c;感興趣的可以點此加我微信 ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列上周分…

《Programming in Lua 3》讀書筆記(十二)

日期&#xff1a;2014.7.14 PartⅡ Object-Oriented ProgrammingLua中實現面向對象編程。“如同OOP對象&#xff0c;table擁有狀態&#xff1b;如同OOP對象&#xff0c;table擁有標識符---self&#xff0c;用來與其他變量做區分&#xff0c;而且兩個table擁有同樣的值也是…

(轉)AS3中的stage,this,root的區別

要了解這個問題就要先對flash中的顯示對象結構有一個大概的了解&#xff1a; 第一級&#xff1a;舞臺&#xff1b; 第二級&#xff1a;當前SWF&#xff1b; 第三級&#xff1a;各種容器及可視對象&#xff08;如&#xff1a;文本框&#xff0c;位圖……&#xff09;&#xff1b…