Re: [心得] Facebook面试经验分享

楼主: ganchpc (Ganch)   2019-01-25 12:05:41
去年底突然有杂事忙了一阵子 最近终于有点空 趁还没忘光赶紧上来分享
我跟原po(superalf)是差不多一样的面试时间 不过我是面Android
后来11月底有到新加坡on-site 不过可惜Design关表现不好被刷掉
很多细节原po都有提到 我就补充一些Android面试的差异
希望可以帮助到有兴趣往海外发展的人 可以提早准备
我的recruiter是透过LinkedIn联络 约好时间后电话打给我
一开始先聊一下彼此背景 还有这个职位相关资讯
最后要结束前 本来以为没了 结果突然说考几题Android相关资讯
大概6~7题是非题 问了一些Android基本知识
像是activity一定能收到onStart/onResume/.... event吗?
device方向改变时 activity会不会restart?
除了Yes/No以外 能补充解释一些原因会更好
但我也不确定这边答的不好会不会就被刷掉
之后就线上约电话面试的时间(BlueJeans)
电话面试遇到一位印度工程师
一开始他自我介绍完之后 也是先问了两题Android相关的问题
这边可能是因为远端加上口音的关系 我听的不是很清楚 回答感觉没有很到位
难度就比recruiter的难一点 要真的很熟悉元件差异比较回答得出来和完整
接着是两题leetcode easy~medium等级的问题
第一题写太久导致我第二题只剩五分钟 还好有在时间内赶出来
过大概几天recruiter就打来恭喜 并解释之后on-site会由别位recruiter负责
再过一阵子后第二位recruiter就来联络我 并解释on-site相关资讯
主要是11月底到新加坡FB site跟其他site过来的RD面试
准备期间也有其他负责差旅的HR会来要一些护照, 银行资讯
帮忙处理机票以及之后面试期间的花费报销
一天的餐费就补助到75美金 其他交通或是因为面试而必须的开销都能报帐
我第一天是下午的飞机到 晚餐前先走到FB办公室附近了解一下路线和时间
之后就在附近卖场随便吃 很努力的点也只有30新币 最后吃超饱XD
on-site总共四关 两个coding interview, 一个design, 一个behavioral
一开始是recruiter先把大家集合起来 稍微解释一下之后流程 就各自带开
面试准备期间就会给一个Candidate Sheet 上面分别有四关面试官的名字
我有特别上网肉搜了一下 了解对方背景 看看有没有比较合适的问题可以在最后问
这四位面试关就在当天的面试者之间赶场 来面试的人只要待在会议室里就好
coding interview两关都是leetcode medium左右 答完最佳解之后
还会在稍微变形问一下
所以准备时最好是相关题还有各种解法都要熟悉
design算是我最担心的 因为网络上能找到Android职缺面试的design经验分享几乎没有
大部分还是偏system design, 连recruiter给的准备资料也是以system design为主
跟recruiter讨论时 recruiter也只能建议 参考手机上的app
想想看如果是你来设计的话会怎么实作
实际面试时 是参考messenger app, 给两个activity, 解释要如何设计聊天相关的功能
app跟backend之间怎么沟通(API) 至于backend端完全不用管 就当做会有人处理好就行
因为我后来背景主要是以android framework为主 app开发只有一开始碰过一下子
后来很多相关细节都快忘了 就只能尽量扯一些基本东西的像是listview, JSON API
面试过程就跟一般网络上分享的system design interview差不多 面试者会不断跟你讨论
像是问你聊天记录会怎么储存, 打算怎么排序显示纪录, API会传哪些东西...
虽然跟面试者讨论的过程还行 但面试中我就觉得很多都回答得不好或是太基本
也没有到很积极的lead the discussion感觉
后来从recruiter的feedback推敲大概也是这样 很遗憾的就被reject了
之后的准备方向 我自己是觉得可以从FB现有的app下手
了解一下主要功能为何 自己大概会怎么设计 实作 优化
考题我想也许就跟面SDE的差不多 只是面向从system变成Android App
平常有了解一下FB相关系统设计的文章可能有帮助 像我就有读到一篇是介绍messenger
包括怎么优化聊天纪录储存, real-time msg怎么推送, 沟通的方式怎么从JSON变成
proprietary的方式
在回答时刚好就能直接拿来用 虽然还是不够用就是了XD
负责on-site的recruiter大概是快两个礼拜后才联络我 一开始就很直接的讲结果
安慰了一下 请我好好准备 明年还有兴趣的话 再联络囉
下面再补充一些个人心得 也许有帮助 写的可能有点杂请见谅
FB的coding interview就如网络上说的非常考古 实际面试过程也是如此
第二个coding interview面试者有直接先问我考题有没有看过 我就很诚实地回答有
并大概讲一下会是怎么解 就这样的连换三题都还是考古.....
这边也很感谢 MIKEmike07 大大分享之前整理的考古题
相当的完整 很有帮助!
照着考古题还有leetcode上的frequency题目准备 其实就差不多100~200题了
有打算上一亩三分地看面经的话的 帐号尽量先开好 除非你不介意花钱买VIP
因为上面很多文章都有权限控管 新手几乎一半以上都看不了
我在准备过程中每天慢慢答题加签到 也累积不到两百颗大米 有些文章还是看不了
上面也会有一些热心人士定期帮忙整理前几个月的考古题成excel 有跟到的话多少有帮助
总体来讲 有兴趣想挑战北美工作的 越早开始准备越好
不管是coding还是system design 都是需要花时间阅读 练习 理解
像我这次一边工作一边准备面试 在有时间压力下其实还蛮累的
尤其是system design 因为我自己的背景跟backend不太相关
一些文章读起来真的觉得这领域博大精深 要记得东西不少
没有实战经验很难短时间上手
on-site中间 有一小段休息时间 这时是第一个recruiter带我在FB办公室绕绕顺便闲聊
他有分享到因为美国H1B签证变难取得的关系 之后可能就只会找London的职缺
也了解到新加坡FB主要是做企业方的应用为主
办公室看出去的view非常好 但这次on-site算是在旧办公室
大部分的RD都搬到新的去了
另外我觉得mock interview很有帮助 尤其是遇到不熟的题目时
很多临场反应都是遇过后 才比较知道怎么改进
跟我之前在台湾的面试经验比起来 FB的整体流程我觉得很棒
感觉得出来recruiter会是想帮助来面试的人 面试时interviewer的态度都很好
当然就像有些人分享的 面试也是有运气成份在 遇到不好的经验也是有的
未来我应该会是继续练习 有空有机会就去面试看看 当作累积经验也不错
作者: gundam00 (傻那驾驶中)   2019-01-25 12:16:00
感谢分享~
作者: sck921 (The Fate)   2019-01-25 12:19:00
作者: siriusu (かがみは俺の嫁。)   2019-01-25 12:35:00
作者: yamakazi (大安吴彦祖)   2019-01-25 13:29:00
leetcode刷题一百到两百题 啊不过这边人都高手不屑刷题的这边讲到刷题就跟讲到禁忌字一样
作者: dnabossking (少狂)   2019-01-25 14:17:00
连on-site都没机会的人要刷题干嘛0.0??
作者: MIKEmike07 (加油!)   2019-01-25 14:32:00
不会 有帮助到就好:) 如我所说的, FB 真的不是难在解题,是难在拿面试呵呵新加波也可以报吃饭到75哦,还行~
作者: aa06697 (todo se andarà)   2019-01-25 15:27:00
分享推
作者: TheOneisNEO (Thomas Anderson)   2019-01-25 16:12:00
原来拿到面试这么难?
作者: RouterHsieh (醉卧美人膝,醒掌天下权)   2019-01-25 17:47:00
我是觉得某楼与其在那边崩溃,不如想办法拿个面试然后分享一下比较有意义啦,科科
作者: bug147123 (HowDoYouTurnThisOn)   2019-01-25 19:49:00
感谢分享
作者: cha122977 (CHA)   2019-01-25 21:15:00
一个刷题各自表述 有人刷了增强基本功 有人只是背答案Recruiter电话聊聊我觉得确认英文程度居多XD
作者: illl (ill!)   2019-01-26 01:39:00
请问有优化聊天纪录储存文章的连接吗?谢谢
作者: ChoDino (Dino)   2019-01-26 01:47:00
帮推个,真的要试点国外的机会才知道人家怎么做的
作者: illl (ill!)   2019-01-27 14:42:00
感恩
作者: VisualStudio (2015)   2019-01-27 16:54:00
感谢分享
作者: plover (喜欢你 ( ̄▽ ̄#)﹏﹏)   2019-01-30 09:10:00
我也被刷掉了,不过吃松发蛮爽的

Links booklink

Contact Us: admin [ a t ] ucptt.com