阿里-数据研发实习(一挂)
(2021.4.21,一面,差不多一个小时)
1、自我介绍
2、你理解中的数据研发是怎样的?为什么想要做数据研发?(岗位理解吧)
3、介绍一个你的项目(项目1)
问SQL优化的方法有哪些?举里面的业务指标有哪些(wc....我忘了),数据的来源是哪里,
4、手机APP用户统计分析项目:(啊啊没有想过这些问题,有点懵)
- 企业的项目还是自己做的,(答跟同学合作的)你们怎么分工?
- 整个数据的流向。
- 数据的来源,怎么收集数据,怎么使用kafka来收集日志?具体怎么实现的。
- 分析这些指标(APP新增用户,活跃用户、留存用户)有什么用?怎么定义这些指标?
- 化妆品投资商的广告投放的问题,如何投放?(我说的都是具体的投放指标依据(用户购物习惯、购买力水平,还有啥),整体说的没有逻辑性,想想怎么回答)
5、hadoop的MapReduce的工作原理
6、什么是数据倾斜?如何解决数据倾斜的问题?
7、zookeeper的选举机制
8、hadoop生态圈有哪些,选3个说具体是干什么的
9、java基础怎么样(我说不是了解太深入),java有什么特性,(面向对象的三大特性)封装,多态、继承,解释什么是多态(说错了....)
多态,“一个接口,多种实现”,就是同一种事物表现出的多种形态。多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。
10、重写和重载
11、集合了解吗,hashmap的底层实现是什么,jdk1.7之前是数组+链表,jdk1.8之后是数组+链表/红黑树。为什么要用红黑树?为什么是或/红黑树,什么情况下用红黑树?
JDK1.8 之后在解决哈希冲突时有了较⼤的变化,当链表⻓度⼤于阈值(默认为8)(将链表转换成红⿊树前会判断,如果当前数组的⻓度⼩于 64,那么会选择先进⾏数组扩容,⽽不是转换为红⿊树)时,将链表转化为红⿊树,以减少搜索时间。总结:数据小的时候,用数组+链表,数据大的时候用数组+红黑树。
12、抽象类和接口了解吗?
基础语法
抽象类:在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修饰的方法称为抽象方法,抽象方法只有方法的声明,没有方法体。
抽象类的特点:
a、抽象类不能被实例化只能被继承;
b、包含抽象方法的一定是抽象类,但是抽象类不一定含有抽象方法;
c、抽象类中的抽象方法的修饰符只能为public或者protected,默认为public;
d、一个子类继承一个抽象类,则子类必须实现父类抽象方法,否则子类也必须定义为抽象类;
e、抽象类可以包含属性、方法、构造方法,但是构造方法不能用于实例化,主要用途是被子类调用。接口:Java中接口使用interface关键字修饰,特点为:
a、接口可以包含变量、方法;变量被隐士指定为public static final,方法被隐士指定为public abstract(JDK1.8之前);
b、接口支持多继承,即一个接口可以extends多个接口,间接的解决了Java中类的单继承问题;
c、一个类可以实现多个接口;
d、JDK1.8中对接口增加了新的特性:
(1)、默认方法(default method):JDK 1.8允许给接口添加非抽象的方法实现,但必须使用default关键字修饰;定义了default的方法可以不被实现子类所实现,但只能被实现子类的对象调用;如果子类实现了多个接口,并且这些接口包含一样的默认方法,则子类必须重写默认方法。
(2)、静态方法(static method):JDK 1.8中允许使用static关键字修饰一个方法,并提供实现,称为接口静态方法。接口静态方法只能通过接口调用(接口名.静态方法名)。接口与抽象类的区别
相同点
(1)都不能被实例化
(2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。
不同点
(1)接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
(2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
(3)接口强调特定功能的实现,而抽象类强调所属关系。
(4)接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
13、在学习或工作遇到的最大的挑战或困难是什么?
14、接上面的问题,当时遇到困难的时候你为什么不想着去请教同学或者导师?
15、你的成绩怎么样
16、你平时是怎么学习的?(答,看书)看了些什么书?(没想起具体的书名....)
17、对你现在的状态满意吗?(问你考研的学校是哪个,你认为你一志愿考研失败的原因是什么?)
18、你还有什么要说的吗?(没有,不知道说啥)
19、你有什么想问的吗?(脸皮厚请教了数据研发什么技术比较重要,学习的建议)
跟我介绍了数据研发的整体业务流程,有些忘了,只记住了一般两个方向,一个是偏向工程的,一个是偏向业务的。工程类的平台中层开发;业务类的SQL能力和业务理解的能力比较重要。会使用机器学习深度学习建模,进行数据挖掘。(他们是偏向业务的,听着觉得好大佬啊)
(面试官的声音好好好听的嘛~,我太菜了,才问这么简单的问题的吧,有些还没答上来,呜呜呜....攒经验攒经验叭)
快手-数据科学实习生(一挂)
(2021.4.22,一面,差不多一个小时)
1、自我介绍
项目1相关
2、怎么设计创建数据库,做了哪些分析,(他说这里做数据可视化比较多,就说了数模比赛的分析)
3、随机森林怎么建模,最后缩小的是他们之间的方差还是偏差?
4、hive的UDF用来做什么(忘了,他说没听懂我说啥,解释他平常UDF用来做什么),UDF怎么自定义,和UDAF、UDTF的区别
5、MR和spark的区别
6、MR的工作原理
7、数据倾斜,怎么解决数据倾斜问题
8、主键和外键
9、row_number(),然后说了窗口函数的三个rank()、dense_rank()(天!我把dense_rank()说成了ranking)
10、order by 和 sort by 的区别
11、在线编程,算法题,求x的n次方,x,n取值范围正负,有会溢出的问题,暂不考虑溢出情况。(直接用for循环连乘.....复杂度是n,还可以怎么优化,递归,具体怎么实现)
12、有什么问题要问的(最后说我比较偏向于数开方向....这是婉拒的意思吗)
蚂蚁金融-数据研发(一挂)
(2021.5.8,一面,27分钟)
- 自我介绍
- jvm虚拟机
- hadoop和spark的区别
- MR运行原理
- spark惰性机制,转换算子,行动算子。
- 项目2框架的搭建,使用的存储引擎是什么
- 数据库索引引擎,innoDB,B+树(都不知道啊...)
- hash()用过吗
- 支付宝用户——精准营销,考虑哪些维度或指标?
- 岗位理解,为什么想要做数据研发?
问的问题:都偏向于数据库底层,亿级的数据,搜索引擎,隔离机制,mongdb,hbase。
精准营销问题:
用户画像是具体包括以下维度:
用户个人特征:性别,年龄,地区,教育程度,性格,职业,星座
用户兴趣特征:爱好,使用APP,网站,浏览/收集/评论内容,品牌偏好,产品偏好
用户社会特征:生活习惯,婚姻和爱情,社交/信息渠道偏好,家庭构成
用户消费特征:收入状况,购买力水平,产品类型,购买渠道偏好,购买频率
用户动态特征:当前时间,需求,您要去的地方,周边商家,周围人群,新闻事件
联想-大数据开发 (offer)
(2021.5.14,一面,60分钟)
- 岗位介绍
- 自我介绍
- 问项目,介绍项目
- 现场写代码,java,long型 高位变低位(类似字符串反转,为啥不打开idea,而开的笔记本软件,愚蠢呀)、没写出来,换冒泡排序,问时间复杂度,空间复杂度
- linux命令(超难,一个都没不会)
- 超级尴尬结束
18号收到邮件,不通过。21号面试官加微信,问我什么时候可以安排实习,他说邮件是操作失误了。24号收到hr电话,收到offer邮件。
微众银行-数据仓库(平台开发)(二挂)
(2021.5.25,一面,40分钟)
- 自我介绍
- 项目一数据库表怎么设计,设计的原则(重点,问了好久)
- mysql三范式,设计库表的时候有用到哪个?(啊啊啊瞎编了个学生老师的例子,不知道有没有说对,看反应好像不太对...-.-..)
- 主键和外键,外键在什么时候创建,建表的时候创建还是查询的时候创建,什么时候用外键,join用到外键吗,没有外键可不可以join
- 全连接、左连接、右连接
- 视图是什么?视图和临时表的区别?数据实时更新的时候,视图、临时表也是实时更新吗?
- drop和delete的区别
- 用过窗口函数,游标吗
- 索引,索引的作用(B+树,B树,hash索引)
- hadoop用了什么组件?(这要答什么?简单说了,面试官竟然不继续问了)
- hql和sql的区别?
- hive 自定义UDF用来实现什么功能?
- finereport什么时候开始用的
- 可视化工作感兴趣吗
- 什么时候开始用python,java和python那个用的比较多,更倾向于用哪个
- 有什么问题问他嘛
- 问了具体实习的工作大概是什么,介绍三个业务,可视化,etl,python web相关,问我倾向哪一个
- 问我表现的怎么样,哈哈哈哈(他说还不错,可能有点紧张
- 什么时候知道结果,一周内,一共三面。
(2021.5.30,二面,30分钟)
一个技术问题都没问,全程聊天。挂了....
广东三维家(导师推荐)(offer拒)
(2021.5.28,40分钟)
- mysql的事务性,事务带来哪些问题,哪些隔离级别解决什么问题,
- 数据库的三大范式
- MR的工作原理
- 三次握手
- and so on.....
名通科技-大数据开发(8.27 70分钟 offer)
- 面向对象的三大属性,string可以继承吗?(不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变)
- 基本数据类型(8大),对应的字节数
- 单例模式
- 同步和异步
- 线程怎么去获取别的线程的数据?
- 线程的启动?(什么东东?)
- 静态类
- spring boot
- 了解的数据结构有哪些?map?
- mysql调优
- 数据库索引失效
腾讯-测开(8.31 80分钟)
- hadoop框架原理,hdfs,mr
- 对hive的理解,hql和sql的区别,为什么hive适合处理大数据,hive有索引吗(竟然说没有...),如果了解应该会问hive索引和sql索引的区别。
- sql索引有哪些,b树,b+树
- 事务的隔离级别
- 什么是面向对象,和面向过程的区别
- 面向对象有哪些特性,分别介绍
- 进程和线程,什么时候用多线程,thread和runnable的区别,如何实现多线程,
- gc的原理
- 输入url发生什么事,怎么进行dns解析,怎么获取到ip地址,ip地址含有哪些部分,tcp为什么要三次握手,tcp和udp的区别,适用场景,服务器有哪些server,http协议和https协议的区别,get和post的区别
- llinux命令用过哪些
- 编程题,大数据量的文件,统计网页状态码成功的数量(www.baidu.com 200),文件拆分-并行-合并(就是一个wordcount编程)
- 算法题,有序数组二分查找到目标值,返回下标。
陌陌-大数据开发(9.1 50min 一面)
- 自我介绍
- 数仓项目,详细介绍,doris的三大模型是什么,什么场景下使用哪种模型
- MR的原理
- hive 列转行,行转列,
- 窗口函数,rank, dense_rank, row_number
- java类加载机制
- array和list的区别
- hashtable
- 线程的生命周期
- 阻塞
- 双亲委派机制
- sql题
- 反转字符数组,空间为O(1),双指针。