面试杂谈之个人秋招求职之路

昨天正式确认了百度的offer,宣告着个人秋招正式结束了,虽然个人秋招还算是比较顺利,没有他们所说的那样痛苦不堪,可是我仍是想把我面试过程当中经历的面试题目共享出来,供你们参考,秋招面试的难度总体上要比实习略难一些,不过只要认真准备的话,我以为仍是很容易拿到心仪的offer的,下面我将给出我秋招面试过程当中经历的全部面试过程,仅供参考。html

美团点评篇

后台开发工程师,Java开发。linux

美团点评是实习转正,总体难度并不难,下午三点安排在美团B座7楼面试厅进行面试的,一个酷酷的程序员小哥哥面试的,首先介绍的是我实习这几个月作的东西,以及遇到的一些困难。在面试过程当中,会对你实习中遇到的困难和挑战各类深问,建议这个题型仍是要多准备准备。画了项目的架构图,以及实现的技术的一些细节,基础也问了一些,好比计算机网络,三次握手,TCP拥塞控制和流量控制,数据库的索引机制等,最后出了一道算法题,三数之和,这是LeetCode的原题,能够参考个人这篇博客:程序员

http://www.javashuo.com/article/p-gszzcqdt-gp.html面试

百度篇

数据挖掘和机器学习研发工程师,大数据架构方向。redis

百度是7月31号面试的,印象比较深,当时还在美团实习,内推了百度提早批,就通知31号下午去百度科技园面试,当时也没想着必定能够过,就打算去试试,因而中午请假过去了。在路上还在看面试相关资料,由于以前确实没复习,就想着听天由命吧。到了百度,去早了,就在楼下待了一个小时,两点才被叫进去进行面试,面试地点仍是一个不错的会议室,一共进行了三面。算法

我遇到的百度的套路是上来先自我介绍,大概说一下我的状况,面试官就问,你数据结构和算法怎么样,我说还不错,而后直接开始作题,印象里一下作了四道算法题,都是在纸上手撕代码,是算法都作出来以后才进行的后面的面试,我在想若是我算法没作好,极可能就谢谢再见了。四道算法题目不是很难,主要仍是考察思惟逻辑和基础吧。数据库

快速排序,基于单链表实现(传统的先后指针的方式实现起来比较困难)
给定无序数组,查找中位数(基于堆排序)
扑克牌第一张放桌子,第二张放到最后,第三张放桌子,第四张放在最后,以此类推,求最后桌子上上1到k,还原原来的扑克牌什么样
彻底背包问题

 

第一题能够参考个人这篇博客:编程

http://www.javashuo.com/article/p-ajbizfki-cg.html数组

第二题的解题思路是:缓存

首先将数组的前(n+1)/2个元素创建一个小顶堆。

而后,对于下一个元素,和堆顶的元素比较,若是小于等于,丢弃之,接着看下一个元素。若是大于,则用该元素取代堆顶,再调整堆,接着看下一个元素。重复这个步骤,直到数组为空。

当数组都遍历完了,那么,堆顶的元素便是中位数。

思路有了,实现起来仍是有必定复杂度的,要多注意。

第三题第四题都是常见题,第四题能够参考个人博客:

http://www.javashuo.com/article/p-wwzkecyj-bv.html

剩下的就是考察一些常见知识点了,包括基础知识和框架的,大体以下:

介绍一下kafka分区,内部原理
介绍实习项目,具体
Hashmap原理
设计一种存储数据结构,使得相似于pandas那种取数据
介绍大数据框架体系,流式处理流程
流式处理流程
装饰器模式,接口和抽象类区别如何设计
maven打包流程,如何打出相似tomcat的数据结构
说项目和项目难点
介绍百度信息流推荐
本身最大的优点
遇到哈希冲突怎么办
NLP相关知识,智能问答
推荐算法介绍,协同过滤

 

百度一面二面三面是在一块儿面的,面完就直接给我要了身份证号,说应该没问题,哈哈,就这样肯定了百度offer,仍是挺幸运的。

映客直播篇

数据研发工程师,离线大数据处理。

映客直播是一个中午面试的,吃了饭,就顺便过去了,由于当时在美团实习,而映客就在望京附近,特别近,骑自行车过去的。映客没有本身的楼,是一个大厦里面,进去还得登记。上去了感受里面装修还不错,有个很大的猫头鹰,等了一会,面试官就来了,刚来感受人挺严肃,聊了一会感受我会的挺多,就跟我扯了点别的,哈哈~问的东西不是很难,比较基础,固然也手撕代码了。

本身实现多线程MQ,用数组实现队列,保障数据安全性加锁
说一下mapreduce的shuffle机制,map阶段是快排,reduce阶段是归并排序
说说产生数据倾斜怎么办,优化措施(重写partition,加上负载因子,再次哈希)
什么状况下会产生数据倾斜,好比group by,join,count(distinct)等
写SQL语句,左链接关联查询
写500亿top 10问题,写hive
问我会不会执行到order by语句
线程有哪几种状态

 

数据倾斜问的不少,你们能够总结一下,参考这篇博客:

http://www.javashuo.com/article/p-glwnjmcp-gh.html

就面了一面,面试官对个人评价还不错,面试完就让我过去先实习,我说实在抱歉,还在美团呢,并且得先回学校作毕设,他说他们比较缺人,但愿我快点过来,我说实在抱歉,他们就说没事,等12月份还能够再聊聊。

阿里巴巴篇

数据研发工程师,实时计算。

仍是想说,阿里真的面试时间太长了,总共得一个月,算上加面,经历了六面。除了一面是现场,剩下的都是远程电话面试,虽然中间拉了很长时间,不过好在最后也拿到了阿里offer。

当时也是八月份,阿里北京这边组织了一个夏令营,由于也在望京,并且是美团旁边,我就过去参加了,上午扯了好多阿里有多牛逼,下午就开始面试了,这只是一面,估计是为了挑选候选人吧。我是最后过去的,我去的时候都没多少人了,而后跟个人一面面试官大概谈了谈,主要是了解一下,面试官人很好,后面也帮助了我不少,很感激他。主要问的是实习经历和项目经历,而后问了下对大数据体系的见解,一面仍是很简单的。

从二面开始,就变得难了,问的开始愈来愈深了,各类基础知识问的愈来愈多,果真符合阿里的做风,阿里就是特别重视基础,并且各类知识点要求也很高。

算法最长重复子串
说一下成长最快的收获最大的项目
分布式缓存的负载均衡
session共享
一致性哈希算法
离线hadoop原理,写文件流程,何时都返回成功,说项目
实时storm和flink原理,编程模型,说项目
Top k解决方案
如何数据去重,set在内存宕机怎么办
你了解的hbase按照列存储和关系数据库行存储区别
并发方案,针对优酷世界杯
lock和synchronized区别
两个线程交替打印字符串
实现NIO模型,怎么设计
如何涉及分布式可靠的消息队列,怎么保障
职业规划

介绍实习项目,mafka如何保障消息不丢失,发送一次
介绍离线大数据项目,数据处理用hive的场景
介绍课题项目,redis应用场景,存储方案
Storm编程模型
Python2和3的区别,多线程咋回事
Hive如何防止数据倾斜,对Hive的理解
MapReduce,map阶段,reduce阶段,combiner阶段
Yarn阶段介绍
集中在同一个reduce,分桶
Hashmap,Hashtable,concurrenthashmap
数据库建模
Hive分组取top k请求
如何处理url
数据仓库
数据库索引

 

建议要是面试阿里的话,先要把基础知识都要认真过一遍,否则很容易被虐,哈哈,阿里算法也会考察,不过感受没有百度头条那么多,相反框架原理啥的,Java基础啥的反而问的比其余公司更深。

猿辅导篇

服务端开发工程师,Java方向。

这个公司是听同窗说的,貌似给钱不少,就去试了一下,感受这个公司特别重视算法。人文关怀很棒,去了有免费的零食和水果,你们坐在一块儿吃东西,叫到谁谁就去面试,一共经历了两面。第一面上去大概自我介绍完,就直接写算法,由于我写的比较快,就多写了一道题,当时没用递归的方式,结果面试官看个人代码看了很久,说写的太复杂,哈哈~二面面试官是经理级别的,说普通话不标准,感受不太懂大数据,他让我介绍项目,我说了个大数据的项目,感受兴趣不大。后来就全程在写一道ringbuffer的题目,猿辅导的面试题目以下:

自我介绍,说一下项目
JVM问了一些,JVM模型啥的
HashMap原理,底层
线程池的内部实现原理
Top K问题
负载均衡问了一些
一增一减两个链表合并
最长回文子串
两个变量实现ringbuffer
Hadoop读写文件过程
最大问题和挑战

 

ringbuffer那道题是环形队列,即采用两个变量判断队列为空,判断队列为满。能够参考个人博客:

http://www.javashuo.com/article/p-svcfhgwe-ew.html

腾讯篇

后台研发工程师,C++和Java方向。

腾讯先是腾讯云,存储方向的部门面的,全程在问C++,我说明本身好久不用C++了,面试官开始问我不少基础,不过当我说到Java一些术语,面试官一脸懵逼,他说的一些术语,我也一脸懵逼,就这么尴尬了一个小时,哈哈,不过算法题和基础知识答得还不错。

字符串判断包含
判断一棵树是否是另外一个子树
大头传输和小头传输
三次握手,滑动窗口
epoll,select模型
TCP和UDP
Linux top和ps
操做日志的一些指令
红黑树
SortSet
进程通讯的方式,哪一种方式速度最快

 

后来部门转到了TEG,直播方向,此次是Java,全程很顺利,面试官的问题基本答得都不错。主要是Java相关的技术,包括JVM,还有hashmap原理,1.7和1.8的区别,字节移位,主要涉及一道bitmap的题目,能够参考这篇博客:

http://www.javashuo.com/article/p-romvzniz-cv.html

AiBee篇

算法工程师,机器学习方向。

AiBee是一个创业公司,主要是搞AI的,好像创始人是原百度的高管。当时看到群里有人内推,就过去了。可是感受面试安排的不合理,过去了以后,hr说面试官在开会,在那里等了一个多小时,面试官才来,都快中午了,就草草问了两道题目,就结束了,总体的面试体验不是很好,不知作别人什么感觉。

KMeans,手动实现算法
判断一个点是否是在三角形内部,写算法
查找含有某些关键字的进程,一块儿杀掉(linux指令)

 

宜信大数据创新中心篇

大数据研发工程师,分布式计算。

自我介绍,详细介绍项目,主要是美团实习项目,而后画项目架构图。

五道编程题目:

1.设计一个数据结构能够存储一组整型数,而且可以O(1)时间查找中位数和O(logN) add操做。

原本想的是采用map的结构,最后实际上是采用堆进行存储,在Java中能够看一下PriorityQueue,内部是采用堆进行实现的。

2.

中序遍历,存储根节点到每一个叶子节点的路径。

3.求平方根,两种方式。

# 输入:整数 n
# 输出:n 的平方根
# 精度 10^(-5),定义域:实数

(1)二分法

public static double sqrt(double t, Double precise) {
        double low = 0, high = t, middle, squre,
                prec = precise != null ? precise : 1e-7;
        if ( t < 0 ) {
            throw new RuntimeException("Negetive number cannot have a sqrt root.");
        }
        
        while ( high - low > prec ) {
            middle = ( low + high ) / 2;
            squre = middle * middle;
            
            if ( squre > t ) {
                high = middle;
            } else {
                low = middle;
            }
        }
        return ( low + high ) / 2;
    }

(2)牛顿迭代法

public static double sqrt_ ( double t, Double precise) {
        double x0 = t, x1, differ,
                prec = precise != null ? precise : 1e-7;
        
        while ( true ) {
            x1 = ( x0 * x0 + t ) / ( 2 * x0 );
            differ = x1 * x1 - t;
            
            if ( differ <= prec && differ >= -prec ) {
                return x1;
            }
            x0 = x1;
        }
    }

(4)两数之和为定值

参考:http://www.javashuo.com/article/p-gszzcqdt-gp.html

(5)遍历一遍用两个指针实现删除倒数第k个单链表节点

class Node{
    int val;
    Node next;
}

public void delete(Node head,int num){
    Node p1 = head;
    Node p2 = head;
    int index = 0;
    while(p1 != null){
        p1 = p1.next;
        index++;
        if(index > num){
            p2 = p2.next;
        }
    }
    if(p2.next == null){
        p2 = null;
    }else{
        p2.val = p2.next.val;
        p2.next = p2.next.next;
    }
}

三面过了几天,上来一样是介绍项目,自我介绍一系列,感受宜信的面试过程没有过于重视基础知识,主要仍是围绕算法展开,最后一样来了一道算法题,求若干个线段的最大重合个数,能够详见个人另外一篇博客:

https://www.cnblogs.com/DarrenChan/p/9688175.html 

宜信的面试比较注重算法,尤为是研发岗,按照同一个模式进行面试,具体到大数据开发仍是Java开发等,都是去了之后再进行分配,总体来看这个公司的面试仍是有必定难度,公司在互联网金融也有必定前途。

快手篇

大数据研发工程师,实时计算。

快手是有一个学长内推的,远程面试的,总体感受不是很难,感受快手最近如日中天,这个公司仍是不错的。有感兴趣的小伙伴能够考虑加入,快手比较重视基础,问的东西和阿里有点相似,整体来看仍是偏难的。

印象里面的面试题以下:

快排
SQL,统计次日从新登陆的人的个数(和第一天相比)
Hadoop原理
网络,操做系统常见题目
2.5亿个数全排序
项目,top k
JVM内存模型

华为篇

大数据研发工程师,方向随机。

由于以前实习过了华为,没有去,因此通知只须要参加一轮终面便可。由于本身被选入了华为的一个“领鹰计划”,最后签约的时候还给涨薪了,固然最后没有签华为,以为华为仍是不错的,但是我仍是想去互联网公司。华为面了一面,此次主要问了问项目,基础知识也问了一下,反正不难,跟聊天似的,华为校招看学历,看来国防科大的牌子仍是挺有用的,面试题想不起来了,总之,挺简单的,主要是聊为主,面试官人很好。

写在后面的话

有几个公司,笔试过了没有面试,好比头条,第四范式,搜狗,搜狐,主要是后面要准备答辩了,没有那么多时间了,否则仍是想好好准备,面试一下。

总之,秋招面试算是结束了,这一年,是我记忆深入的一年,经过面试,个人水平提升了不少,但愿去了公司还能好好努力,下一次,争取能够面试别人,嘿嘿~还没找到工做的小伙伴,加油哈!

相关文章
相关标签/搜索