阿里九面,数据研发面经!
说了九次面试感觉我是大神,拿了SP之类,其实并不是,内情就是内推转为了校招,内推五次面试,校招四次面试,在加校招的笔试。本帖子适用于跨专业的人士。sp勿喷,有错别字,勿喷,只是想写个面试经验给以后的人士。
我投递是数据岗位,对于之前我主要搞机器人的我来讲,基本处于什么的都不会的状态,做数据的一般都知道,需要用什么 比如odps,hadoop,flink等等工具,然后做业务需要范式建模,纬度建模等等。我可以真实的告诉大家,之前这些我并不是很熟悉的。以前摸到的数据也只是阿里巴巴数据天池比赛。下面一一叙述开来。
7月中旬内推,七月中旬我还在调试机器人。
第一次面试-电话面试
第一次面试是在内推没过几天就开始了,是个女主管,说话比较亲和,所以我不算紧张,在罗列之前自己做的机器人事情后,他就是随便问了问,主要他也不懂。就问我什么三范式,我懵逼,什么是纬度建模,我继续懵逼。一共提了很多问题(在文章最后有总结)总之,我回答上来的就寥寥无几。电话持续了1个小时,对方的态度很温和,所以气氛不是很尴尬 。
第二次面试-电话面试
本来以为一面就跪掉了,但是内心还是抱有幻想的。所以啥也没想,就总结上个面试官的问题,我就各种查资料,自己买书,几乎是一天一本的看。当时蛮辛苦的,主要在于新知识,当天必须理解。比如先从数据库这本书开始看起,学到1NF,2NF,3NF就比较晦涩。还有其他等等。当然在一面基础上我学了,数据库原理,mysql,数据仓库,学习大概一个周的时间,一个周也是阿里面试的周期,数据仓库这本书,我说实话没看懂。只是有个印象是事实表的设计,如果从业务出发做这个表格。
好言归正传,面试的时候,依据先自我介绍,在上项目介绍,然后提问。这一面应该是压力面试,问我C++相关,我的比较自信,回答的很好,但是问道数据的,我开始磕磕巴巴,但是总体是能说出来的。压力面试真的不爽,主要我对这一块也不熟悉,害怕又上次一样,什么都问,我啥也回答不上来。幸好,他多数问的都是算法和编程问题,比如C++多态性,动态规划怎么做的等等问题。
第三次面试-电话面试
经过第二次面试,我觉得自己还是有救的,依旧是每天坚持的学下去,时间也是一周的时间,虽然是一周,但是我还有其他项目缠身,基本每天晚上和夜里学习。上次学了很多基础的课程,但是数据仓库并不算是,我开始学习odps工具箱,我知道这个很重要,但是没学习过。
尤其对里面的UDF,MapReduce进行了学习,没有项目可谈,只是学习了关于一些实例,并自己做了实验,因为自己linux基础功底比较好,所以搭建环境和调试还是很快的。这里虽然看了ODPS但是依据是半径八两。转入主题,这次面试正常面试,还是依旧套路,自我介绍,项目介绍,提问题。
前两个忽略,下面的面试也忽略。主要提问题,他问了一部分关于我之前的项目,然后就很巧!真的很巧就问了ODPS的问题,我基本都答上来了,但是他说了一句 ,懂是懂,就是没有项目经验。我一脸尴尬。还有问了关于维度表设计,我不会。但是我记住了。
第四次面试 视频面试
这次我在出差,是在深圳面试的,自己在一个很小的房间里。先说说怎么学啥,根据上次经验,我应该欠缺关于业务的知识,还有hadoop的知识。这次时间比较久,后来听说是想把我回绝的,但是又觉得在试试,(所以,机会一定要认真面对)。
我这次两周内,学了一本书叫阿里巴巴数据大实践,还有Hadoop一本厚厚的书,先说业务方面的,我之前看的那本数据仓库并不是很懂,但是阿里写的这本书,真的挺好的,到面试完毕,我几乎读了不下于30多遍,每一次都有新的认识,(我很爱看书,不爱看视频,看电脑学习)。里面讲解的很清晰如何做维度,做事实。然后各种分类。看完这本书,我又复习了关于数据仓库书本,本来很难进行的一本书,我坚持看了一半。这一半也是看了很多遍,后半部分是因为很多实例所以我并没有看。
业务上面我没有项目经验,所以我就总结关于淘宝购买物品过程涉及的数据,并绘制了一系列的图纸以及文字描述,算是基本把这本书的核心全部摘出来了。Hadoop是apache旗下开源数据框架,分布式系统,我不会。我真的不会,然后花了一夜的时间看了一本关于分布式系统的书。然后开始攻克Hadoop。虽然开源但是用的是java写的,我java功底很差。但是我爱看源码,所以先把hadoop书籍前面的部分看完,我就开始阅读源码,阅读并不是一个个看,而是主要看框架,看实现方式,看信息传输等等。其实这里蛮浪费时间的,但是自己觉得既然学了,就要认真的学下去,就要搞懂。基本源码看了一天基本都懂了,当然不是非常了解。
Hadoop周围还有很多其他工具,比如 pig hbase hive 等等。这些源码没有看,既然是工具,所以没有主要针对。但是对于每个工具,我几乎每个工具买一本书,比如HIVE 我买了一本hive的书籍。学习会用,学习内部原理,学习一些优缺点就ok,其他的工具都一样。
其实一下子看了那么多,就是为了这次面试,这次视频面试很重要,不仅看你说啥,还要看你的谈吐能力,以及你的应变能力,和电话面试很不同。这次的面试官很和蔼,让我自我介绍,和介绍项目,他先说了你介绍你做过的项目把 ,我们俩大概聊了半小时关于之前的项目,里面夹杂问题。
后他就问我,“你说你学了数据研发的东西,你说说你学了啥”。然后我就侃侃而谈,并没有很害怕的感觉,就下单这个业务说了一遍,从购买 下单 发货 确认,这一系列的业务,从事务事实表,周期快照表,到累计快照表等等说了很久,他似乎也感觉到我会了。这次面试主要的问题就是业务如何做,我算是勉强能回答上来了,当然其他比如范式建模和维度建模都有啥区别,我也早已理解记于心。并且这次面试,面试官还主动加了我的微信,这时候我第一次感觉自己还有希望。
第五次面试-电话面试
第五次面试是8月20左右,距离内推开始1个月了,但是过了很久都没有通话,但是我并没放弃,我觉得自己还有救,就开始攻克关于hadoop数据体系,大约3-4天时间,我慢慢清晰了数据体系的更替,比如hadoop spark flink都属于第几代,并购买了相关的书籍(我爱看书,只是学习习惯而已),但是flink太前了,还没有书可以看。
这段时间主要强化去学习数据架构体系,并且不断复习之前学的,学的方法是啥,因人而异,用什么工具去学也是因人而异,但是遗忘曲线大家都是一样的,所以还不停的照顾之前看过的,比如什么叫做传递依赖,我后来还需要不停的去翻看,记住 ,千万不要硬背,没啥意思,一定要理解,没有业务场景,就自己从网上找例子。数据业务相关很多都是实例总结出来的。Spark使用的是scala语言,我并不会,所以对于spark我只是看了看架构,一些特征之类。
面试的时候,气氛比较沉闷,这次并不是很好,感觉他并不想要我了,所以回答虽然都答上来了,但是气氛总是一般般,大约持续不到30分钟,就挂了,这时候我感觉到自己很危机了。果不其然,我收到了笔试通知。
笔试
笔试通知意味我转为了校招了,大家都明白笔试多么折磨人,尤其这样大公司的笔试题目,很难,考的东西很全。但是我想了,算了还是坚持一下把 ,不要抱怨了,本身自己不是这个专业的。认真做一做。一般大家做题都是一起做,这样会好一些,这一次是我自己做的,很神奇我的两个编程都做出来了,但是选择题烂的都不行,我根本没时间算一些数据,或者说自己脑子太笨了,只会靠笨方法学,然后就开始忐忑的等待成绩了。
第六次面试 – 电话面试
第七次面试 – 视频面试
这两次一起写了,主要每次面试都一样了,但是每次我都是认真的回答面试官的每一个问题,不会的我会主动承认自己不会。我不想说谎,虽然很多人说去阿里面试,一定要吹出来自己多牛逼,但是我想,如果是这样的进去的公司,对于我来讲我是不愿意去的,不愿意承认自己短板,即使自己去了那有啥用呢?所以我建议不要附和面试官,做自己最好,当然如果你了解面试官是做什么的,是有好的。这样的你回答方向有个方向,但是,你上哪知道??
第八次面试-HR视频面试
最后一次视频面试是HR面试,这次HR面试基本和大家一样的,问一些关于自己价值观的问题,我建议大家还是好好回答这个问题,假如你的价值观和公司的价值观不一致的话,你还是不要去为好,随口更改自己价值观的人去了公司也是会被辞退的。HR不是不重要,而是很重要。除了价值观问题,还问了我一些其他的问题 比如家里情况,学习情况之类。
第九面试 –HR电话面试
这是最后一次了,这次的电话问了我一些她有疑问的地方。没啥了。到现在是九月10号了,持续了两个月了。
自我总结
不要放弃,任何时候都要静心想自己还不会什么,自己还欠缺什么,不管是技术还是人脉等等,不要老想过不过的问题,想这个问题一点用没有,因为你面过的事情无法改变,你能做的就是如果下次打仗来了,你要做好准备,不要被打死。 在每一次的面试都要总结,看看自己哪些不会,要及时更正,尤其是内推,内推是部门招聘,所以面试官会不自然的透露关于工作是啥,你一定要好好听。这样记住他们用的工具,以及业务都是什么,这样的话,你接下看啥你就知道了。 有个自己的学习的方式,我的方式是看书,在不断学习的过程,还要总结。我这个算是跨专业,只是用业余时间,不到两个月时间我看了近20本专业书,前期看很晦涩,后来就好了很多。 找工作确实参杂了很多偶然和幸运在里面,但是你一点不努力,不用劲。老铁,再大的幸运也不会要了你。 价值观一定要审核,即自己审核自己,不要盲目去找,有些人喜欢广撒网,其实这样并不是很好,你先搞清楚自己以后要干啥,去了工作为了啥。然后找。如果这个都搞不清楚,你去了也是一身累,大家都知道互联网工作都是很累的。如果没有自我内心追求,很难有人说自己很开心的。
问题总结(主要说明关于数据研发职位的问题)
维度建模和范式建模区别,并举业务例子 OLAP OLTP解释 三范式是什么,举例子 数据中的事务是什么,mysql中怎么实现的 C++多态性是如何理解,和java怎么区分 说排序的种类,并且告诉我他们为什么这么区分。以及时间复杂度的计算,怎么计算出来的 说一下动态规划的过程 操作系统中的进程调度算法说几个 Hbase原理 Mapreduce原理 UDF分类以及原理 数据倾斜原因以及如何预防 hive和mysql不同 Hadoop架构简单介绍 Spark和hadoop之间的区别。 Pig是什么,说一说 维度设计过程,事实设计过程 什么叫极限存储设计 维度设计中有整合和拆分,有哪些方法,并详细说明 事实设计分几种,每一种都是如何在业务中使用。 SQL内部原理解释 B2B业务架构中 公共层有什么作用。 如何理解粒度这个单词
阿里面试总结
阿里内推是属于最早的,但是也是要人很少的。 如果你牛逼,基本几天就可以告诉你,你通过了,如果你是个大佬,那么前面还有更高级的面试你,当然和你迎来的也是sp。 内推过程基本是一周一次,一共五次,3次技术面试,1次交叉面试,1次HR面试。基本你能接收到HR面试说明你有戏。 阿里巴巴官网的更新基本只能在9月下旬确定定论。当然可能因为应聘人数太多了,对于大家来说,都不知道自己啥情况,有些好一些,先提前告诉你,你通过了,(俗称口头offer),基本是不会变化的。 由内推转为校招,不要害怕自己机会没了,说明人家还想要你,只不过让你进入校招,在校招中,你的优势是很大的,有些内推是直接回绝的。 阿里的笔试比较难,这也是很正常的,没有扎实的基本功,谁也不想要你。
增加部分:我看过的数据书籍
数据库 以前的教科书 Oracle 从入门到精通 高性能MySQL MySQL数据库应用从入门到精通 Spark快速大数据分析 Hadoop权威指南 Hive编程指南 Spark机器学习 大数据应用与技术丛书·数据仓库工具箱 机器学习实战 大数据之路:阿里巴巴大数据实践 智能时代 吴军的 极力推荐 SQL入门经典 数据挖掘 机器学习实战
看书一回事,但是比如像一些工具如hadoop 还是上手操作为主,看源码看架构比较重要,单纯的看书记忆很差的 。
业务的就自己好好分析下,比如 9 和 11 。要多看他们的对于特定业务的分析,并总结自己的观点 。
- EOF -