发布于 2014-10-18 11:07:40 | 521 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!


本文是一篇在领英(LinkedIn),脸书(facebook)的面试过程分享,全文来自网络,感兴趣的同学可以参考下。

非CS科班出身,网络相关专业,国内本科,北美硕士加一年零几个月的工作经验,工作之前没有什么大型开源项目经验,学校课程项目也就只有屈指可数的 一两个拿的出手。从我之前的博客其实也可以看出来,工作中主要是用Python开发Openstack Neutron的插件。C++,JAVA和Python几乎全靠自学(从本科开始),去Coursera上过一个Algorithm的在线课程,看过几本 算法书,仔细看过www.cplusplus.com上的tutorial,刷了三四遍Leetcode,看过CC150。除此之外,偶尔泡泡 highscalibility.com看一些系统架构的文章,还在onsite之前抱抱佛脚,狂看了一些脸书的系统设计面试题。

面试过程:

领英和脸书的面试流程都是一样的,一轮电话面试,通过之后就是一轮onsite。 由于我现在的工作也是在硅谷,所以我要求把电话面试改成了面对面的面试。这个到底好不好也是智者见智。好处是当面交流比较方便,尤其是像我这样的母语非英 语的同学,讲电话容易听不清和紧张。坏处是coding会要写白板,自然比在电脑上敲代码要慢很多,更容易出错。不过想到onsite的时候都是写白板, 所以其实也不算太坏,就当提前体验了嘛。

第一轮:

两家的第一轮都是一个小时长度的面试。领英先花一半的时间问了些基础知识和项目相关的问题,最后半小时写了一个coding问题,类似于LRU Cache, Random Queue 之类的题目。需要定义数据结构和实现一些取和放的方法。

脸书的第一轮非常简单暴力,除了稍微聊了一会儿我的经历,直接就是两个 coding题目。第一题比较简单,属于LC上面最简单的一类题目。第二题比较难,但是出现频率在脸书的面试中还是比较高的,可惜我之前没有看到。。。要 求是用一个每次读4KB内容的方法定义一个类,并在其中实现一个可以读任意长度内容的方法,比如读1个字节,或者读1个GB的字节等。需要读取的长度是第 二个方法的输入参数。

领英的第一轮是在一个周五进行的,在胆战心惊的度过一个周末后的周一就收到好消息,可以进入onsite轮啦。脸书的第一轮也是在一个周五,在又一 次胆战心惊的度过一个周末之后的周三,收到消息说可以进入下一轮了。于是我再一次非常勇敢地把两家的onsite安排在了相邻的两周的周五。

onsite:

领英的onsite不得不说是非常的变态啊,早上9点半开始一直到晚上5点半才出来,除了中午吃饭一小时,就一直老老实实地呆在同一间小房间里被各 种人蹂躏。当然,吃饭的那一个小时也没闲着,有一个比较友善的人一直问我一些相对这一天的问题来说非常“友善”的问题。。。onsite的每一轮都是一个 小时,每一轮都有两个人来面,一轮完了马上就是下一轮,可以溜出去上个厕所作唯一的休息。。。所以除开吃饭轮一共是六轮面试,三轮系统设计,两轮 coding,一轮行为问题,直接把人往死里轮的节奏。

第一轮一上来是行为问题,把我简历上的边边角角都问的非常仔细,包括我为什么做,怎么做,如果再来一次会怎么改进,将来有什么计划,甚至还来了一个场景题。。。这在以技术见长的公司里面还是比较少见的

第二轮是一个系统设计,上来先问了三个跟图有关的关联度问题的解法,比如如何判断两个人是不是同一个人的好友之类的。然后问复杂度,然后改进,一直 改进到两位面试官们满意,这是已经过去好久了。接着又问如何扩展到多个机器,如何划分这个图的信息,等等。乱答之,完全是混过去。事后得知面试官也觉得我 这部分答得不太好,但是一开始的解题还是可以的。基于我的经验不够,这样的表现还算是可以谅解。

第三轮吃饭,略。

第四轮coding,LC的原题两题,秒杀咯,到此终于略微舒了一口气,也为下一轮被虐到渣也不剩埋下了伏笔。。。写完之后有稍微讨论了一下复杂度和扩展到多个机器就放我过了。

第五轮系统设计,跟内存有关的一个设计。。。内存。。。不可以用已有的任何STL容器,因为这些容器需要分配多少内存空间是不太确定的,而且分配的 内存地址也很可能不连续,所以要自己设计一个用且只用给定大小内存的信息读写系统。。。当然,内存的声明,使用,回收,寻址都要自己来设计啦。。。一上来 毫无头绪,面试官大人也不屑于给我提点,只能挤牙膏一般这边挤一点,那边挤一点,顺便观察人家脸色,看到对路就继续往下猜,居然最后也七七八八混了个大概 样子出来,不过卡在了寻址那里。面试官大人高抬贵手放我一马,接着问了问同步和锁的问题就算结束了。这里必须感谢国人面试官大哥,虽然我回答的不咋滴,但 是他尽量挑我的闪光点说,还是给了一个积极的评价。

第六轮coding,LC的原题两题,继续秒之,找了一点自信回来。

第七轮系统设计,两个面试官里面有一个好像以前是谷歌的大牛,所以一上来就是讨论TCP的滑动窗口。我搜肠刮肚把以前还给老师的知识都一一抢回来才勉强通过,接着有讨论如何用这个滑动窗口实现可靠的多播,最后还问怎么用这玩意儿实现事务一致性。。。又被玩残了。。。

七轮结束之后,我咬着牙用毅力把自己残破的身心拖回了车里,修整了好一会儿才终于攒足了开回家的力气。。。

 

一周之后的周五我又准时来到了脸书的onsite战场。脸书相比领英好了不少,才四轮45分钟的面试。两轮coding,一轮系统设计,一轮行为问题加简单coding。

第一轮,系统设计,不过这次的设计比较简单,是一个网站系统的设计,讲讲基础架构,搞搞分表,哈希,索引,负载均衡啥的关键字忽悠,然后过一过大致工作流程就算过关啦。还稍微比较了正索引和逆索引的优劣。

第二轮,coding,与LC的原题很类似的一题,不幸的是我想偏了,其实挺简单的,结果花了好长时间,不过最终还是搞出来了。算复杂度也是算不出来,在一顿提醒之后终于是搞了出来。唉,不是科班出身理论方面就是比较弱啊。。。

中间和HR吃饭,略。

第三轮,行为问题,和领英差不多,为啥来脸书,为啥要离开原公司,之前干了啥,有啥比较自豪的项目,等等。最后来了一个coding,实在比较简单,略过。

第四轮,coding,LC的原题两题,外加一个引申题,算是三题,继续秒之。稍微问了下复杂度。

四轮之后,我就神清气爽的回家了。被领英暴虐之后果然被虐能力有了极大的提高,心理素质也好了不少。哦,还有一个因素就是在去脸书onsite之前的一天,领英的HR正好告诉我面试结果比较积极,很有希望拿offer,所以去脸书面试的时候就更加放松了,嘿嘿。

面试小节:

面试心得这个东西每个人都不一样,要说到底是什么因素使一个人能够拿到offer,我觉得也是没有一定答案的。但是其中非常重要的一点肯定是要让面 试官爽啊。到不一定是为了让他给自己写个好评啥的,而是毕竟面试官找的是一个将来可能的同事,就算这个被面试的人超级牛逼,但是说话啊动作啊什么的让人很 不爽,那面试官也肯定非常不希望和这样的人做同事,对吧?接下来我个人觉得很重要的一点就是基本功了,有时也被称之为感觉或者直觉。在面试的时候通常人都 会比较紧张,一紧张就容易出错,平时想得到的东西也会忘记,这个时候基本功扎实就会比较占便宜,跟着感觉走,慢慢可能正确的思路就来了。基本功的还有另一 个方面就是写干净正确的代码。虽然我的理论基本功不是很扎实,还好通过不断地练习,coding的基本功还可以,写出来的代码bug比较少,也比较整洁, 我觉得这一点也是很关键的。最后就是自信了,哪怕被虐成渣,也要有自信,要抱着“不是爷不行,只是爷在这一块领域不太懂,给爷一些时间,说不定比你还厉害 呢”的阿Q精神,千万不能怂了。

 

大致就是这样了。最后我还是选择了去领英,一来做的东西听上去更NB,二来感觉公司潜力更大,三来给的薪水也多了不少。至于薪水方面,由于我之前是 传统软件行业,而领英属于是互联网企业,工资标准提高了不少,算上股票奖金啥的,这一跳几乎涨了70%,真是乐开了花儿。等我去领英正式入职之后再来向大 家报告在领英工作是什么样的体验。



相关阅读 :
领英、脸书面试及onsite总结(北美)
谷歌、脸书、苹果、阿里巴巴、腾讯的面试题,你能做对几道?
js前端面试题及答案整理(一)
2015腾讯校招移动开发面试经验及试题
2015腾讯校园招聘面试经验及试题-后台开发工程师
2015百度校园招聘研发类面试经验及试题
2015 IBM校招研发笔试题及面试经验
去哪儿网面试题目及三面面经-研发工程师
外企经典面试笔试题目及答案汇总
国美智力面试、笔试题
前端开发面试问题及答案整理
前端开发面试问题及答案整理
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务