[心得] 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