更新时间:2018-11-22 17:22作者:李一老师
刚放暑假时,就发现暑假好短,快七月下旬才开始放假,而BOSS的一句话也让暑假到处旅游的梦想破灭,于是整个暑期基本上都在实验室呆着,前期是在改 ANDROID程序,由于保密的原因,这事不能说太细,后来在帮一个单位写标书,主要是一个视频网站和一个在线商城,由于之前没有写标书的经验,所以写出 来可能不怎么专业,他们后来再找公司修改了一下,我看了修改后的标书,发现虽然内容差不太多,但是公司改出来的文笔要好很多,并且他们在原基础上进行了细 化,对一些细节部分还给出了图示,这个是我需要学习的,编程虽然重要,但是文笔也很重要,技多不压身吗。
在七月未的时候,收到百度给我发 的邮件,说让我有兴趣的话可以把简历发给他们,他们会在校招之前安排一次面试,由于是在校招之前的,所以不管结果如何都不会影响我的校招流程。想了想我下 学期也要找工作,这是一次比较好的实战机会,就给他们发简历了。但是一直没有收到回信,正当我以为被他们“放鸽子”的时候,就在8月28号下午5点左右, 百度给我打电话说安排我明天面试,想想29号也没什么事情,就答应了,然后她说面试信息会在随后通过邮件发给我,收到邮件后,发现面试时候是下午2点,这 个时间还可以,部门是推荐与个性化部,这个部门就一点都不了解了,于是请教了一些人,终于对这个部门有了一个比较清楚的理解。
由于时间比较紧张,也没有什么时间准备,就在上午看了一些基本数据结构之后就出发了。到达百度的时候离面试还经半小时,就坐在大厅里好好的休息了一会儿。到快面试的时候去前台叫她帮我叫人来面试,等了一会儿,就来人带我去面试了。
一面上来就是问我对哪门语言的最熟悉,我说现在应该是JAVA ,最近一直在用,然后他说他们部门只用C++和python,我说我对C++了解还可以,但是对python就不太熟悉了。他听说后也来了兴致,于是就问了许多C++相关的问题,包话C、C++的区别,C、C++内存分配的差异,C++多态的实现方法,C++虚函数与纯虚函数的实现方法,C++抽象类相关的问题等,虽然很久没用C++写程序了,但是两个月前左右看了一些C++的知识,所以这些问题还是答出来了。在这之后就开始是现实应用了:一个问题是在搜索MP3的时候是根据歌曲的权值排序的,但是会发现有这样排序后有很多歌手的歌在一起,影响了用户体验,用什么办法把这些排序后的歌曲变成没到两个歌手的歌在一起的情况下并且尽量保证是按权限有序的?这个问题上来就想了一个简单的算法,然后他让我分析算法复杂度,我一分析,擦,是O(n^2)的,然后问我有没有什么更好的方法,我又想了一会,然后他说去给我打杯水,面试官还是挺nice的,等他回来后,我又想了会,终于想出一个O(nlogn)的算法,他说还有优化的地方吗?想了半天没想出来,于是他就把他们使用的一个O(n) 的方法告诉我了,我一想,还真是,他们的方法很不错。再聊了一些小问题,再就是一个大的开放性问题了,如果让你组织一个团队,这个团队是向看小说的网友推 荐小说更新的,你会怎么做,你会需要哪些人,这些人分别是做什么,这个开放性问题中最重要的就是,你怎么保证向用户推荐的小说更新是他感兴趣的?你所有的 数据就是用户浏览记录。然后我答了大约用5个方向来判断用户对某小说是否感兴趣,百度面试这种题的策略是让你想,你想一个,如果他不了解的他就会深入问你,想完一个后再问你:还有吗?然后答一个后还会问你:还有吗?想不出来了就只好跟他说:没有了,暂时想到的就这些。一面到这就差不多结束了,时间大约是80分钟左右,然后他说让我先坐着,他马上去叫人来进行第二面。