跳槽系列文章:
2021 程序媛跳槽记:学习计划篇(已收获字节等offer)
2021 程序媛跳槽记:必刷LeetCode算法题(附解题报告)
三妹我粗略地算了一下,前前后后面试差不多两个月,总共将近 30 场面试吧,挑点典型的面试题记下来。
公司目录:
-
中国人寿
-
美图秀秀
-
MOKA
-
美团
-
贝壳
-
小马智行
-
阿里
-
字节
-
百度
一、中国人寿
一面:
1、项目相关
1)用到哪些特征,怎么判断重要性
2)用到什么模型
3)论文是谁发的,第几作者
2、读研时方向(AI方向)
3、读书时是否发表论文
二面:
1、决策树原理
2、GBDT原理
3、解释过拟合以及防止过拟合方法
4、项目中遇到的异常数据和解决方法
5、项目中样本不平衡的解决方法
6、hive增删改查的限制(不会,没答上)
7、为什么换工作
二、美图秀秀
1、决策树、集成模型、决策树怎么处理缺失值、怎么处理连续值
2、项目的评价指标,ROC值、准确率达到多少
3、有没有遇到过跨部门合作,如果对方不配合如何推进项目
4、职业规划(我确实没有规划好)
5、GBDT 中的梯度是怎么回事
6、怎么一句话形容集成学习中的 Boosting(弱学习器不断训练成强学习器的过程)
7、有没有进行过特征选择
8、特征覆盖度能达到多少,是否知道树模型如何处理缺失值
9、离职原因、是否给解决了户口、户口对离职有没有影响
剩余时间面试官介绍了他们组里的情况、工作量、强度等等。
三、 Moka
一面:
1、GBDT原理,损失函数
2、集成学习除了Boosting 和 Bagging 还有什么
3、深度集成学习(好像是叫这个)就是把决策树划分的结果作为特征放入深度学习模型中
4、求梯度公式
5、算法题:翻转链表
面试官说先定义个节点类,再写出翻转链表的函数,最后给一个 test case。我觉得我做的不好的地方是真就写了一个最普通的 test case,应该把能想到的 Corner case 都写出来。
6、项目相关
最后我提问:
1、跟其他竞品如脉脉相比的优势
2、如果我能进组,做什么方向
二面:
1、项目相关
2、讲解我发的论文中的公式
3、如何做特征工程
4、Pandas 中 map 和 apply 的区别
5、项目的数据量级大概在多少
6、GBDT如何做回归问题
三面 + HRBP面试:
技术总监问我一些推荐系统的东西没答上。
HRBP 说话贼快,感觉就很强势。
四、美团
一面:
1、如何处理稀疏矩阵
降维、embedding
2、如何处理缺失值
1)决策树 C4.5 开始可以处理缺失值
2)填充缺失值(pandas好多种方法)
3、画项目中的工程架构图
4、讲解项目中涉及的数学公式
二面:
1、ROC概率角度解释
2、如何防止卖家刷 CTR 点击率
3、LeetCode 算法题:买卖股票(一次买卖收益最大)
三面:
1、决策树的可解释性
2、算法题: LeetCode 69 变体,阈值自己控制
3、项目相关问得特别深入和细节,有些之前没有考虑到的就直接承认,然后说如果现在让我做的话,我还能从以下几方面入手。总之别卡住,能跟什么挨上边都可以说。
HR 面试:
美团的 HR 面试比较友好感觉,不过问了我的婚姻状况和生孩子的计划等等,印象中只有一两个公司问到过我这个问题。
五、贝壳
一、机器学习相关
1、归一化和标准化的区别
2、防止过拟合的办法
3、正则化中 L1 、L2的区别
二、算法题
1、递归实现冒泡排序
2、给定两个升序数组,按升序打印两个升序数组的最长公共部分。
3、内存可放入10M数据,大量数据找到 Top N
六、小马智行
1、简单介绍项目
2、LightGBM 优缺点
3、算法题
已知一个长度为n的数组a, 1 <= n <= 10^5. 要求一个最大的x(1 <= x <= n), 使得数组a的前x个数, 去掉一个后, 剩下的x-1个数每种数出现的次数相同. 例如数组[1, 3, 3, 1, 4, 5, 4, 5], 最大的x为7, 前7个数去掉5后剩下的1, 3, 4各出现2次.
题目在面试官引导下才有思路,没时间写代码,估计凉凉。
七、阿里
面试软件:阿里内部软件
一面:
1、项目相关:你觉得为了解决项目中的这个问题,你需要考虑哪些因素?
2、怎么训练的模型?
模型评价指标选了哪些?准确率,查准率,查全率,AUC
3、你觉得多大数据量可以上深度学习模型?
4、逻辑回归有个前提是样本需要满足什么分布?答:伯努利分布(面试官告诉我的,我没答上)
5、使用 LightGBM 框架时,你怎么调参,认为哪些参数最重要?
6、RF 能处理缺失值吗?
7、Xgboost 比 GBDT 好在哪里?
8、Xgboost的正则化公式是什么?
9、正则化有哪些常用的,L1 和 L2 有啥区别?
10、Xgboost 可以自定义目标函数,你自己定义过吗?
11、如果现在优化你觉得可以换哪些模型?有想过深度学习吗?
12、你觉得传统机器学习和深度学习有啥相同点和不同点?
13、算法题
# //评测题目: 给定一个内部元素不重复数组a,如 a=[2,3]
# //返回数组元素的所有顺序组合,如[2,3]、[3,2]
// test case:
// input:[1,2,3]
// output:[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]
二面:
1、自我介绍:请简单介绍一下自己的学历背景和工作经验
2、问了一个项目,延伸出来的模型,到一些最基础的概念,似然函数,逻辑回归的损失函数,交叉熵的公式,GBDT的维度
3、业务题:举了他们实际的一个问题,问我的思路和解决方案,我给出了两个方案供选择。
HR 面试:
1、项目经历
2、个人觉得最满意的case?
3、有感觉比较挫败的case吗?
4、领导给我的个人建议是什么?
5、觉得来阿里会面对什么挑战?
6、之前的绩效考核怎么样?
八、字节跳动
面试软件:牛客网链接
一面:
1、项目相关
2、机器学习问题
随机森林和 GBDT区别?
RMSE 能做分类问题的指标吗?(答案,不能。《百面机器学习》P214)
3、深度学习问题
常见的激活函数有哪些?
4、pandas 问题,写出伪代码即可
有四列:姓名,语文,数学,英语
求每个同学(即每行)成绩最高的学科
5、算法题:
给定二维有序数组a和target,返回a中距离target最近的元素
例 a = [[1,2,8,9,10,11,20], [2,5,10,11,15,20,25], [10,10,30,50,80,100,200]],target=4,return 5
注意两点:
1)矩阵,m*n, 长度固定
2)二维有序,每行每列递增
[1,2,4,9,10,11,20],
[2,5,10,11,15,20,25],
[3,5,10,11,15,20,25],
[10,10,30,50,80,100,200]
最终要求按照每行二分法找两个与 target 最近的值,再比较每行选出的两个值选出最后的答案
被面试官提示的小bug:
1)输入是二维矩阵,我写成了一维数组
2)打擂台的时候思维有点混乱,主要是着急,想快点写快点写,心态还是要稳
我第一次在牛客网链接上写代码,记忆中还是研究生毕业找工作期间各个公司都用牛客网做线上笔试的阴影,还要自己写输入输出啥的,总之跟 LeetCode 有一定差别,我也不想再去提前学习牛客网,此时已经面试疲了,就抱着死猪不怕开水烫的态度上场了。
给你们看一下我的面试截图:
既能视频也能发文字,代码的话,面试官可以选择模式,二面的时候是核心代码模式,就跟 LeetCode 一样,只要写个函数就行。
代码模块,你和面试官可以同时编辑,别问我咋知道的,因为三面的时候,面试官看不下去了直接给我 debug,最后居然还让我通过了,惊不惊喜意不意外???
两个小时之后就收到HR电话约二面了,字节效率杠杠的。
二面:
1、开放性题目,主要还是跟他们的业务相关。这种问题大概率没办法提前准备,毕竟也没实际接触过他们的业务场景,当然如果有类似的经验,真是烧高香了。所以对于这种题目,我都尽量展示自己的思维能力,尽量思路清晰、考虑全面、表述清楚,就差不多。
2、Python基础(都没答上,还被发现离开了牛客网的面试界面,尴尬死。所以千万不要离开链接,不管是看代码,还是来了微信消息,直接勿扰模式,爱咋咋地吧)
1)GIL
2)super
3、算法题:判断二叉树是否对称
上截图,红框里就是核心代码模式:
我写完了还想跟面试官说一下我的思路,结果他说:不用说,你直接提交就行,然后我先试了自测运行,就有 bug了,被面试官看着找 bug,压力大上天。幸好最后 AC。
二面后当天没收到 HR 电话我还以为凉凉了,毕竟体会过了极速效率,幸好第二天理发的时候收到了三面的约面电话。
字节第一轮考了二维数组,第二轮考了二叉树,我妄加揣测第三轮会考链表?
三面:
1、自我介绍
2、介绍一个自己比较满意的项目
3、项目中模型的评价指标是什么,RMSE 能用来评估分类模型吗(我严重觉得他是看了我一面的记录知道我这个没答对,所以再问我一遍看看我之后有没有学习)
4、GBDT和 LIGTHGBM 的区别
5、算法题:写一个单例模式(好惨,面试官亲自帮我改 bug)
HR 面试:
1、简单做一下自我介绍。
2、认为自己最出色的项目是哪个,简单介绍一下。自己承担了哪部分的工作?
3、用三个词形容一下自己。
4、觉得自己哪里还可以再提升一下?
5、之前的三轮面试感受体验怎么样?三个面试官有没有不好的感受?
6、你对字节的业务了解多少?
7、你觉得自己字节的困难有哪些?
8、你觉得字节的优势有哪些?
9、为什么离开上一家公司?
10、你对新工作的期待是什么?
11、现在的薪酬多少,是离职状态还是在职,找工作多久了,有哪些 offer,给的薪酬多少?
12、之前的面试结束之后,不会的题你有过复盘吗?
九、百度
面试软件:百度自己的如流
一面:
将近两个小时,各方面都面到了,主要分为四大块。
1、项目
2、机器学习深度学习
1)损失函数、代价函数、目标函数的区别
2)GBDT 和 Xgboost的区别
3)机器学习和深度学习的方法
3、写hive UDF 建表,写SQL
统计本月流失用户
4、算法题
快排,但是因为在有道云笔记里写,然后在 vscode 中运行,debug 没现场成功,vscode 跟我工作电脑版本不同,不太顺手,作为一个程序媛,竟然在使用 vscode 时不熟练,这不是给自己挖坑吗,感觉要凉凉。
个人觉得百度的面试风格还是比较注重基础,机器学习和算法都是经典题目;阿里会抓住项目中设计到的技术和算法点,一直往下深入问。
最后百度给我通过了,让我现场去进行二面和三面。到了之后的第一轮面试半个多小时就结束,而且都很基础,我还纳闷二面咋这么简单呢?
之后知道,给我换组了重新从头面试,说这个组比之前的厉害,三面面试官级别 T9,明显有种压迫感,全程被吊打,最后一轮我以为是 HR ,原来是经理,后来问了同学才知道百度没有 HR 面试,最后一轮都是经理面试,好多问题跟 HR 差不多,我的面试前准备明显不充足。
可惜我经理面试中的数学逻辑题没答不上,我从 16 点面试到 20 点,从中午 11 点多到 20 点将近 9 小时没吃东西再加上一直紧张地面试,明显大脑已经转不动了,真是精神和肉体的双重折磨啊。
所以,我的经验教训就是,一定要保持身体状态良好再去面试。