阿里 数据研发 九面面经 内推转校招
阿里数据研发岗位九次面试+笔试
说了九次面试感觉我是大神,拿了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使用的是scalar语言,我并不会,所以对于spark我只是看了看架构,一些特征之类。
面试的时候,气氛比较沉闷,这次并不是很好,感觉他并不想要我了,所以回答虽然都答上来了,但是气氛总是一般般,大约持续不到30分钟,就挂了,这时候我感觉到自己很危机了。果不其然,我收到了笔试通知。
笔试
笔试通知意味我转为了校招了,大家都明白笔试多么折磨人,尤其这样大公司的笔试题目,很难,考的东西很全。但是我想了,算了还是坚持一下把 ,不要抱怨了,本身自己不是这个专业的。认真做一做。一般大家做题都是一起做,这样会好一些,这一次是我自己做的,很神奇我的两个编程都做出来了,但是选择题烂的都不行,我根本没时间算一些数据,或者说自己脑子太笨了,只会靠笨方法学,然后就开始忐忑的等待成绩了。
第六次面试 – 电话面试
第七次面试 – 视频面试
这两次一起写了,主要每次面试都一样了,但是每次我都是认真的回答面试官的每一个问题,不会的我会主动承认自己不会。我不想说谎,虽然很多人说去阿里面试,一定要吹出来自己多牛逼,但是我想,如果是这样的进去的公司,对于我来讲我是不愿意去的,不愿意承认自己短板,即使自己去了那有啥用呢?所以我建议不要附和面试官,做自己最好,当然如果你了解面试官是做什么的,是有好的。这样的你回答方向有个方向,但是,你上哪知道??
第八次面试-HR视频面试
最后一次视频面试是HR面试,这次HR面试基本和大家一样的,问一些关于自己价值观的问题,我建议大家还是好好回答这个问题,假如你的价值观和公司的价值观不一致的话,你还是不要去为好,随口更改自己价值观的人去了公司也是会被辞退的。HR不是不重要,而是很重要。除了价值观问题,还问了我一些其他的问题 比如家里情况,学习情况之类。
第九面试 –HR电话面试
这是最后一次了,这次的电话问了我一些她有疑问的地方。没啥了。到现在是九月10号了,持续了两个月了。
自我总结
1. 不要放弃,任何时候都要静心想自己还不会什么,自己还欠缺什么,不管是技术还是人脉等等,不要老想过不过的问题,想这个问题一点用没有,因为你面过的事情无法改变,你能做的就是如果下次打仗来了,你要做好准备,不要被打死。
2. 在每一次的面试都要总结,看看自己哪些不会,要及时更正,尤其是内推,内推是部门招聘,所以面试官会不自然的透露关于工作是啥,你一定要好好听。这样记住他们用的工具,以及业务都是什么,这样的话,你接下看啥你就知道了。
3. 有个自己的学习的方式,我的方式是看书,在不断学习的过程,还要总结。我这个算是跨专业,只是用业余时间,不到两个月时间我看了近20本专业书,前期看很晦涩,后来就好了很多。
4. 找工作确实参杂了很多偶然和幸运在里面,但是你一点不努力,不用劲。老铁,再大的幸运也不会要了你。
5. 价值观一定要审核,即自己审核自己,不要盲目去找,有些人喜欢广撒网,其实这样并不是很好,你先搞清楚自己以后要干啥,去了工作为了啥。然后找。如果这个都搞不清楚,你去了也是一身累,大家都知道互联网工作都是很累的。如果没有自我内心追求,很难有人说自己很开心的。
问题总结(主要说明关于数据研发职位的问题)
1. 维度建模和范式建模区别,并举业务例子
2. OLAP OLTP解释
3. 三范式是什么,举例子
4. 数据中的事务是什么,mysql中怎么实现的
5. C++多态性是如何理解,和java怎么区分
6. 说排序的种类,并且告诉我他们为什么这么区分。以及时间复杂度的计算,怎么计算出来的
7. 说一下动态规划的过程
8. 操作系统中的进程调度算法说几个
9. Hbase原理
10. Mapreduce原理
11. UDF分类以及原理
12. 数据倾斜原因以及如何预防
13. hive和mysql不同
14. Hadoop架构简单介绍
15. Spark和hadoop之间的区别。
16. Pig是什么,说一说
17. 维度设计过程,事实设计过程
18. 什么叫极限存储设计
19. 维度设计中有整合和拆分,有哪些方法,并详细说明
20. 事实设计分几种,每一种都是如何在业务中使用。
21. SQL内部原理解释
22. B2B业务架构中 公共层有什么作用。
23. 如何理解粒度这个单词
阿里面试总结
1. 阿里内推是属于最早的,但是也是要人很少的。
2. 如果你牛逼,基本几天就可以告诉你,你通过了,如果你是个大佬,那么前面还有更高级的面试你,当然和你迎来的也是sp。
3. 内推过程基本是一周一次,一共五次,3次技术面试,1次交叉面试,1次HR面试。基本你能接收到HR面试说明你有戏。
4. 阿里巴巴官网的更新基本只能在9月下旬确定定论。当然可能因为应聘人数太多了,对于大家来说,都不知道自己啥情况,有些好一些,先提前告诉你,你通过了,(俗称口头offer),基本是不会变化的。
5. 由内推转为校招,不要害怕自己机会没了,说明人家还想要你,只不过让你进入校招,在校招中,你的优势是很大的,有些内推是直接回绝的。
2.Oracle 从入门到精通
3.高性能MySQL
4.MySQL数据库应用从入门到精通
5.Spark快速大数据分析
6.Hadoop权威指南
7.Hive编程指南
8.Spark机器学习
9.大数据应用与技术丛书·数据仓库工具箱
10.机器学习实战
11.大数据之路:阿里巴巴大数据实践
12.智能时代 吴军的 极力推荐
13.SQL入门经典