[心得] Facebook面試經驗分享- 看板Soft_Job - 批踢踢實業坊

文章推薦指數: 80 %
投票人數:10人

面試當天是一位做marketplace的工程師來跟我面試。

... 推Wolfken: 我覺得FB面試比較好一點,大概都leetcode easy to medium10/20 00:32. 批踢踢實業坊 › 看板Soft_Job 關於我們 聯絡資訊 返回看板 作者superalf(外星人)看板Soft_Job標題[心得]Facebook面試經驗分享時間FriOct1917:09:232018 九月中收到FacebookHR寄來的信,說在找machinelearningtechleadengineer。

這個 職位的工作,開發和研究會各佔一半,可以選擇的地點包括MenloPark總部、Seattle、B oston、NewYork、以及倫敦。

問我有沒有興趣。

大部分人應該都有吧,我也不例外。

約了個時間聊聊,內容大致是問問我目前的工作內容這樣,解釋這個職位的工作性質、以 及整個面試的流程—會先在10月安排codinginterview,通過後可以參加他們11月在北 京跟新加坡辦的hiringevent。

他們的工程師會過來,這個就算onsite了。

在這hiringe vent有五場面試,比較特別的是會有systemdesign,例如設計一個推薦系統之類的。

如果都通過了,會在明年四月送H1B流程。

但H1B是透過抽籤,沒被抽到就沒有。

如果一切 順利,明年10月on-board。

我問這些地點的工作內容有何差別?他回確實是有,MenloPa rk進行的專案是最多的,Seattle也很多,但boston跟紐約相對會少一些。

而倫敦則是pro ductoriented跟security,所以在選擇地點時也要把這些因素考慮進去。

結束後收到HR的信告知他需要我先回答幾個問題。

印象很深刻的是,一般人編號都是從1 開始,但他第一個問題的編號是0。

非常的工程師文化!連HR都那麼nerdXD 之後收到HR的codinginterview邀請,隨信附上Facebook的面試攻略,內容非常豐富!其 中包含一份類似cheatsheet之類的懶人包,一份內部員工的信件,還有一個長達兩小時 的私人影片連結。

他們明確指出會考的範圍,比對了一下,剛好就是crackingthecodin ginterview這本書涵蓋的所有範圍。

難易程度介於leetcode的easy到medium之間,但要 求的完成度相當高,必須是workablecode,並且是最佳解。

要知道,他們所使用的codin ginterview的介面只是個單純的編輯器,執行功能是關掉的。

這意思是說,必須能用筆 在紙上寫下來沒有bug的code!在那封內部員工的信中也明確指出最好只使用紙跟筆來準 備面試。

Codinginterview總共45分鐘。

前五分鐘interviewer會介紹自己的工作,接下來35分鐘 要解1-2道題,最後五分鐘interviewee可以問一兩個關於facebook的問題。

中間這35分鐘 不是單純寫code就好,必須先解釋自己的解法再寫code,接著會詢問時間跟空間複雜度。

如果中途網路發生斷線的狀況,面試就必須重新安排。

面試當天是一位做marketplace的工程師來跟我面試。

因為目前的工作跟圖論比較相關, 我猜出graph相關題目的機會比較高,所以準備時也比較著重在這方面。

還真的給我猜中 。

有兩題,第一題很簡單,一分鐘就完成了。

接著他請我分析時間跟空間複雜度。

解釋了 一下,回說這最終要看使用到的python套件怎麼實作。

他便接著問如果是你,要怎麼實作 那個套件的功能?我就解釋了一下自己的想法,每個步驟的複雜度是多少。

他同意我的看 法,接著第二道題。

第二題比第一題複雜,直覺告訴我需要第一題做出來的工具,但一時想不出來該怎麼用, 卡了一下。

見我在沉思,他便問什麼地方卡住,跟他討論一下就想到解法了。

寫完後他看 了一下提醒我輸出需要按照某個東西排序。

在改code的過程中,很不幸地他忽然看不到我 的code。

後來他要了一個editor新的連結,但我們兩個都進不去。

面試只能改期。

第二次面試換成另一個人,給了跟矩陣相關的兩道題。

第一題是搜尋問題。

但心想,這不 先排序怎麼可能在O(logN)時間完成?但後來觀察一下發現資料確實是排序過的,就趕緊 寫了個binarysearch把它做了。

第二題面試官提示可以先針對這矩陣做出某種資料結構,但這提示所包含的可能性還是非 常多。

也許是面試官見我的想法太跳tone,便問我有沒有聽過XX。

聽到這個提示就想到解 法了,但可惜時間不夠把資料轉換的部分完成。

在兩次的面試中,我利用那最後五分鐘共問了三個問題。

第一個問題是,下班後可以做很多事來提升自己,例如看paper或打kaggle,刷leetcode 是其中之一。

那你下班後做什麼事提升自己?leetcode是否為一種必要之惡? 面試官回答其實他有時間的話會先處理進度落後的專案,再來會看系統設計的書。

至於le etcode,確實,candidate在leetcode上的表現其實並不能轉化為工作上的表現,但這仍 能幫助他們區分工程師的程度。

所以,對,這是必要之惡。

第二個問題是,Facebook以駭客文化著名。

我所理解的駭客文化是justdoit&doitq uick。

另一方面,傳統的軟體開發流程要先確認需求,設計可以滿足需求的規格...比較 可靠但開發速度就慢。

Facebook如何在這兩者之間取得平衡? 可能是我問的不好,面試官回覆像演算法那樣的東西都需要審核云云,但我想知道的是Fa cebook如何在駭客文化的前提下仍能保持程式碼的品質?(還是該直接問他們有沒有用sc rum?) 最後一個問題是Facebook怎麼評估員工?但面試官也沒講太多,只聽到他們半年評估一次 ,然後Facebook是他待過的所有公司中最tough的,但評估的目的是幫助員工成長。

其實 我比較想知道的是,不論是KPI還是OKR,他們怎麼設計metrics? 不意外地,根據Facebook的標準,我並沒有通過這關。

不過我真心覺得他們的面試流程不 錯,有效率而且標準明確,所以跟各位分享。

從這面試過程跟制度設計中,我感受到Face book想找的,是能夠提出解決方案,並有足夠程式能力將之實現的人。

雖然沒有成功,但從這次的經驗我收穫很多。

首先是明白了頂級公司的要求,以及自己跟 這標準的差距。

另外,我對刷leetcode這件事也有點改觀了,特別是像我這種本科非CS的人。

之前總覺得 ,把時間花在看paper或上線上課程對工作比較有幫助。

CS相關的知識,像演算法或資料 結構,都是工作後才補的。

而這些相關知識到底夠不夠完備,其實我沒有自信。

透過刷le etcode,可以了解自己還有哪些不足。

像在這次的準備中,就學了Trie、Topologicalso rt、deterministicfiniteautomaton等等。

就題目難度而言,確實如他們所說是介於easy到medium。

被刷掉,單純就是自己還不夠好 。

接下來,預計花一年的時間刷完leetcode,目標是能夠在紙上就寫下bugfreecode。

希望自己可以達到頂級公司的程度。

-- ※發信站:批踢踢實業坊(ptt.cc),來自:117.19.36.0 ※文章網址:https://www.ptt.cc/bbs/Soft_Job/M.1539940165.A.F8E.html 推Y78:推10/1917:31 推sppqre:厲害10/1917:41 推shownlin:推,很值得參考10/1917:45 推hahaRegina:謝謝分享10/1917:51 →stkoso:MLtechlead怕10/1917:53 推yusheng88992:推~10/1917:56 推MOONY135:太屌了10/1917:59 推bowin:推分享10/1918:17 推gorillaz1:有收到Recruiter邀面試Android但自認太弱不敢去XD10/1918:25 去啊!幹嘛不去?太可惜啦 推DCTmaybe:感謝分享10/1918:28 推beatnik9100:強者10/1918:28 推ggBird:強10/1918:32 推mpst897:太強。

可以請問原po原來的職位嗎?10/1918:32 資深工程師,但工作其實跟datascientist一樣 也是一半研究一半開發 推appleball200:推10/1918:49 推Murasaki0110:同個職位,北京onsite被刷QQ10/1918:56 拍拍,我連第一關都過不了T.T 方便的話分享一下onsite經驗讓大家過過乾癮 ※編輯:superalf(101.13.7.235),10/19/201819:18:59 ※編輯:superalf(101.13.7.235),10/19/201819:26:58 推y956403:推10/1919:42 →kurakidream:leetcode刷好刷滿,我也是去年北京onsite掛了10/1919:43 推bobbyaxe:感謝分享10/1919:48 推a78998042a:推,好厲害!!10/1919:48 推jhengsiaomin:感謝強者分享10/1919:53 推phe6689:感謝分享另外是Bugfree?10/1919:58 感謝提醒,已修。

手機自己選字真麻煩 推MIKEmike07:推分享!FB白板真的難度還好需要資料的可以站內我10/1919:59 →MIKEmike07:~10/1919:59 推rio35:強~~~10/1920:31 推landysh:感謝分享10/1920:32 推plsmaop:Bugfree10/1920:56 推atpx:推強者分享10/1920:57 推babyfang:推實用分享10/1921:10 推NewLifePage:用心分享推!10/1921:51 ※編輯:superalf(49.215.164.245),10/19/201821:54:54 推wilson85771:推10/1923:01 推g5637128:推10/1923:15 推newyellow:強者推!!!10/1923:19 →newyellow:不過我自己做新媒體的FB最近在推ARStudio這東西10/1923:20 →newyellow:我就覺得他們思維有點太工程師了...做出來東西對新媒10/1923:20 →newyellow:的人來說其實不是很好用:P10/1923:20 推sean2449:推10/1923:26 推XP:推感謝分享,祝下次就會上10/1923:37 推ntddt:推FLAG分享...10/1923:57 推qazedcrfv:推10/2000:14 推drajan:我是倫敦onsite掛了XD一個interview要解兩道以上才算pass10/2000:26 推Wolfken:我覺得FB面試比較好一點,大概都leetcodeeasytomedium10/2000:32 →Wolfken:另外onsite也會有behavior跟systemdesign,比較全面10/2000:33 推drajan:我之前面Amazon跟FB都是Medium到HardEasy應該只是warmup10/2001:22 →drajan:而已10/2001:22 推dave9898:強10/2001:30 推handsomeLin:其實根據你電面的難度,他只是在確認candidate知道演10/2001:46 →handsomeLin:算法跟打code而已10/2001:46 →cha122977:難度easy-medium不奇怪自己和朋友去面大多就這個難度10/2002:42 →cha122977:溝通和表達能力似乎也佔很大一部分10/2002:45 推VisualStudio:推,感謝分享10/2007:19 推kaosmart:推10/2007:38 推gbd37:猛10/2008:15 →VisualStudio:可以請問大約幾年經驗嗎?10/2009:22 9年半,但前6年很廢,我覺得這只能算半年 不能再多了。

所以全部算四年吧 推doranako:推分享10/2009:24 推answerseeker:NYCE4/5onsite還有額外一輪ML...雖說也掛了...10/2011:26 推LEwww1290:推10/2013:39 推syclin:推推但應該是automaton不是automation?10/2014:10 沒注意到。

已改,謝謝。

※編輯:superalf(49.216.151.82),10/20/201819:25:29 推fuguyeu:感謝分享~10/2020:32 推shenevol:推推這種頂級的都很toughQQ10/2021:17 推THEWORLDS:你一定沒有聽拒絕存取大大的話還太菜加油10/2023:42 推VisualStudio:感謝回覆,會想問是因為最近tech板另一篇G的分享是10/2101:00 →VisualStudio:十年經驗還有之前看MSMTK之類的職缺有看過要求10/2101:02 →VisualStudio:46或7年以上的所以對年也有特別感覺10/2101:03 →VisualStudio:另外小弟我最近從人數100+的公司換到1000+的10/2101:08 →VisualStudio:當然人數不一定代表什麼分享一點近況繼續努力中10/2101:08 推matyih:推認真心得想到有人耍手段進實習再轉正就是度爛lol10/2102:56 推leveger0903:好厲害10/2108:23 推Mtcat:10/2118:13 推cacadeon:感謝認真分享與心得10/2209:34 推chupiggy:有經驗有推10/2212:52 推altecjc:10/2321:37 推lmr3796:進實習為什麼是耍手段???實習的bar某種程度比正職還難10/2406:51 →lmr3796:啊...10/2406:52 推pop1210:讚﴿?加油10/2413:21 →matyih:我是指實習只要電面有很多手段可以搞。



10/2603:15



請為這篇文章評分?