大数据开发实习面经
lz三本狗,大佬请绕行。昨天,去面试了北京微播易科技(一家计算广告公司)的大数据开发实习岗下面就聊一下当时的面试情况。
背景:由于很早受到牛客网的影响所以深知实习岗公司会更加看重一个学生的基础能力。再加上lz经常在得到App上面听吴军老师的《谷歌方法论》更加意识到了程序员之间的差别是量级上的差别。所以在平时的准备上面更加偏向于一些基础的知识与原理,虽然说面的是大数据的岗但是lz也只学了一个月只能够完成离线分析技术栈的的搭建与原理的讲解,在比较细微的地方就gg了。但庆幸的是微播易这家公司是注重基础的。
开始:前天下午正在宿舍的里面安逸的复习这突然接到了Boss直聘上的一条消息。
HR:“你的数据结构和算法学的怎么样?”
LZ:(由于基本上把左神那本代码面试指南的前400页练了一遍当然有些过难先放过了,过程比较痛苦谁练谁知道)“基本的排序,二叉树的各种遍历,简单的动态规划,链表的操作都能够编程实现”
HR:OK,你明天上午11:00来吧
虽然没有任何防备,但是这一次我想试试。
今天下午正式实习offer。
总结,虽然这不是大厂但是很注重基础的尤其是实习。大家加油。
#实习##面经##大数据开发工程师##微播易#
背景:由于很早受到牛客网的影响所以深知实习岗公司会更加看重一个学生的基础能力。再加上lz经常在得到App上面听吴军老师的《谷歌方法论》更加意识到了程序员之间的差别是量级上的差别。所以在平时的准备上面更加偏向于一些基础的知识与原理,虽然说面的是大数据的岗但是lz也只学了一个月只能够完成离线分析技术栈的的搭建与原理的讲解,在比较细微的地方就gg了。但庆幸的是微播易这家公司是注重基础的。
开始:前天下午正在宿舍的里面安逸的复习这突然接到了Boss直聘上的一条消息。
HR:“你的数据结构和算法学的怎么样?”
LZ:(由于基本上把左神那本代码面试指南的前400页练了一遍当然有些过难先放过了,过程比较痛苦谁练谁知道)“基本的排序,二叉树的各种遍历,简单的动态规划,链表的操作都能够编程实现”
HR:OK,你明天上午11:00来吧
虽然没有任何防备,但是这一次我想试试。
一轮面试
- 讲一下Java中的集合,从ArrayList一直讲到ConcurrentHashMap,其中包括底层数据结构,扩容,并发问题。lz也最后谈到了红黑树以及复杂度与并发中CAS算法。
- 讲一下你的JavaWEB项目,重点就提了一下Lucene与自己手写的皮尔逊相关系数的推荐算法,最后指出了推荐算法的复杂度为O(n^3)以及lz后期改进的基于SparkMLlib的ALS的推荐系统。但是面试官不是搞机器学习的所以我也没有给他串讲背后理论上的保障。(lz学的机器学习没有展现出来)。
- 手撕快排之后lz又谈到了工业界常用的三项切分算法,并且写出了复杂度可以降到O(N(H-1))其中H为香农提出的信息熵。谈笑风生一段。
- 前k大,好吧,是堆排。画图解释堆排,堆的构造下沉操作,这次没让写代码。谈笑风生一段。
- 基于大量数据的前k大,lz当时的反应这肯定得多线程+分布式。最后扯到了MR的思想归并排序。其实后来想了下赛道比马问题的模型解决这个问题更为合适。
- 问了一些比较杂的问题,谈笑风生一段,从安迪比尔定律聊到阿姆达尔法则。面试官起身激动的和我握手。
二轮面试
面试官长得略帅,是这里的数据开发总监。这时候已经开始吃午饭了,老哥很nice直接请我吃了公司的自助,谈笑风生之后进入正式的面试。
- 你给我讲讲数据库的索引。
- 首先说不同的存储引擎的索引是不同的。然后谈到了InnoBD与ISAM的区别。然后画图并且解释,然后谈到了复杂度然后谈到了索引与二叉搜索树与二分查找的关系。时间复杂度。最后谈到了HBase中实现高性能的LSM树。
- 然后谈到事务的实现方式MVCC,谈笑风生。
- 最后是索引的优化与失效,《高性能MySQL》中独立的列。
- 谈一下索引的页,我谈到了索引随机化产生的页分裂的问题。(其实这些知识都在《高性能MySQL中出现过》)。
HR面
谈笑风生。今天下午正式实习offer。
总结,虽然这不是大厂但是很注重基础的尤其是实习。大家加油。
#实习##面经##大数据开发工程师##微播易#