oppo暑期实习面经

|创作中心

写文章

MD编辑器

正文

15px

文章目录

一面(45min)

二面(30min)

oppo暑期实习面经

10/50

暑期实习的面试也是三次面试,这里以数据分析为例 大家可以感受下每一次面试的侧重点,

还没投递的同学也尽快 占住排序很重要 往届有很多我熟悉的学生因为投递迟了,后面通过了面试但是offer发不下来

网申网址:$ https://careers.oppo.com/university/oppo/campus/post?shareId=9445$ 

投递时,填我的推荐码:X7206892 优先筛选 然后可以跟进进度哈 你入职了我也有奖金的 主打互惠互利!



其实 oppo 本质还是属于制造业,很多业务领域的问题不像互联网一样有通用解决方案,所以用机器学习来解决是常用的方法因此算法层面还是有一定要求的:除此之外,数据分析需要具备的能力是毋庸置疑的,sql、统计、python、业务

更多的对校招生可能是品质的要求,例如逻辑思维能力等等



OPPO 数据分析面经

学生bg 本科 211、硕士 985,专业是信息管理与信息系统,三段实习经历,一段银行、一段互联网、一段制造业,银行那一段偏技术(金融科技)

除此之外在学校的经历比较丰富,拿了很多次建模比赛的奖项,还发表了一些论文。

一面(45min)

1自我介绍(15min)

之前就有听说过 OPPO 比较看重科研成果,所以在介绍的时候除了提及一些基础信息以外,还说了一下跟着导师做的一些项目,发表的一些论文,以及打过的建模比赛等,

追问:论文的一作是你吗?有两篇是,其它的都是共作

追问:那你着重挑一个印象最深刻的一作讲一下吧?

因为导师研究方向是数据挖掘,所以其实论文的项目基本都是深度学习机器学习的

然后就着重挑了-下那篇 stacking 融合的项目讲了一下(说实话这篇投的是水刊,但是并没有提及)

√追问:融合的算法有哪些?

xgb、随机森林、svr

V追问:为什么选这些算法?

主要考虑了三种算法的底层逻辑不太一样然后就说一下各个算法的原理是怎么样的。

V追问:最后的模型表现如何?

跟它说了一下最终模型的 roc 与 auc,准确率等分类模型评估指标,然后说了一下如何优化的(由于整个项目流程中导师都比较push,所以其实很多细节还是知道的)

2简历深挖 (5min)

其实在自我介绍的时候的那些追问就已经属于很大程度的简历深挖了,关于实习做的业务面试官似乎并不是太关心

简单的提问了一嘴:

简单的提问了一嘴:

在互联网实习的时候会不会用到机器学习算法?

几乎没有,用到 python 也只是为了方便数据处理基于 transform 函数来调用,绝大部分用 sal和 hive都可以解决

2统计学(5min)

主要考察了一些八股问题:

假设性检验的概念?两类错误?

3机器学习(10min)

V介绍一下自己最熟悉的一种算法?

回答了 xgboost,然后把决策树、lgb、

gbdt、随机森林这些历史发展过程也代入了

进去,这一块回答的挺久的

/xgb 和 lgb的区别?

之前有背过一些八股,但只能凭记忆回答些

√有了解过聚类算法吗?

回答了 kmeans

V说一下聚类和分类的差别?前者无监督后者有监督

反问

V这个岗位是更偏技术吗?

对算法能力要求很高?

其实方向有很多,主要还是基于求职者的个人表现和能力来选择方向,有的方向是偏技术的就是做算法这些、有的则偏业务一点会更需要能够独立分析的人才、有的更偏 统计思维需要能够设计 ab 做假设检验等

算法只是一个很小的板块,除此之外还需要了解数据库、业务、统计这些,甚至还要会一点 java 和 c

二面(30min)

1自我介绍(2min)

自我介绍环节没有过多的追问

2简历深挖(20min)

V简单说一下你在最近一段实习中主要负责的工作内容?

主要是提数取数、制作看板、检查数据日志、优化 hive 脚本、分析数据这些

V追问:整个部门的业务逻辑是什么?核心输出或者说价值点是什么

追问:整个部门的业务逻辑是什么?核心输出或者说价值点是什么?

就简单介绍了一下部门的架构,平时负责数据提数据取数据专门的数据部门存在,一般产品、数据等岗位有数据要求会找我们。然后部门的员工会根据项目需要分配到项目组中去,协助分析数据。

V追问:那你觉得你们部门有没有承担什么特别点的价值?(这个其实我一直以来都有思考过,因为其实如果偏技术层面的数据开发会替我们解决、偏业务层面的运营产品会替我们解决,所以会有工具人的情况发生。)

回答就说其实能够将统计层面的理论、机器学习等技术层面的理论与实际业务挂钩,是我们整个部门比较特殊的地方,例如 ab 实验、统计推断、还有一些分类回归等。

V追问:在业务中用到算法的案例?举了个 xgb 的例子,我们在做因果分析的时候,为了找到那个“因”会用到 xgb。(这一块毕竟不是自己做的,在内部文档中只是浅略地看了一眼



数据库(3min)

这一块问了一些八股

数据库的分层?

√之前做 hive 脚本优化时都用过什么方法?

4反问(8min)

这个岗位对校招生的具体要求?

(这一块面试官还是非常细致地回答了一下给我举了一些工作中的案例

$ #oppo#$ $ #内推#$ $ #实习#$ $ #校招#$ $ #offer#OPPO $ 









发布设置

专栏收录

请选择

模版

添加话题

#扒一扒那些奇葩实习经历#

#你遇到过哪些神仙同事#

#牛客创作赏金赛#

#面试时被问的最奇葩的问题#

#拼多多工作体验#

表情

图片

AI配图

投票

爆薪资

发内推

题目

发文设置

共2058字

发布

牛客网

牛客企业服务

全部评论

相关推荐

模块泄露(module leaks)通常指的是在应用程序或库中,某个模块的资源(变量、函数、类等)在不恰当的情况下被暴露或泄露给了其他模块或作用域,导致数据的不受控制的共享或污染。以下是一些可能导致模块泄露的情况:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=ba06d8fbb87f45f7bf340c85dc4f0cc1全局变量污染:如果在模块中将变量或函数定义在全局作用域中,其他模块就可以直接访问和修改这些变量,从而导致不受控制的共享和污染。意外的导出:当一个模块中的变量、函数或类被意外地导出给了其他模块使用,而不是作为内部实现的一部分,就可能导致模块泄露。这可能是由于代码编写错误、导入导出配置问题或误操作导致的。循环引用:循环引用是指两个或多个模块相互之间存在着相互依赖的关系。如果循环引用的处理不当,可能导致模块无法正确加载或导致模块之间的依赖关系混乱,从而导致模块泄露。模块泄露的后果可能包括代码的不稳定性、变量冲突、内存泄露等。为了避免模块泄露,可以采取以下措施:封装和隐藏内部实现:在设计模块时,合理使用作用域和闭包,仅暴露必要的接口给其他模块使用,将内部实现状态和方法进行封装和隐藏,减少模块间的直接依赖和冲突。使用模块化的开发方式:使用模块化的开发方式,如CommonJS、ES Modules等,可以通过明确的导入和导出规范来管理模块之间的依赖关系,避免意外的导出和导入问题。严格限制全局变量的使用:尽量避免使用全局变量,将变量的作用域限制在模块内部,避免变量的污染和共享。检查循环引用:在使用模块间的相互依赖时,保持谨慎,并检查循环引用问题。可以通过工具、插件或规范来检查和处理循环引用的情况。通过以上的措施,可以有效地减少模块泄露的发生,并提高代码的健壮性和可维护性。
点赞 评论 收藏
分享
在JavaScript中,堆和栈是两种不同的内存管理方式,用于存储不同类型的数据。堆(Heap): 堆是用于动态分配内存的区域,用于存储引用类型的数据,如对象和数组。在堆中分配的内存不会自动释放,需要通过垃圾回收机制来回收不再使用的内存。堆的大小通常比栈大,并且可以动态增长和收缩。栈(Stack): 栈是用于管理函数执行上下文和存储基本类型值的一种数据结构。每当执行一个函数时,都会在栈中创建一个新的执行上下文,包括函数的参数、局部变量和函数的返回地址。当函数执行完成后,对应的执行上下文会被销毁,栈会自动释放相关的内存。栈的大小通常比较小且固定,内存分配由系统自动管理。下面是堆和栈的一些区别:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=d59bf6cbe74a47848bb179590bdf5f59存储内容:堆用于存储引用类型的数据,如对象和数组;栈用于存储基本类型的数据,如布尔值、数值和字符串,以及函数执行的上下文。分配方式:堆通过动态分配内存来存储数据;栈通过在执行上下文中的栈帧上分配固定大小的内存来存储数据。大小和生长性:堆的大小通常比栈大,可以动态增长和收缩;栈的大小通常比较小且固定,由系统自动管理。管理方式:堆的内存管理需要使用垃圾回收机制来回收不再使用的内存;栈的内存管理由系统自动处理,通过栈指针的移动来分配和释放内存。生命周期:堆中分配的内存不会自动释放,需要通过垃圾回收来回收内存;栈中的内存由系统自动管理,在函数执行完成后自动释放。
2025-06-01
在牛客打卡316天,今天也很努力鸭!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务