背景:3+ year experience。
流程:Linkedin找人内推,内推以后是没有确认信的,自己也看不到进度。过一周多会收到HR的邮件。当时邮件被刷到第二页了,一直没看到,差点以为凉了。。。后来又找内推的人确认了一下进度,说是已经回复了,赶紧回去翻邮件。 = =
第一轮电面 60min
hackerrank做题,xml parser,有18个case要编译通过。没有录像录屏。30min 完成
用stack做,但是边界条件比较多,考察coding基本功。
社招应该只要60min做完就立马约onsite了,反馈比较及时。
Onsite 4轮 x 45min
2轮算法 + 1轮 design + 1轮 experience
2轮算法结束以后,面试官和hr会有一个简单的sync决定要不要继续面。
第一轮
给一个树和某种操作,给树的初始状态和结束状态,求operation的最小次数 以及 每一步操作的节点。
先证明一下思路,推导出算最小值的方式。正向证明了一下,面试官说也可以用反证法。然后就开始coding。邻接表存图,BFS+DFS。写的还比较顺利。最后跑结果的时候遇到一个小bug,面试官提示我bfs的循环让我再看看,虽然当时特别紧张lol,但总算看出来了。然后就跑一遍所有的测试数据都过了。45min搞定。
中间休息去洗手间的时候,是hr姐姐带我去的,然后跟我说听说你第一轮很不错啊。=w=
第二轮
给一个M和N,z字形打印出整个matrix。不是一般横向的打印,所以边界判断更复杂。
思路:先平行顺序打印matrix,然后再跳一行反转。都是O(MN)的复杂度,面试官觉得ok了就开始coding。
这一轮时间有点超,而且面试官总打断,我就更紧张,本来挺清晰的思路,时间到了还卡在一个bug上,有部分testcase没过。。。
总之电脑用不顺手,紧张的时候debug会更慢,面试官好心提示有时候反而会打断思路lol。所以如果自己思路清楚,千万不要过度揣测面试官的意图!!!坚持自己的想法去做就好了。运气比较好,接着面。
第三轮 经理面系统设计
设计一个airbnb的电子钱包。
之前按照github准备的系统设计,user estimation,loadbalancer , cache的完全没考。可能是根据工作年限来的,考察database design,api design和优化。基本上就是平时工作中间的积累。因为白板很小,很多东西就靠说的,比如他会问详细说明一下某一个api内部的逻辑有哪些步骤。优化的时候,有一部分自己能想到的比如database race condition咋么处理。面试官也会提问比如callback failure怎么处理,dependency call failure怎么处理。会不断提问引导,迭代设计。
第四轮 经理面experience
这一轮还比较nice,主要以了解为主,不会太challenge也没有PUA。他挑感兴趣的项目先问,然后你也可以自己讲一下自己觉得比较好的项目。也问了项目怎么优化。说了几个项目,有的侧重项目难度复杂度如何解决,有的侧重如何跨团队沟通 drive进度。面完又问我还有什么觉得他没问到的但是我觉得自己还可以讲一下的地方。最后问我有什么问题,我就问了他一些airbnb工作和决策相关的问题吧。
总之面试体验还是很不错的,没有之前担心的那么可怕。面试前hr还带着转了转office。
===== 补充一下
这次面试感觉题目不算难,但是每道题都需要先转几个弯才能找到解法,所以要反应快一点,coding大概medium+
系统设计的话,工作年限不长的话,感觉更侧重detail design。主要是rdb和api design。
方便问下楼主背景嘛?是国内还是国外,社招挺想去外企的
外企跳外企
在哪?
beijing