豌豆荚C++ 面试经历(2011年9月)

匿名网友 匿名网友 发布于: 2016-02-25 00:00:00
阅读 151 收藏 0 点赞 0 评论 0

2011年写的面经,随便看看。

一面:一位很年轻的面试官,应该比我大不了一两岁。上来的题目基本上是C++的精髓问题,主要是考面向对象程序设计,包括字节对齐、虚函数的原理、函数指针,揉在一起考也还是有一定的难度。然后就是,编译器、链接器方面的东西。问了几道算法,有动态规划、有数学题。Linux网络编程,诸如select、poll、epoll等的原理和区别,各种排序算法的比较,stl中的sort是怎么实现的,C++ 11中引入的一些新特性, 各种池(pendingpool, connectpool, resourcepool)。然后开始问项目的事,集中问在百度干了哪些活,用了哪些库,遇到过哪些问题,怎么解决的。然后他开始介绍豌豆荚。

二面:这位哥们很可能是学通信的,先是一堆计算机知识,linux中的线程的同步原语,linux中的线程实现,C++模板元编程, 在linux中怎么看一个进程打开了哪些句柄(我真心不知道),怎么看一个进程泄露了多少内存(这个问题,我当时没答上,我就说如果用RAII思想的话,根本不会发生内存泄露和其他系统资源的泄露,然后就开始解释RAII)。 同样是几道算法题。其中一道,100亿个url,问另100W个url是否在这100亿个中,不让用分步式计算, 我觉得这个面的有点狠了,不过好在瞧过google黑板报,用布隆过滤器解决之。 后面就开始问我通信方面的知识,问我在通信领域主攻什么方向。我在正式找工作之前,我是最怕别人问我通信相关的东西,因为自己硕士期间做的项目实在是太偏了,与工作关系太远。不过经过上次一个经理面,我发现人家不怎么care做的具体是什么。所以我就从容的跟这位面试官聊起了高性能光探测器原理、设计、测量等方面,没想到的是,这位面试官对这个非常的感兴趣,一度站起来,趴在桌上和我讨论。

三面:来了一位微胖的帅哥,一看就知道功力深厚。一上来就是各种恶心的算法,好在还招架的住。后来问我数学学的怎么样,我是还行吧,这就上来了一道香喷喷的数学推理题:1条直线可以将一个平面最多切成两个部分,两条直线最多可以切成4份,3条直线最多可以切成7份,那么4条直线最多可以切成多少份,n条直线最多能切成多少部分,给出公式。 端上问题后,给了我三分钟,开始问,有思路否。哥呀,能人道一点不。我实际上是没有什么完善的想法,但不能不接招呀。我就说有,然后开始将问题重复一遍,在重复的过程加速思考,也就是在用笔在纸上重复他的问题的过程中,找到了思路,然后开始写,边写边完善,写的过程不断的做一些伪互动,让面试官感觉到我确实是在互动。最后给出了计算公式(n^2+n)/2+1。他也就笑了,后面又来了一些算法题,就算结束了。

四面:应该是一位经理,一上来就是一道C问题,坑呀,N多的坑,虽然很小心,但依然掉进去了。

程序如下:

void fun(char *p){

p = malloc(10);

}

问这个程序有哪些问题。

然后他在那个C程序的基础继续写,

char * a;

fun(a);

printf("%s",a);

问这个程序会输出什么,又有什么问题,怎么改。

当他写完,我才意识到前面掉坑里了,好在在后面的程序的指引下,迅速从坑里爬出来,又问了一些算法题。 后面主要就是谈豌豆荚的事,说刚刚拿到1000万美元的风险投资,然后现在加入会有期权,而且还不少,又问我工资方面的要求。然后介绍公司的前景、盈利模式、规划、企业文化等等。

五面:公司创始人,清华大学毕业,07年加入google,随后加入创新工场,主要是做产品,名字就不透露了。一开始,跟我聊百度的文化,google的文化,他的理想,公司的宗旨。后面扔出一个比较尖锐的问题,android算不算开源软件,我说不是,顶多算是一个免费软件,围绕这个话题,又聊了很久,聊到了GNU之父Richard stallman, Linux之父Linus Benedict Torvalds。然后又开始问,中国软件业的一些问题,讨论了一段时间盗版软件的问题。移动互联网领域目前的割据状况,大家都在抢占入口。当问到软件的价值时,他认为卖软件是一种很低级的商业模式,软件有着更多的更好的盈利模式,我就开始以各种科学仿真软件为例来反驳他的观点。 我问他对豌豆荚是怎么规划的,他说目前专心做技术,将产品做好,做到极致,暂不考虑盈利。后面说的很多东西,记不住了。

满意的地方:

很有诚意的面试,里头的人技术都不错,挺厉害的。

不满意的地方:

还好,正常的面试。

评论列表
文章目录