[心得] Facebook面試經驗分享

看板Soft_Job (軟體人)作者 (外星人)時間7年前 (2018/10/19 17:09), 7年前編輯推噓57(57018)
留言75則, 58人參與, 7年前最新討論串1/2 (看更多)
九月中收到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。 希望自己可以達到頂級公司的程度。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.19.36.0 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1539940165.A.F8E.html

10/19 17:31, 7年前 , 1F
10/19 17:31, 1F

10/19 17:41, 7年前 , 2F
厲害
10/19 17:41, 2F

10/19 17:45, 7年前 , 3F
推,很值得參考
10/19 17:45, 3F

10/19 17:51, 7年前 , 4F
謝謝分享
10/19 17:51, 4F

10/19 17:53, 7年前 , 5F
ML tech lead 怕
10/19 17:53, 5F

10/19 17:56, 7年前 , 6F
推~
10/19 17:56, 6F

10/19 17:59, 7年前 , 7F
太屌了
10/19 17:59, 7F

10/19 18:17, 7年前 , 8F
推分享
10/19 18:17, 8F

10/19 18:25, 7年前 , 9F
有收到Recruiter邀面試Android 但自認太弱 不敢去 XD
10/19 18:25, 9F
去啊!幹嘛不去?太可惜啦

10/19 18:28, 7年前 , 10F
感謝分享
10/19 18:28, 10F

10/19 18:28, 7年前 , 11F
強者
10/19 18:28, 11F

10/19 18:32, 7年前 , 12F
10/19 18:32, 12F

10/19 18:32, 7年前 , 13F
太強。可以請問原po原來的職位嗎?
10/19 18:32, 13F
資深工程師,但工作其實跟data scientist一樣 也是一半研究一半開發

10/19 18:49, 7年前 , 14F
10/19 18:49, 14F

10/19 18:56, 7年前 , 15F
同個職位,北京onsite被刷QQ
10/19 18:56, 15F
拍拍,我連第一關都過不了 T.T 方便的話分享一下onsite經驗讓大家過過乾癮 ※ 編輯: superalf (101.13.7.235), 10/19/2018 19:18:59 ※ 編輯: superalf (101.13.7.235), 10/19/2018 19:26:58

10/19 19:42, 7年前 , 16F
10/19 19:42, 16F

10/19 19:43, 7年前 , 17F
leetcode刷好刷滿 ,我也是去年北京onsite掛了
10/19 19:43, 17F

10/19 19:48, 7年前 , 18F
感謝分享
10/19 19:48, 18F

10/19 19:48, 7年前 , 19F
推,好厲害!!
10/19 19:48, 19F

10/19 19:53, 7年前 , 20F
感謝強者分享
10/19 19:53, 20F

10/19 19:58, 7年前 , 21F
感謝分享 另外 是Bug free?
10/19 19:58, 21F
感謝提醒,已修。手機自己選字真麻煩

10/19 19:59, 7年前 , 22F
推分享! FB 白板真的難度還好 需要資料的可以站內我
10/19 19:59, 22F

10/19 19:59, 7年前 , 23F
10/19 19:59, 23F

10/19 20:31, 7年前 , 24F
強~~~
10/19 20:31, 24F

10/19 20:32, 7年前 , 25F
感謝分享
10/19 20:32, 25F

10/19 20:56, 7年前 , 26F
Bug free
10/19 20:56, 26F

10/19 20:57, 7年前 , 27F
推強者分享
10/19 20:57, 27F

10/19 21:10, 7年前 , 28F
推實用分享
10/19 21:10, 28F

10/19 21:51, 7年前 , 29F
用心分享 推!
10/19 21:51, 29F
※ 編輯: superalf (49.215.164.245), 10/19/2018 21:54:54

10/19 23:01, 7年前 , 30F
10/19 23:01, 30F

10/19 23:15, 7年前 , 31F
10/19 23:15, 31F

10/19 23:19, 7年前 , 32F
強者推!!!
10/19 23:19, 32F

10/19 23:20, 7年前 , 33F
不過我自己做新媒體的 FB 最近在推 AR Studio 這東西
10/19 23:20, 33F

10/19 23:20, 7年前 , 34F
我就覺得他們思維有點太工程師了 ... 做出來東西對新媒
10/19 23:20, 34F

10/19 23:20, 7年前 , 35F
的人來說其實不是很好用 :P
10/19 23:20, 35F

10/19 23:26, 7年前 , 36F
10/19 23:26, 36F

10/19 23:37, 7年前 , 37F
推感謝分享,祝下次就會上
10/19 23:37, 37F

10/19 23:57, 7年前 , 38F
推FLAG分享...
10/19 23:57, 38F

10/20 00:14, 7年前 , 39F
10/20 00:14, 39F

10/20 00:26, 7年前 , 40F
我是倫敦onsite掛了XD 一個interview要解兩道以上才算pass
10/20 00:26, 40F

10/20 00:32, 7年前 , 41F
我覺得FB面試比較好一點,大概都leetcode easy to medium
10/20 00:32, 41F

10/20 00:33, 7年前 , 42F
另外onsite也會有behavior跟system design,比較全面
10/20 00:33, 42F

10/20 01:22, 7年前 , 43F
我之前面Amazon跟FB都是Medium到Hard Easy應該只是warmup
10/20 01:22, 43F

10/20 01:22, 7年前 , 44F
而已
10/20 01:22, 44F

10/20 01:30, 7年前 , 45F
10/20 01:30, 45F

10/20 01:46, 7年前 , 46F
其實根據你電面的難度,他只是在確認candidate知道演
10/20 01:46, 46F

10/20 01:46, 7年前 , 47F
算法跟打code而已
10/20 01:46, 47F

10/20 02:42, 7年前 , 48F
難度easy-medium不奇怪 自己和朋友去面大多就這個難度
10/20 02:42, 48F

10/20 02:45, 7年前 , 49F
溝通和表達能力似乎也佔很大一部分
10/20 02:45, 49F

10/20 07:19, 7年前 , 50F
推,感謝分享
10/20 07:19, 50F

10/20 07:38, 7年前 , 51F
10/20 07:38, 51F

10/20 08:15, 7年前 , 52F
10/20 08:15, 52F

10/20 09:22, 7年前 , 53F
可以請問大約幾年經驗嗎?
10/20 09:22, 53F
9年半,但前6年很廢,我覺得這只能算半年 不能再多了。所以全部算四年吧

10/20 09:24, 7年前 , 54F
推分享
10/20 09:24, 54F

10/20 11:26, 7年前 , 55F
NYC E4/5 onsite還有額外一輪ML... 雖說也掛了...
10/20 11:26, 55F

10/20 13:39, 7年前 , 56F
10/20 13:39, 56F

10/20 14:10, 7年前 , 57F
推推 但應該是 automaton 不是 automation?
10/20 14:10, 57F
沒注意到。已改,謝謝。 ※ 編輯: superalf (49.216.151.82), 10/20/2018 19:25:29

10/20 20:32, 7年前 , 58F
感謝分享~
10/20 20:32, 58F

10/20 21:17, 7年前 , 59F
推推 這種頂級的都很tough QQ
10/20 21:17, 59F

10/20 23:42, 7年前 , 60F
你一定沒有聽拒絕存取大大的話 還太菜 加油
10/20 23:42, 60F

10/21 01:00, 7年前 , 61F
感謝回覆,會想問是因為最近tech板另一篇G的分享是
10/21 01:00, 61F

10/21 01:02, 7年前 , 62F
十年經驗 還有之前看MS MTK之類的職缺有看過要求
10/21 01:02, 62F

10/21 01:03, 7年前 , 63F
4 6或7年以上的 所以對年也有特別感覺
10/21 01:03, 63F

10/21 01:08, 7年前 , 64F
另外小弟我最近從人數100+的公司 換到1000+的
10/21 01:08, 64F

10/21 01:08, 7年前 , 65F
當然人數不一定代表什麼 分享一點近況 繼續努力中
10/21 01:08, 65F

10/21 02:56, 7年前 , 66F
推認真心得 想到有人耍手段進實習再轉正就是度爛lol
10/21 02:56, 66F

10/21 08:23, 7年前 , 67F
好厲害
10/21 08:23, 67F

10/21 18:13, 7年前 , 68F
10/21 18:13, 68F

10/22 09:34, 7年前 , 69F
感謝認真分享與心得
10/22 09:34, 69F

10/22 12:52, 7年前 , 70F
有經驗有推
10/22 12:52, 70F

10/23 21:37, 7年前 , 71F
10/23 21:37, 71F

10/24 06:51, 7年前 , 72F
進實習為什麼是耍手段???實習的bar某種程度比正職還難
10/24 06:51, 72F

10/24 06:52, 7年前 , 73F
啊...
10/24 06:52, 73F

10/24 13:21, 7年前 , 74F
讚﴿?加油
10/24 13:21, 74F

10/26 03:15, 7年前 , 75F
我是指實習只要電面 有很多手段可以搞。。
10/26 03:15, 75F
文章代碼(AID): #1RoPz5-E (Soft_Job)
文章代碼(AID): #1RoPz5-E (Soft_Job)