滴滴新锐2017实习生面试经历

面试是5月4日下午进行的,时隔数日,得闲记录一下当时面试的经历。有些地方可能不是特别全面。

滴滴新锐计划官网的申请条件是:超级学霸(专业前10%),竞赛大神(各类大赛大奖尽收囊中),学术达人(顶会Paper发到手软),实战高手(实习足迹遍布Google/MSRA等顶级科技公司)。

感觉好虚,但是还是投了试一下。

一面:

  1. 介绍一下分布式数据库
  2. 集群如何进行配置,机器如何进行管理
  3. 介绍项目中的系统,系统架构。主要聊了数据库系统的实现,包括sql的执行方式,表的存储方式。
  4. 非主键查询是如何进行的?
  5. 关系算子下压(比如filter是否下压数据存储服务器上)
  6. 分布式索引实现方案会带来哪些问题?当建立索引表的时候,出现了内存或者磁盘不足的情况,该怎么办?
  7. 介绍自己的工作
  8. mysql中非主键索引是怎么实现的?聊到了一些B+Tree的细节,有些忘记了,当时答得不好。面试官人非常不错,还跟我讲了一下B+Tree索引的内容。
  9. update的执行流程,更新服务器(UpdateServer)中的Memtable,操作链表太长会不会存在问题,效率太低?UpdateServer主备都要写入这行数据吗?(日志同步,并非都写)
  10. 团队合作,项目的生存期内git的分支如何进行管理?
  11. 算法题:有个街道上有n个店铺,每个店铺有一定数目的金额。小偷从街道的一端开始向另一端进行偷窃,并且不可以回头,也不可以偷窃连续的两家。问偷哪些店铺才能获得最多的偷窃金额?(当时也不太确定,就简单讲了一下自己的思路,用dp来解)
  12. redis或者memcache之类的系统有研究过吗?

总结:主要还是聊项目,然后在你介绍项目的过程中将一些基础知识穿插进来问你。突然而来的算法题也是一脸蒙蔽。问了将近40分钟,总体感觉还是可以的,面试官人很nice。等了一会就让二面了。

二面:

  1. 自我介绍
  2. 介绍自己做了哪些东西(介绍介绍着就变成白板编程了。。。囧)
  3. 给一个数组给你和一个target值,写个二分查找的程序,,数组是随机的(写了一个块排和一个二分查找)

总结:二面的面试官是一个做前端开发,所以问得也比较少。直接就带去三面了。

三面:

  三面的面试官是一个架构师,所以问的问题就比较强调横向对比了

  1. 自我介绍
  2. 分布式索引做出来的效果如何,你是怎么评估你们的方案的,有没有想过其他更好的方案
  3. CBase和HBase有什么区别吗?在搭建Hadoop的时候有没有遇到一些机器的问题?(机器问题?这个没回答出来,面试官也没问下去了)
  4. 除了HBase,其他的系统比如redis之类的有了解吗?通过方式了解的(估计滴滴里面用redis比较多,两个面试官都问到了)
  5. 海量数据排序问题
  6. 强调了课本中的知识对于做项目的重要性。介绍操作系统的文件系统的实现,Linux操作系统如何进行内存管理,问如何设计数据库,第三范式是什么?TCP中的滑动窗口起什么作用?

总结:三面的思维角度和一面的差距还是比较大的。当面试官问我,你们在做项目的时候,对方案的评估是如何做的?有没有去思考其他的方案。我感觉这样的问题就属于比较好的问题了,很能反映一个人的思维水平。所以平时做项目的过程中一定要积极地去思考这样的问题,只有如此,当被问到了才能回答的游刃有余。另外知识面也很重要,很多东西都需要了解,厚积薄发。

 

以上就是滴滴的面试的全部过程,总共面了接近2个小时。有很多小问题现在想不起来了,主要就是这些。说来就来的白板编程,其实题目还是比较简单的,但是,平时如果不稍微练习下的话,你会发现即使写出来了,白纸上也是乱七八糟的。

posted @ 2017-05-06 15:49  镜子里的人  阅读(1665)  评论(0编辑  收藏  举报