上海携程面试
在上次电话面试之后,第二天HR说需要到公司再继续面试一下,最后协商到10月20号(周一)下午13:30来进行现场面试。于是我马上定了从深圳到上海的来回机票,先说结论吧:*我就是花了2K大洋来找刺激的,弄得身心具疲*。
不过幸好年轻,有的是精力,虽然疲惫,也很快恢复了,否则今晚也不会加班到10点了。现在在写这个记录已经有一大部分都记不真切了(本来是准备不写的,后面想了想,失败的经历也写一写好了,就当是记录下自己的成长),就把剩下的还能记得的部分写出来吧。
我是13:20到的携程大厦,过了5分钟,HR把我带进去给了一个调查表(填一些基本信息)和一套笔试题。那套笔试题的title是:大数据开发笔试题 ,严格的说,我笔试题一道都没有做出来。
笔试
笔试题一共分为两个部分,第一部分是SQL的:
- 优化数据查询的方法,一个20亿数据的表,和一个200条数据的表,对于一些操作有哪些优化方法?索引?分页?
- 另外两道题都是直接写SQL语句的题,需要联合两张表以及使用计数和根据条件提取前n条数据。
第二部分是MapReduce的题,差不多3道题的样子,都是给一个场景或者需求,然后问怎么使用map/reduce来实现。
笔试完了之后就是面试了。
面试
一共面试了两轮,都是技术面试,而且两轮的技术面试的难度也没有太大差别。
一面
第一轮的面试官就是上周电话面试过我的,然后他看我的笔试题也都是不会的样子,所以就说聊一聊1。
他现实问了几个数据库相关的问题,和数据库的设计相关,包括数据库的存储、网络传输、备份等等,我虽然回答了,给了思路,但是我目前不擅长这个,所以是没有感觉和把握答得怎么样,而且从他的表情上也是读不出来他对我回答的看法的。从结果来看,他对我是不满意的,现在我也只能这样认为了。
后面他又问了我一个问题,算是智力题、算法题吧:有10个人,按从矮到高的顺序排列,每个人都戴一顶帽子,帽子一共有3中颜色,每个颜色的数量足够多,后面的人可以看到前面所有人的帽子的颜色,然后有人挨个问他们自己帽子的颜色,每个人只能说一次,并且一个人的回答,其他人都能听到,问:怎么可以使他们尽可能多的猜对帽子的颜色? 我当时的给的答案是,让后面的人说前面的人的帽子的颜色,然后前一个人就知道了自己的颜色,再说出来,这样至少可以保证有5个人是对的。这道题的关键在于,要设计一个方法,可以最大化每个人说对自己的颜色,这个的重点在于,说出自己的颜色的同时要给前一个人一些信息,使前一个人能够知道自己的颜色。比如,自己和前一个人颜色相同,就说出自己的颜色,如果自己和前一个人颜色不同,就说不是XX色,不是XX色,这样说对了自己的,又给了前一个人提示,因为第一个不是XX色就是前一个人的颜色。
[ 2014.10.25 update:
今天看《Hadoop权威指南》的时候又想起来一个当时面试问题:有200个酒店和2万个景点(或者这两个数据再提升几个数据量级,当时的具体数值记不清了),每个酒店和景点都是有坐标的,设计一种方法来求每个酒店附近有哪些景点?
]
二面
第二个面试官都没有进行自我介绍,就开始问我问题了,第一个面试说了他自己姓柳。第二个面试官拿着我的简历就开始问了2:
- 在去哪儿网抓去机票信息的,大数据量的处理问题和爬取问题。
- 几个java的问题:1.ava的abstruct 和 interface区别,interface里面能不能有成员变量,abstruct里面能不能有,我都回答的不确定;2. java的class的内部class的问题,其中一个内部的class能不能访问外层class的private变量,这些问题我都回答的没有底气。
- 用java写一个单例模式,我用伪代码+锁的方式边说边写的(好像面试官也不怎么满意)。
- 一个动态规划的题,动态规划属于学了忘,忘了又学的水平…….
后面面试官说去问问还有没有人需要面试你的,过了5分钟回来说今天的面试就到这里,然后把我送下楼去,下楼的时候他问了一句,你现在是在深圳吗,我说是,明天早上的飞机回深圳,面试官的嘴角浅浅一笑,差不多是说“你个煞笔,大老远的跑过来还这么搓”的意思…….唉,然后我就灰溜溜的走了。
2014.10.23 00:26
Footnotes:
1 我这样认为,他在知道我没做过数据这方面的,然后还愿意来面试我,说明是想给我机会,愿意培养我一下。但是从结果来看,我这样想是错的,或者他聊过之后觉得我连培养的必要都没有,反正是伤心。
2 我猜第一个面试官没有给第二个面试官说清楚我的情况,可能第二个面试官就直接把我当成有会的人来问的,觉得会的东西都这么挫,那说明你是真挫吖,所以就悲剧了吧。