[心得] Facebook面試經驗分享

作者: superalf (外星人)   2018-10-19 17:09:23
九月中收到Facebook HR寄來的信,說在找machine learning tech lead engineer。這個
職位的工作,開發和研究會各佔一半,可以選擇的地點包括Menlo Park總部、Seattle、B
oston、New York、以及倫敦。問我有沒有興趣。大部分人應該都有吧,我也不例外。
約了個時間聊聊,內容大致是問問我目前的工作內容這樣,解釋這個職位的工作性質、以
及整個面試的流程 — 會先在10月安排coding interview,通過後可以參加他們11月在北
京跟新加坡辦的hiring event。他們的工程師會過來,這個就算onsite了。在這hiring e
vent有五場面試,比較特別的是會有system design,例如設計一個推薦系統之類的。
如果都通過了,會在明年四月送H1B流程。但H1B是透過抽籤,沒被抽到就沒有。如果一切
順利,明年10月on-board。我問這些地點的工作內容有何差別?他回確實是有,Menlo Pa
rk進行的專案是最多的,Seattle也很多,但boston跟紐約相對會少一些。而倫敦則是pro
duct oriented跟security,所以在選擇地點時也要把這些因素考慮進去。
結束後收到HR的信告知他需要我先回答幾個問題。印象很深刻的是,一般人編號都是從1
開始,但他第一個問題的編號是0。非常的工程師文化!連HR都那麼nerd XD
之後收到HR的coding interview邀請,隨信附上Facebook的面試攻略,內容非常豐富!其
中包含一份類似cheat sheet之類的懶人包,一份內部員工的信件,還有一個長達兩小時
的私人影片連結。他們明確指出會考的範圍,比對了一下,剛好就是cracking the codin
g interview這本書涵蓋的所有範圍。難易程度介於leetcode的easy到medium之間,但要
求的完成度相當高,必須是workable code,並且是最佳解。要知道,他們所使用的codin
g interview的介面只是個單純的編輯器,執行功能是關掉的。這意思是說,必須能用筆
在紙上寫下來沒有bug的code!在那封內部員工的信中也明確指出最好只使用紙跟筆來準
備面試。
Coding interview總共45分鐘。前五分鐘interviewer會介紹自己的工作,接下來35分鐘
要解1-2道題,最後五分鐘interviewee可以問一兩個關於facebook的問題。中間這35分鐘
不是單純寫code就好,必須先解釋自己的解法再寫code,接著會詢問時間跟空間複雜度。
如果中途網路發生斷線的狀況,面試就必須重新安排。
面試當天是一位做marketplace的工程師來跟我面試。因為目前的工作跟圖論比較相關,
我猜出graph相關題目的機會比較高,所以準備時也比較著重在這方面。還真的給我猜中
。有兩題,第一題很簡單,一分鐘就完成了。接著他請我分析時間跟空間複雜度。解釋了
一下,回說這最終要看使用到的python套件怎麼實作。他便接著問如果是你,要怎麼實作
那個套件的功能?我就解釋了一下自己的想法,每個步驟的複雜度是多少。他同意我的看
法,接著第二道題。
第二題比第一題複雜,直覺告訴我需要第一題做出來的工具,但一時想不出來該怎麼用,
卡了一下。見我在沉思,他便問什麼地方卡住,跟他討論一下就想到解法了。寫完後他看
了一下提醒我輸出需要按照某個東西排序。在改code的過程中,很不幸地他忽然看不到我
的code。後來他要了一個editor新的連結,但我們兩個都進不去。面試只能改期。
第二次面試換成另一個人,給了跟矩陣相關的兩道題。第一題是搜尋問題。但心想,這不
先排序怎麼可能在O(logN)時間完成?但後來觀察一下發現資料確實是排序過的,就趕緊
寫了個binary search把它做了。
第二題面試官提示可以先針對這矩陣做出某種資料結構,但這提示所包含的可能性還是非
常多。也許是面試官見我的想法太跳tone,便問我有沒有聽過XX。聽到這個提示就想到解
法了,但可惜時間不夠把資料轉換的部分完成。
在兩次的面試中,我利用那最後五分鐘共問了三個問題。
第一個問題是,下班後可以做很多事來提升自己,例如看paper或打kaggle,刷leetcode
是其中之一。那你下班後做什麼事提升自己?leetcode是否為一種必要之惡?
面試官回答其實他有時間的話會先處理進度落後的專案,再來會看系統設計的書。至於le
etcode,確實,candidate在leetcode上的表現其實並不能轉化為工作上的表現,但這仍
能幫助他們區分工程師的程度。所以,對,這是必要之惡。
第二個問題是,Facebook以駭客文化著名。我所理解的駭客文化是just do it & do it q
uick。另一方面,傳統的軟體開發流程要先確認需求,設計可以滿足需求的規格...比較
可靠但開發速度就慢。Facebook如何在這兩者之間取得平衡?
可能是我問的不好,面試官回覆像演算法那樣的東西都需要審核云云,但我想知道的是Fa
cebook如何在駭客文化的前提下仍能保持程式碼的品質?(還是該直接問他們有沒有用sc
rum?)
最後一個問題是Facebook怎麼評估員工?但面試官也沒講太多,只聽到他們半年評估一次
,然後Facebook是他待過的所有公司中最tough的,但評估的目的是幫助員工成長。其實
我比較想知道的是,不論是KPI還是OKR,他們怎麼設計metrics?
不意外地,根據Facebook的標準,我並沒有通過這關。不過我真心覺得他們的面試流程不
錯,有效率而且標準明確,所以跟各位分享。從這面試過程跟制度設計中,我感受到Face
book想找的,是能夠提出解決方案,並有足夠程式能力將之實現的人。
雖然沒有成功,但從這次的經驗我收穫很多。首先是明白了頂級公司的要求,以及自己跟
這標準的差距。
另外,我對刷leetcode這件事也有點改觀了,特別是像我這種本科非CS的人。之前總覺得
,把時間花在看paper或上線上課程對工作比較有幫助。CS相關的知識,像演算法或資料
結構,都是工作後才補的。而這些相關知識到底夠不夠完備,其實我沒有自信。透過刷le
etcode,可以了解自己還有哪些不足。像在這次的準備中,就學了Trie、Topological so
rt、deterministic finite automaton等等。
就題目難度而言,確實如他們所說是介於easy到medium。被刷掉,單純就是自己還不夠好
。接下來,預計花一年的時間刷完leetcode,目標是能夠在紙上就寫下bug free code。
希望自己可以達到頂級公司的程度。
作者: chupiggy (機器人)   2018-10-22 12:52:00
有經驗有推
作者: Y78 (Y78)   2018-10-19 17:31:00
作者: sppqre (山中練腦殘)   2018-10-19 17:41:00
厲害
作者: shownlin (哈哈阿喔)   2018-10-19 17:45:00
推,很值得參考
作者: hahaRegina (喔)   2018-10-19 17:51:00
謝謝分享
作者: stkoso (Asperger)   2018-10-19 17:53:00
ML tech lead 怕
作者: yusheng88992 (搭小黃囉)   2018-10-19 17:56:00
推~
作者: MOONY135 (談無慾)   2018-10-19 17:59:00
太屌了
作者: bowin (盡其在我)   2018-10-19 18:17:00
推分享
作者: gorillaz1 (小角色)   2018-10-19 18:25:00
有收到Recruiter邀面試Android 但自認太弱 不敢去 XD
作者: DCTmaybe (竹竹人)   2018-10-19 18:28:00
感謝分享
作者: beatnik9100 (beatnik)   2018-10-19 18:28:00
強者
作者: ggBird (ggBird)   2018-10-19 18:32:00
作者: mpst897 (沒有人)   2018-10-19 18:32:00
太強。可以請問原po原來的職位嗎?
作者: appleball200 (我帶把的不要再把我了orz)   2018-10-19 18:49:00
作者: Murasaki0110 (麥當勞歡樂送)   2018-10-19 18:56:00
同個職位,北京onsite被刷QQ
作者: y956403 (尋歡)   2018-10-19 19:42:00
作者: kurakidream (隨波逐流)   2018-10-19 19:43:00
leetcode刷好刷滿 ,我也是去年北京onsite掛了
作者: bobbyaxe   2018-10-19 19:48:00
感謝分享
作者: a78998042a (Benjimine)   2018-10-19 19:48:00
推,好厲害!!
作者: jhengsiaomin (siaomin)   2018-10-19 19:53:00
感謝強者分享
作者: phe6689 (宏)   2018-10-19 19:58:00
感謝分享 另外 是Bug free?
作者: MIKEmike07 (加油!)   2018-10-19 19:59:00
推分享! FB 白板真的難度還好 需要資料的可以站內我~
作者: rio35 (rio)   2018-10-19 20:31:00
強~~~
作者: landysh (藍色窗簾)   2018-10-19 20:32:00
感謝分享
作者: plsmaop (plsmaop)   2018-10-19 20:56:00
Bug free
作者: atpx (秋雨的心情)   2018-10-19 20:57:00
推強者分享
作者: babyfang (Fang)   2018-10-19 21:10:00
推實用分享
作者: NewLifePage (人生新的一頁)   2018-10-19 21:51:00
用心分享 推!
作者: wilson85771 (HOW)   2018-10-19 23:01:00
作者: g5637128 (幫QQ)   2018-10-19 23:15:00
作者: newyellow (newyellow)   2018-10-19 23:19:00
強者推!!!不過我自己做新媒體的 FB 最近在推 AR Studio 這東西我就覺得他們思維有點太工程師了 ... 做出來東西對新媒的人來說其實不是很好用 :P
作者: sean2449 (肉鬆)   2018-10-19 23:26:00
作者: XP (對稱)   2018-10-19 23:37:00
推感謝分享,祝下次就會上
作者: ntddt (滅頂,降公投罷免門檻)   2018-10-19 23:57:00
推FLAG分享...
作者: qazedcrfv (512)   2018-10-20 00:14:00
作者: drajan (EasoN)   2018-10-20 00:26:00
我是倫敦onsite掛了XD 一個interview要解兩道以上才算pass
作者: Wolfken   2018-10-20 00:32:00
我覺得FB面試比較好一點,大概都leetcode easy to medium另外onsite也會有behavior跟system design,比較全面
作者: drajan (EasoN)   2018-10-20 01:22:00
我之前面Amazon跟FB都是Medium到Hard Easy應該只是warmup而已
作者: dave9898 (黛芙走吧)   2018-10-20 01:30:00
作者: handsomeLin (DoGLin)   2018-10-20 01:46:00
其實根據你電面的難度,他只是在確認candidate知道演算法跟打code而已
作者: cha122977 (CHA)   2018-10-20 02:42:00
難度easy-medium不奇怪 自己和朋友去面大多就這個難度溝通和表達能力似乎也佔很大一部分
作者: VisualStudio (2015)   2018-10-20 07:19:00
推,感謝分享
作者: kaosmart (smart)   2018-10-20 07:38:00
作者: gbd37 (我想抓波波)   2018-10-20 08:15:00
作者: VisualStudio (2015)   2018-10-20 09:22:00
可以請問大約幾年經驗嗎?
作者: doranako (真愛無限)   2018-10-20 09:24:00
推分享
作者: answerseeker (神燈)   2018-10-20 11:26:00
NYC E4/5 onsite還有額外一輪ML... 雖說也掛了...
作者: LEwww1290 (0.0)   2018-10-20 13:39:00
作者: syclin (Steven)   2018-10-20 14:10:00
推推 但應該是 automaton 不是 automation?
作者: fuguyeu   2018-10-20 20:32:00
感謝分享~
作者: shenevol (shen)   2018-10-20 21:17:00
推推 這種頂級的都很tough QQ
作者: THEWORLDS (天下)   2018-10-20 23:42:00
你一定沒有聽拒絕存取大大的話 還太菜 加油
作者: VisualStudio (2015)   2018-10-21 01:00:00
感謝回覆,會想問是因為最近tech板另一篇G的分享是十年經驗 還有之前看MS MTK之類的職缺有看過要求4 6或7年以上的 所以對年也有特別感覺另外小弟我最近從人數100+的公司 換到1000+的當然人數不一定代表什麼 分享一點近況 繼續努力中
作者: matyih (mat)   2018-10-21 02:56:00
推認真心得 想到有人耍手段進實習再轉正就是度爛lol
作者: leveger0903 (脆笛酥)   2018-10-21 08:23:00
好厲害
作者: cacadeon (deon)   2018-10-22 09:34:00
感謝認真分享與心得
作者: lmr3796 (Toro)   2018-10-24 06:51:00
進實習為什麼是耍手段???實習的bar某種程度比正職還難啊...
作者: pop1210 (超級大晴天)   2018-10-24 13:21:00
讚﴿?加油
作者: matyih (mat)   2018-10-26 03:15:00
我是指實習只要電面 有很多手段可以搞。。

Links booklink

Contact Us: admin [ a t ] ucptt.com