阿里2021暑期实习数据研发面经(超详细!已转正!附内推!)

    作者:SJZ97
    链接:https://www.nowcoder.com/discuss/612313?source_id=discuss_experience_nctrack&channel=-1
    来源:牛客网

    前言
    “纪念一下我还未开始就已结束的2021届秋招”

    好久没有更新文章,今天这篇是去年春天面阿里暑期数据研发实习生的面经,在阿里实习了2个多月后,已经顺利转正上岸。

    对团队的氛围和杭州这座城市都很满意,希望看到这篇文章的你秋招早日上岸,offer拿不断,冲呀~

    ———— 一面 ————
    一面 40 mins 直属leader (P8)

    自我介绍
    针对简历中尤其是字节实习中的相关项目经历展开询问
    主要工作介绍
    “你说熟悉上下游,能否挑一个项目具体讲一讲” - 这里举了xx系统的例子
    “总结一下,数仓建模应该分为哪几个部分” - 这里没有答太好,需要在具体业务的基础上,再抽象一层。具体回答形式应该是这个样子的:
    数仓建模在我看来应该分为X步,第一步 “明确业务场景,梳理涉及到的上下游数据源”,例如在xx系统中就是xxxx
    第二步“、明确最重要的事实和维度分别是什么”
    “工作中主要使用的的Hive吧,有没有做过什么Hive调优” - 回答:没有,因为数据量太小。
    “你的上游是广告,讲一讲广告有哪些具体的计价规则”
    问我职业发展规划,看我之前是做算法的,为什么实习选择的数据研发
    最后给我提了三个建议
    总结抽象能力,结构化体系化
    领域知识,业务过程来龙去脉,广告类型,竞价系统
    《大数据之路》 - 融入自己的理解
    让我问问题 - 实习时间,答复:6月~8月

    一面总结:

    数据中台,直属leader面,没有考察算法等基础知识。

    面试官大大人非常nice,给我讲了他们的一些日常工作,给我提出了一些建议。

    疯狂暗示我看《大数据之路》,之后的面试中会有考察

    问题整理:

    (现在看就是想考察我数据研发的基本流程熟不熟悉,有兴趣的同学可以看看 《大数据之路》)

    1、数据研发应该分为如下几步:

    业务理解与数据调研
    数据域划分
    构建总线矩阵,明确统计指标
    规范定义(名称、维度等)
    模型设计
    代码开发
    部署运维
    2、事实表设计具体可以拆分为下面5步:

    1. 选择业务过程,确定事实表类型
      业务过程通常用行为动词表示,表示业务执行的活动。
      比如淘宝订单流转的业务过程有四个:创建订单、买家付款、卖家发货、买家确认收货。
      在选择了业务过程以后,相应的事实表类型也随之确定了。
      比如选择买家付款单个业务过程,那么事实表应为只包含买家付款这一个业务过程的单事务型事实表
      如果选择的是所有这四个业务过程,并且需要分析各个业务过程之间的时间间隔,那么所建的事实表应为包含了所有四个业务过程的累积快照型事实表
    2. 声明粒度
      粒度精确定义事实表的每一行表示什么业务含义,粒度传递的是与事实表度量有关的细节层次
      粒度最细原则 - 应该尽量选取最细级别的原子粒度,以确保事实表的应用具有最大的灵活性
      例如子订单一同结算的话,会生成一条父订单,那么事实表的粒度应该选择为子订单级别
      例如多轮对话中,一组对话节点可以组成一个剧本,则事实表的粒度应该选择对话节点级别
    3. 确定维度
      粒度声明完成后,主键就确定了,对应的维度组合以及相关的维度字段就可以确定了,选择能够描述清楚业务过程所处的环境的维度信息
    4. 确定事实
      事实可以通过回答“过程的度量是什么”来确定,度量就是数字,是变量
      在淘宝的订单付款事务事实表中,同粒度的事实有子订单分摊的支付金额、邮费、优惠金额等。
    5. 冗余维度
      冗余方便下游用户使用的常用维度,提高下游用户的使用效率,降低数据获取的复杂性,减少关联的表数量

    ———— 二面 ————
    二面 55 mins 大部门leader(P9)面

    3分钟自我介绍
    讲一讲数据研发和算法的区别,对这两者有什么理解
    作为数据研发最核心的三个能力是什么?我回答的 “1、业务(商业) 2、技术 3、耐心细心沉得住气”
    面试官很满意,还给我补充了一点就是“数据分析和算法能力”
    做的什么业务,具体讲一讲上下游,涉及到的业务方是什么,有哪些基本诉求?我回答的:业务方是销售和财务,销售最关心的诉求有两类-1、查:查看一段时间内自己的,自己团队的业绩情况 2、改:业绩金额或者关系变更
    ER模型和维度模型的区别,分别适合什么样的场景 — 感觉我自己胡乱回答的一通,答的不是太好。主要方向是说ER模型比较固定,而维度模型更加灵活。面试官给的解释:
    ER模型严格遵守第三范式,适合对性能要求较高的场景;维度建模更多面向业务,可以通过指标来定义的场景。
    ER模型严格遵守第三范式,注重的是精简高效,更多是面向数据的整合和一致性治理,期望达到“single version of the truth”
    四层模型了解吗?为什么要这么设计,有什么用。— 疯狂用头安利《大数据之路》啊啊啊,问我看没看…
    事务了解吗?我说用过,但是了解的不深。准备讲一讲的,面试官说“算了,没事”。
    作为一个数据研发,怎么样提高效率,或者说都是数据研发,效率差异会体现在哪里?
    我回答 1、 业务理解 2、上下游业务方沟通 3、 经验和制定复杂技术方案的能力
    在学校成绩如何?近期学的比较好的一门课是什么?
    算法能力考查
    决策树原理讲一讲
    如果一个分类模型的效果不好,怎么办
    如何处理缺省值(missing data)
    Hadoop 和 Spark 的区别,Spark做了哪些优化,好在哪里?
    有什么要问我的?
    两个多月的暑期实习里,培养模式是什么样子的,会做哪些项目?
    端到端报表项目,了解数据研发全过程
    理解业务,学习具体知识
    数据建模方法论
    师兄+助教制度,10+新人一起学习成长,最终希望留下来10人左右,来源于综合考察+最终答辩

    给我的建议:

    看到我说了很多细节,证明确实有在做事,这点很好,但是也要注意多总结抽象
    数据建模能力和商业理解能力

    二面总结:

    100多人的部门leader面,人非常nice,约的时间从10点改到了11点,第一句话就是很关心的询问我到家了吗,这会儿方便聊一聊吗。

    面试过程更像是和一个前辈交流的过程,给了我许多平时没有机会接触到的新角度。

    ———— 三面 ————
    三面 35 mins 部门交叉面

    3分钟自我介绍
    数据研发和算法,职业规划
    讲了一些重构和优化工作,然后被追问 “既然都已经优化了,那么你觉得还有哪里不够好呢?” — 这个问题确实答不上来,需要再思考
    随机森林用过吧,讲一讲集成学习中 boosting 和 bagging 的区别 — 太久没有接触算法,导致简历中的项目涉及知识点都讲不清楚了,这个很可怕,一定要注意,别的所有知识都可以不会,因为没学过就是没学过,但是简历上出现的内容一定要明明白白,这是亲手做过的东西,背后的原理小半年就忘记了的人也太可怕了。
    问我还有没有什么想要分享,但是面试官没有问的部分吗?
    反思:这个问题很新颖,可惜我没有抓住,我只是询问他们会不会涉及到后端开发,他说我目前所在的部门可能更多的是在实时计算这块,我就没有接着说了,其实想一想可以讲一讲工作流改造,接入kafka等工作的。
    下次可以做的更好: 如果遇到这样的问题,一定要抓住机会,尽可能多的展现自己的亮点!
    最后我问了一个问题,作为数据研发岗工作的职业规划是什么样子的 — 他回答了一些,但是我觉得非常空,完全没有二面面试官坦诚清晰,也许是不太喜欢我吧,所以也懒得分享。也有可能是我问的太泛了确实不好回答。(这段纯属瞎BB,看官们请忽略,准备招聘的过程中最忌讳的就是自己打压自己,多给自己打打气,心平气和的发现问题,总结提高,你是最棒的!)
    下次试着问的更详细一些 “你刚入职那会儿遇到的最大的问题是什么呢,如果我有幸入职阿里,能够给我一些建议吗?”

    ———— 四面 ————
    (从手淘中台调整到了天猫精灵数据)

    45mins 天猫精灵直属leader面

    天猫精灵 AI+IOT

    主要方向:家庭消费电子产品,政府IoT项目

    主要工作

    算法,音视频采集

    数据仓库

    数据挖掘

    技术背景,数据采集,数据建模

    战略:BI报表、数据应用

    客户行为分析,个性化推荐

    自驱去做的事情:

    1- 数据建模:业务变大,新业务涌入

    2- 商业闭环:策略-动作-分析效果结果

    业务方的需求:(月为单位)

    1- 商业分析,KPI

    2- 增长分析

    3- 用户运营

    四面总结:

    说实话当时都没有把这当成一场面试,而是不断和阿里的前辈交流数据对于业务的价值,可以做哪些事情。后来也从大老板(没错,就是我实习组的大老板)那里了解到因为已经通过了手淘数据团队的面试,所以他面我的时候也是比较宽松的,基本是让我问他问题…

    ———— 加了一轮技术笔试 ————
    笔试没有发挥太好,所以加一轮技术笔试

    平台: 阿里伯乐

    一共10道题,5道简答题,5道SQL,给了2个小时,不太难。

    做完后面试官钉钉告诉我说 “做的还不错,耐心等待结果吧。”

    我心里想着,“ok,稳了!”

    ———— 终面 ————

    45 mins 天猫精灵技术团队大老板

    整体考察偏底层,很难

    自我介绍
    算法学过吗?深度学习了解吗?
    文本相似度怎么判断 - 面试官想要的是文章的相似度,而我给出的是单词的相似度
    协同过滤了解吗?有哪些算法?如果是10亿用户,协同过滤怎么做?
    我当场傻了… 不过嘴上还是淡定的说了句 “不好意思,这个用户量级的方案我还真没有考虑过,希望之后有机会学习”
    数据质量监控,字节是怎么做的?
    我回答了两个方面:关系是否正确,金额是否一致,这些在面试官看来都是功能层面的数据质量
    面试官期望的则是:表字段是否一致,数据条目等。
    数据任务调度平台的原理知道吗
    如果同时有10万个任务,他们的启动逻辑是什么样子的?
    我回答了:有向无环图,找上游任务看执行情况,分析
    面试官期望的则是:更深一步,怎么找到上游以及上游的执行情况
    血缘分析原理 (当场去世)
    实习阶段做了哪些数据服务
    微服务框架的原理和一些基本概念 (当场去世)
    让我问一些问题:
    我最近可能真的飘了,直接站在了我已经通过拿到offer的立场再问一些问题….

    我进来之后具体会做哪些业务,因为换过一次大部门所以对之后可能具体会做的事情有一些模糊
    实习时间6-8月初两个月可以吗
    什么时候能够拿到offer,明确时间

    终面总结:

    (面试结束后分析和自我安慰)
    可能前几轮面试官重点考察的是我的能力下限,也就是能不能胜任这些实习工作,而终面大老板的面试风格则是考察我的能力上限,这个主要体现在对于已经做过的业务和掌握知识的底层技术的好奇,对于曾经学过的知识的迁移运用能力等等。

    总结
    这就是阿里整个暑期实习的全流程了,加上最开始的技术笔试和行为测试,一共是进行了3场笔试、5场面试,整个周期从投递到正式发放offer前后差不多有1个半月时间,需要大家保持充分的耐心。

    我最终也是拿到了阿里的暑期实习的机会,并且在阿里的两个多月里成长了非常多,整理沉淀了非常多,之后陆续和大家分享。

    春招又如火如荼的开始了,早就是优势!

    阿里大淘系数据团队22届暑期实习内推
    部门介绍:

    阿里大淘系数据团队涵盖淘宝、天猫、1688&C2M、天猫精灵、钉钉数据,商家数据等业务线,拥有十亿级的用户、商家和企业数据,业界领先的数据技术和数据新人培养体系。加入我们,你将会收获:

    师兄一对一指导,系统学习数据技术
    体验海量数据处理、分析和应用场景
    躬身入局,亲手用数据创造商业价值
    招聘范围:毕业时间 21年11月~22年10月的国内、海外高校同学

    招聘岗位:

    数据研发(参考JD):https://sourl.cn/TAGKgd
    数据分析(参考JD):https://sourl.cn/CfHNQc
    数据科学(参考JD):https://sourl.cn/49AABb
    招聘流程:(杭州)

    1. 发送简历到 邮箱 < jinzhe.sjz@alibaba-inc.com >,我发起内推,你接受内推
    2. 集团统一线上笔试、测评
    3. 面试流程
    4. 发放实习offer
    5. 来杭暑期实习,转正斩获超级提前批校招offer
      有意向的同学欢迎将简历发送至我的邮箱 < jinzhe.sjz@alibaba-inc.com >

    承诺全程跟踪,负责到底,欢迎投递!