2021届应届生算法岗校招经验分享+吐槽(春招)
写在前面:个人背景,校招结果的总结,秋招面试的回忆都在上篇文章(https://www.nowcoder.com/discuss/655164)。校招的经验分享/踩过的坑在下一篇文章(https://www.nowcoder.com/discuss/667184)。
本文是春招面试的回忆。
(记录下我的花式被搞经历,我感觉接近一半的面试都被各种搞,理由都不带重样的,每次多一个被搞的新方式。)
背景备注:
(因为学校那边事情比较多,大概到十月才结束,所以秋招准备不怎么充分(知识上和刷题上,都不够充分)。而且当时刚开始投递,了解到的公司也不算多,所以整个秋招投递数量也不算多。春招就开始步入正轨)
面经顺序备注:
(以下同一次校招中,公司之间没有严格按照时间顺序,公司内部有多次面试的话,按照时间顺序。 总体按照先秋招再春招的时间顺序)
面经环节备注:
(整体按照轮次,时长,流程,自我评价/吐槽/面试官评价的顺序进行)
(流程中的各个环节:
项目展开环节,因为都是根据个人项目和知识储备来展开的,每人的方向不同,我就不再详细介绍,没啥参考价值。
项目展开+基础知识:是指纯项目展开,再加上一些引申出来的基础知识,个人在准备时可以根据个人项目情况来针对性准备。这一块儿我主要写那些引申出来的基础知识,来给大家做参考。那些纯项目展开的部分(或者我认为不具有普适性的知识)我就不写了。会写的基础知识有,比如说我项目中用到了深度可分离卷积,那可能会引申出参数量运算量的推导,深度可分离能使参数量运算量下降的比例。
基础知识:是指和项目无关,可能是和岗位有关,比如说推荐算法岗相关的一些知识(我本人的项目基本没有纯推荐的)。也可能是作为一个算法工程师,人人都要掌握的基础知识,比如说传统机器学习的各种模型,深度学习的优化器,激活函数,损失函数,评价指标,你所用的编程语言的一些底层原理等等)
正文!!!
华为:(offer)
笔试:(通过,2.4/3)
流程:三道代码题:第一题,具体忘了,反正题干很长,思路简单,但是很多限制条件,代码量不小。第二题,有一系列商品,满减优惠,选出达到满减优惠标准的最少金额。(0-1背包)。第三题,最大子序和的变形,难点在于联想到最大子序和。
总结+自我评价:这里单独说一下华为的笔试,因为华为笔试的代码题风格和其他公司完全不一样:其他公司是难,只要有思路之后就基本能全部ac。华为是复杂,但是核心思路不难。主要体现在两方面:1.各种临界条件、特殊情况很多,你不认真读题的话,往往不能全部ac。2.都要对leetcode原题做一个数学上的等价变化,比如说有道题是满减优惠,其实就是0-1背包问题的变形,我在笔试中花了很长时间才想明白这点。然后代码有个小typo,没检查出来(代码量有点大,而且就一个变量名打错了,我当时根本没想着检查变量名),这个题就没全ac。本来可以全对,3/3的。
一面:(通过)
时间:60分钟
流程:自我介绍,项目展开,做题(时限30分钟。一道代码题,思路简单,但是功能复杂,代码量不小)
自我评价:发挥没啥问题,所有问题都回答上来了。
二面:(通过)
时间:60分钟
流程:自我介绍,项目展开(问的很少,而且问法不太专业),简单问了下学校情况,做题(时限30分钟。一道代码题,有上亿个11位电话号码,请输出重复的电话号码,把去重之后的号码降序输出),根据题目展开,问了问数据结构与算法。
自我评价+吐槽:除了代码题,其他也是完美发挥,都回答上来了。
1. 代码题是个争议点,我写了个暴力解,第一问的空间时间复杂度都是O(n),第二问直接在第一问基础上去重+快排。面试官让我空间优化到O(1),我想了想貌似不行。类似的题有leetcode26,136,137,260,287,442,448,分别根据各自题目条件可以用位运算,就地排序,多指针来优化。可是对于这个题的条件来说,都是不满足的,不能用这些方法来做。我最后反问面试官,我的暴力解该怎么优化,面试官很欠考虑的说了上述几个方法,但是很明显在这个题的条件下不适用,我尝试和面试官讲道理(给他说这几个方法各自应该怎么用(表示我会这些方法),但是都有各自的使用条件,在这个题不适用),但是他根本不听。所以我认为应该是他出这个题的时候,因为是自己现场出的,已知条件漏了。
2. 数据结构和算法。因为我说我是自学的,他就默认我一定学的不好(实际我学的挺好的),包括上面代码题的讨论环节,他根本没有认真听我阐述。他又问了我几个常见的数据结构(二叉树,二叉搜索树,红黑树,b树,b+树等等),我都回答的不错,但是感觉他还是抱有成见。
三面(业务主管面):(通过)
时间:60分钟
流程:自我介绍,领导介绍部门架构和业务,HR面问题(优缺点,工资,工作地,offer情况,学校情况)
自我评价:这面其实没啥技术问题,而且基本都是boss在介绍,没我啥说话的份儿。这boss是个大boss(云服务下面一个三级部门的头,手下1000+人),很喜欢我,我对这个面试官也很钦佩,感觉温文尔雅,虽然有气场但是也和亲民。本来想投诉二面的代码题的,因为面试进程很愉快,并且这种部门大领导应该不在意这些细节,所以我也没再提那个代码题。谈待遇的环节,更是直说“我是华为为数不多的金牌面试官之一,权限很高,你尽管提要求,我尽量满足”,我说的25k-30k,说低了。最后定薪就按照这个下限给的。
字节:(两次机会,第一次简历挂,第二次二面挂)
春招正式批两个志愿:(简历挂)
吐槽:我寻思着我秋招简历都过了,不至于直接给我挂简历吧,至少给个笔试的机会吧,而且不至于两个志愿同时挂吧。结果联系了半天,终于知道了原因,也了解了字节校招的混乱:
1. 官网投递的虽然是两个部门,但是系统后台都是一个部门:我投的两个部门分别是data和商业化技术。内推人帮我查了,这两个部门都是同一个部门的同一个hr来处理的,而且本来商业化技术就属于data的一个子部门。
2. 投的不同城市,其实也是一个城市:我投的是南京,但是系统直接分到了上海。据hr说,南京就没有分部。
3. 我挂简历的原因:因为秋招正式批二面面评很差。那分明是kpi面,分明被搞了,还要给我写个很差的面评,我也是醉了。
春招正式批一面:(通过)
时长:60分钟
挂简历之后,我又联系了其他部门的hr,说明了情况,终于顺利拿到了面试机会。
流程:自我介绍,项目展开+基础知识(这里面牵扯到一些项目相关的基础知识,比如说大尺寸卷积核为什么能替换成小尺寸卷积核的堆叠(有效感知野尺寸相同),优点是什么(参数量更少,更多的非线性,等等)。soft-nms的具体实现,和传统nms相比的优点。一些CNN的创新点和具体实现,比如说mobilenet v1,v2的实现、优缺点,卷积层参数量运算量的计算等等),做题(nms的python实现)
自我评价:完美发挥,所有问题的逻辑清晰的回答上来了,代码题也很快的写完了。
春招正式批二面:(挂)
时长:60分钟
流程:自我介绍,基础知识(完全是推公式和写表达式,写常见的损失函数(MSE,CE,L1 loss, focal loss, smooth L1 loss), 推导LR的权重更新),做题(两道题:第一题,礼物的最大价值(找到一个矩阵从左上角到右下角的最大/小和,简单的dp)。第二题,全排列)
自我评价:完美发挥,表达式都写出来了,同时解释了每个物理量的含义和各自的使用场景,权重更新也推出来了,最后两道代码题也秒ac。
吐槽:本来感觉我稳过,甚至都能sp起步了,结果通知我挂了,挂的原因是我有低头看笔记本的动作。我直接爆炸,原因如下:
a. 面试官没有提前说明或者中途提醒我不能低头。假如真的不能低头,应该在面试前或面试中告知我。
b. 我承认我有低头,不过我是低头想问题和动手推一下公式,而且我好几次和面试官表达了我需要先在纸上写一下的请求,面试官也没有反对。因为这次面试以推公式为主,而复杂公式在在电脑上比较难表示,我认为这种情况下先动手在纸上推一下,然后把最终结果写在电脑上没有啥问题
c. 我回答上来了所有问题。因为我不可能提前知道面试的问题,假如真是我不掌握这些知识点的话,就算是有笔记,也不可能让我回答上来面试官的问题呀
d. 我的每一个回答和公式/代码的每一行,都一一向面试官进行了解释,假如是死记硬背,不能理解和一一做出解释
美团:(全部面试通过,口头offer,一个月后offer取消)
一面:(通过)
时长:70分钟
流程:自我介绍,项目展开+基础知识,python基础(生成器/迭代器原理、作用、区别,生成器定义方式等。可变/不可变对象,联系深拷贝浅拷贝。Is和==的区别),做题(实现nms)
自我评价:项目展开+基础知识这个板块有两处答得不好:一是有个团队项目我是负责人,面试官问了很多项目管理、分工相关的,之前没怎么准备这块儿。二是问了我个增加模型可解释性的底层原理很多技术细节(我做项目有用,简历也有写),不过这个方向总体比较小众,之前面试也没从来没被问的这么细,所以对很多细节准备不足(面试结束之后又详细看了下论文,确实收获不少)。除了这两点,其他地方基本都完美发挥。整体来说,这次面试表现一般。
二面:(通过)
时长:100分钟
流程:自我介绍,项目展开+基础知识,做题(两道。第一题,旋转数组找最大值。第二题,leetcode887 鸡蛋坠落,我做过的所有hard里思路最难的),HR面常规问题(优缺点, offer情况,学校情况等)
自我评价+面试官评价+吐槽:这次是完美发挥,所有问题都逻辑清晰的回答上来了,包括最后一道hard的代码题(这个纯属运气好,面试前几天刚看了原题。如果没提前看,我不可能能当场做出来,因为实在太难了)。因为这次面试时间很长,加上自我感觉不错和挺想去美团的,就少见的最后反问环节问了面试官对我本次面试的评价,面试官说对我很满意,基础很扎实,技术挺好的,等着offer审批吧。我就等啊等,等了一个月等到的是感谢信,我直接心态爆炸了。又去问二面面试官,想问下挂的理由和面试反馈,因为在面试过程中我自己感觉确实不错,也回答上来所有问题,面试官也对我进行了肯定。以下是面试官回复原文:“你好,非常感谢你对美团认可,也感谢能够抽出时间来参加本次美团校招面试。在面试过程中我和一面面试官都一致认为你的表现可圈可点。关于面试情况的建议,我个人认为我们都(包括我自己)可以在技术方面的持续提升。流程上,我们校招相关工作还在持续进行中,整体处理上需要一定时间,再次感谢你的积极主动,同时,也期待将来有机会能够再合作。”,这里解释下,虽然很官方,但是肯定不是统一复制粘贴的,因为我向他询问的时候是按照面试反馈和审批流程为啥这么慢(为啥一个月后才挂我)这两点来问的,他回答也是按照这两点来回答的。然后我追问我因为什么原因被挂了,没有收到offer,这老哥就不回我了··…哭!
滴滴:(二面挂)
一面:(通过)
时长:60分钟
流程:自我介绍,非算法岗必备的基础知识(计算机网络和操作系统),项目展开,基础知识(LR的预测函数,损失函数等)
自我评价+吐槽:自己发挥还行(除了计网和操作系统真没复习,其他都没啥问题),但是感觉像是kpi,没想到能过。像是kpi表现在两点:一是面试官很多问题在强行抬杠,后面会解释。二是竟然没代码题。强行抬杠最有代表性的一点是:让我向一个不懂CNN的人介绍CNN。我按照以下顺序来介绍:名字的全程和来历(什么是卷积,怎么做卷积的),然后CNN的常见组件(卷积层,全连接层,池化层,等等)等等。介绍过程中被打断,说我介绍的太详细太细节了,一个不懂CNN的人听不懂也不感兴趣。那我又说那就只介绍名字的全程和来历(什么是卷积,怎么做卷积的(加权求和)),他接着问,那对方不知道加权求和呢?我到这里就差点笑了,加权求和不是中学生都知道吗。我忍着笑说,假如对方不知道加权求和,那么对方可能对这些技术细节不在意,更在意CNN的实际应用/使用场景,又开始介绍使用场景。结果面试官还是不满意,说我介绍的太笼统了,没技术细节··…我直接放弃挣扎了。当时心想着,挂就挂吧,结果当天下午hr联系约二面,我真的惊了。
二面:(挂)
时长:60分钟
流程:自我介绍,对ai整体的看法(怎么看待计算机视觉领域前几年都在做gan,这几年都在做模型压缩这个趋势。怎么看待模型压缩现在主要的应用场景大多是计算机视觉。个人的职业规划),项目展开,基础知识(优化器(表达式+优缺点)。决策树的三种构建方式。boosting(xgboost和gbdt各自的原理,之间的区别和联系,优缺点)。Python底层原理(对象池)),做题(一道题,leetcode113/剑指34,都是一道题,二叉树中和为某个值的路径)
自我评价+吐槽:个人完美发挥,所有问题均逻辑清晰的回答上来,代码题也秒ac。同时面试过程中面试官也多次对我肯定,表示我技术过硬,基础扎实。结果一天后hr通知我二面挂了?我直接爆炸,问hr面试反馈和失利原因,hr说他没收到反馈,帮我问一下,第二天给我说。第二天(周五),hr一直没消息,我主动联系hr,没有反复。下周一继续问,还是没有回复,这也太不礼貌太离谱了,好歹找个借口糊弄一下啊,或者最开始就说查不到面试反馈。这答应了又不了了之,属实爆炸。而且kpi的话,一面就挂我啊,一面属实像kpi,而且我确实回答的不好。我这二面无敌发挥,面试官也那么认可,完全没有挂我的理由。不过我对这面试官印象很好,挺帅的,谈吐也很棒,技术不论是细节和整体,都令我很佩服。
快手:(一面过,二面取消)
一面:(通过)
时长:60分钟
流程:自我介绍,项目展开+基础知识(focal loss的表达式,解决了什么问题。分别介绍fast rcnn和faster rcnn。模型压缩中剪枝、量化、权重共享这三种各自的原理、区别和联系、优缺点。增加模型可视化中LIME这种方法的原理),做题(代码实现随机抽样)
自我评价:总体中规中矩,具体来说前半段莫名紧张,表述很不流利,感觉口吃比较严重。中后段开始就进入状态了,从介绍rcnn系列开始就不怎么紧张了,逻辑清晰的完美发挥。最后代码题做的不好,我只用了python自带的random来随机,据面试官介绍这个只是个最基础最简单粗暴的,面试最后向他请教了下该怎么做,回答是shuffle算法,又给我大致介绍了下原理。感觉这面试官真的很懂技术(表现在LIME那个论文他竟然也看过也有比较深入的理解。还有其他问题的考察方式,一听就是懂行的。),态度也很好。最后他直接说,“你基础挺扎实的,我对你挺满意的,我直接给你过了”,这也是唯一一次在面试结束之前明确告诉我面试通过的面试。
二面:(反复横跳后取消,然后流程终止)
吐槽:一面之后大概一周才收到二面邮件。然后第二天又收到邮件说,“因故本次面试取消,如有其他面试安排,会再和您联系。如果您有其他疑问请联系某某hr,电话:xxx,邮箱:xxx”。我给这个联系方式发了邮件,发了短信,打了电话,均无回应。我最开始以为是二面面试官临时有事,改时间了。结果第三天去官网一看,我流程终止了··…KPI就KPI吧,直接挂我或者不了了之就完事儿了,偏要搞这一出左右横跳,又装模做样给个联系不上的联系方式。
腾讯:(一面过,二面取消)
一面(通过)
时长:40分钟
流程:自我介绍,项目展开+基础知识(正则化,完整介绍ResNet那篇论文,常见评价指标,优化器等等)
自我评价+吐槽:没有代码题。完美发挥,所有问题都逻辑清晰的回答上来了。主要的槽点在于,面试结束之前,面试官说对我很满意,开始问我最早啥时候可以入职实习。我一听就惊了,因为我投的是应届生岗位,而且我确认了那个面试邀约邮件上写的也是应届生正式岗,而且校招官网上也显是我所在的招聘流程是应届生,而不是实习生。并且我的毕业时间只符合应届生要求,不符合实习生毕业时间要求。我把这个情况给面试官反应,他的回答是“啊?真的吗?那我结束之后再去确认一下”,然后过了几天我就流程结束了。有个小槽点是面试官看来没有亲自看过resnet那篇论文(《Deep Residual Learning for Image Recognition》)。在resnet那篇论文里,resnet通过residual block的shortcut connection解决的是(设计初衷)解决深层网络难还原identity mapping导致的模型退化问题,缓解梯度消失/爆炸只是连带作用(在resnet的后续研究的论文(《Identity Mappings in Deep Residual Networks》)里论证的)。而且resnet那篇论文里已经用bn层和实时监测梯度情况保证没有梯度消失爆炸的出现(同时也正因为这样,确认了梯度消失和爆炸不是导致模型退化的原因,才想到了恒等映射)。但是这面试官认为residual block的shortcut connection的设计初衷是为了解决梯度消失和爆炸。这说明他对模型退化和resnet的设计历程很不熟悉,同时这也是国内网上很多没有亲自看过论文的人的观点。不过整体面试流程和面试官态度都是挺棒的。
阿里:(面试全部通过,口头offer)
一面:(通过)
时长:35分钟(电话面)
流程:自我介绍,项目展开+基础知识,穿插着问了问个人情况
自我评价:没代码题。整体发挥中等偏下,尤其是前半段,贼紧张,疯狂口吃,原因如下:一是第一次电话面,本来就对电话有点莫名恐惧。二是开始就说时间只有30多分钟,只有两分钟自我介绍。我没准备过短版本的自我介绍(我正常自我介绍是大概10-12分钟的),不知道该介绍哪些,就更紧张了。不过面试官很耐心在引导我平复下来。然后进入问答环节之后就好了不少,毕竟心里有底。
二面:(通过)
时长:45分钟(电话面)
流程:自我介绍,项目展开+基础知识(介绍mobilenet v1和v2,densenet,目标检测的一阶二阶啥意思,等等)
自我评价+小吐槽:还是没代码题。完美发挥,每个问题都逻辑清晰的回答了,也不紧张(因为准备了下短版本的自我介绍,而且也不是第一次电话面了,大概流程了解了)。不过感觉这面试官水平有限,问的问题有点业余,我讲了半天他才懂,也没有很深入。
三面:(通过)
时长:55分钟(在线做题+电话面)
流程:做题(35分钟。题目是:给定数据集,当场实现任何一种分类器均可,但是要可以训练,预测,评估。不能调库),讲解自己的代码(5分钟),题目展开的基础知识(评价指标,为什么要归一化,不需要归一化的模型有哪些,为什么要样本均衡,怎么实现样本均衡等等)
自我评价+面试官评价:这次补上了前两面没问的代码题,直接整个面试都是代码题为主。自我感觉发挥挺棒的,不算完美。对于“不需要归一化的模型有哪些”这个问题不太熟练,最后说了决策树和用决策树的集成学习(bagging的随机森林,boosting的gbdt,adaboost,xgboost等等),面试官问还有哪些,我就真不知道了。其他问题和代码题都回答的挺好的。面试官说代码风格很好(其实我就是逻辑清晰,定义了个class,然后各种功能都封装到class里的function里,又简单写了下输入输出格式的备注),基础知识扎实。
四面(HR/leader面):(通过)
时长:20分钟
流程:自我介绍,HR面常规问题(优缺点,工资,工作地,offer情况,学校情况等),又随便聊了聊,比如说部门情况之类的。
搜狐:(一面挂)
一面:(挂)
时长:60分钟
流程:自我介绍,项目展开+基础知识,做题(20+分钟。一道题,不是leetcode上的题,是个自己出的题,题目具体忘了,大概是给一个数组,按某个指定顺序排序)
自我评价+小吐槽:除了代码题写的不算好,写的比较慢,而且很多边界情况考虑不周,其他问题都逻辑清晰的回答了。那个代码题,和面试官先交流了半天思路,因为leetcode上有一些类似的,用的方法有像dp,单调栈,多指针之类的,结果面试官一再提醒我说没那么难,就是最基本的思路。那我就开始写暴力解,思路很简单,但是很复杂,要考虑的边界情况很多。最后也没有写的很好。不过这面试官挺耐心的,也和我不断交流和积极引导。小吐槽:做代码题的时候,聊到了topK的解法,面试官竟然不知道时间复杂度O(n)的这种做法(快排的引申),他只会标准的快排。而且他最开始认为不可能优化到O(n),我给他讲了一会儿,他才懂。
挂的原因:标准KPI,因为当时给我约了面试时间之后,一直不给我发面试邀约邮件,我催了好几遍才发,然后面试邀约邮件不是那种官方的模板,而是zoom自带的,只有个面试时间和面试链接。面试前后在官网上都查不到面试记录,都显示还处于简历筛选的流程中。不过这个虽然是KPI,面试进程还是比较愉快,不像字节秋招二面那老哥直接人身攻击了。
爱奇艺:(offer)
一面:(通过)
时长:60分钟
流程:自我介绍,项目展开+基础知识,做题(两道题。第一题忘了,不是hard,秒ac。第二题leetcode 329,二维的最长递增序列,hard)
自我评价:除了最后一个代码题确实不会,其他完美发挥,都逻辑清晰的回答了。最后一个代码题,我只会一维的最长递增序列,给面试官讲了下思路(dp(时间复杂度O(n^2))和二分查找+单调栈(时间复杂度O(nlogn)))。二维这个按照一维的思路想了想,但是还是没ac。这个面试官特别好的现场手写了个答案,问我能不能看懂,然后交流了下思路,和这个代码的优化。补充一下,这面试官给我印象挺深刻的:男生,挺年轻的,长发飘飘,谈吐也逻辑清晰,技术扎实,也很温柔,像个文艺工作者。
二面:(通过)
时长:60分钟
流程:自我介绍,项目展开+基础知识,基础知识(FM那篇论文:表达式,优点在哪儿,和SVM的对比,和MF,SVD的对比等等。Wide&deep那篇论文:wide侧表达式和作用,deep侧表达式和作用,使用的优化器。介绍你认识的优化器,介绍你知道的正则化的方式,L1正则和L2正则各自的优点),做题(具体忘了,反正没有hard,当时也都秒ac了)
自我评价:基本完美发挥,除了wide&deep用的优化器这个问题回答的不好,其他所有问题均逻辑清晰的回答上来了。Wide&deep用的优化器用的优化器是FTRL,我当时忘了。因为这个论文看的比较久了,只记住了最核心的那些(wide侧表达式和作用,deep侧表达式和作用),这个比较细节的点真的忘了。不过面试官很好,从这个问题引申到我对常见优化器的了解,包括正则化的了解,因为这个FTRL其实就是要便于产生稀疏解,方法类似于L1正则。
三面(HR面):(通过)
时长:20分钟
流程:自我介绍,HR面常规问题(优缺点,工资,工作地,offer情况,学校情况等)
小吐槽下:前一天给我约后一天上午到现场面试,离谱。一是hr面不像技术面那么重要,而且就十几二十分钟,我个人角度有点理解不了有啥必要线下面试。二是我家不在本地,提前一天才说线下面试,这不太合理吧。不过hr看我立场坚定,就改成了线上面试。
携程:(offer)
吐槽下申请流程和提前批的审批流程:申请流程:携程在正式批之前有个提前批/内推批,简历经过人工筛选之后有可能能免笔试,然后提前开始面试。首先说一下这个提前批/内推批资格的获取,提前批是需要满足一定条件(学校排名,雅思成绩等等)才能获取,不需要内推,说是满足条件之后一定能免笔试。内推批是只要有内推码都行,不过还要人工复核。这俩渠道的申请流程和或者面笔试的描述很不清晰,比如说提前批的满足条件的证明材料根本没有专门上传的地方,也没有说格式要求。然后也没有说这俩渠道是只能选一个报名还是两个都可以报名。我问了HR,HR说这个无所谓,只要有内推码就行,证明资料任意格式在附件那里上传就行了。我就感觉这也太草率了吧。提前批的审批流程:我是提前批开始第一天就申请了,但是一直没动静。1. 甚至正式批都开始第一次笔试了,我也没收到笔试邀请,就离谱。第一次笔试结束之后几天,给我约一面,到头来还是没做笔试,但是这时间也太慢了。2. 内推群有个老哥,比我申请的晚,和我申请的一个岗位,还是个非985/211的非全日制的硕士,竟然都在正式批开始之前拿到了免笔试的资格(投完简历之后两个小时就收到了面试通知),在正式批开始前就开始面试了,挺离谱的。
一面:(通过)
时长:60分钟
流程:自我介绍,项目展开+基础知识(记不住了,不好意思),做题(也忘了,反正不难,也是秒杀了)
自我评价:完美发挥,逻辑清晰的回答了所有问题,代码题也都秒杀了。
二面:(通过)
时长:60分钟
流程:自我介绍,项目展开+基础知识(DenseNet和ResNet的各自架构和二者间的联系),基础知识(评价指标:AUC的计算,和accuracy相比解决了哪些问题。TPR,FPR,precision的定义),做题(两道题。第一题,python实现auc。第二题,numpy的基础操作,把输入数据的对应列做一些运算,然后输出)
自我评价:完美发挥,逻辑清晰的回答了所有问题,代码题也都秒杀了。
三面(HR面):(通过)
时长:15分钟
流程:自我介绍,HR面常规问题(优缺点,工资,工作地,offer情况,学校情况等)
小吐槽下:二面过了之后,卡了两三周才约HR面,我一度以为我又要被kpi了。
Oppo:(HR面挂)
笔试:(通过)
流程:选择,代码,简答
吐槽:oppo笔试是我见过的最奇葩最离谱最没诚意的笔试,具体表现在:代码题和简答题真是纯手写和画图,没有任何ide的,在文本框自行编辑。比如说代码题,特别简单,但是没有在线ide,而且说是可以跳出去用自己的ide,我刚跳出用自己的ide,结果被跳出警告了。而且代码题只有文字描述,没有实例,没有输入输出规范(输入格式、输入的边界情况、变量名、输出格式等都没有),这又在文本框编辑,也没有让考生注明自己用的语言,这真的可以判卷吗?真要判卷的话,改卷的人还得所有语言都懂,先花时间搞清楚代码语言。再就是内容部分,因为没有统一的输入输出规范,真的能判卷吗?
一面:(通过)
时长:60分钟
流程:自我介绍,项目展开+基础知识(卷积层需要的参数量和运算量的推导),做题(一道。标准的快排)
自我评价:完美发挥,逻辑清晰的回答所有问题。这面试官小哥哥声音也很好听,人也很nice,技术也过硬。
二面:(通过)
时长:60分钟
流程:自我介绍,项目展开+基础知识,做题(一道。题目记不清了,反正挺简单的,貌似是个简单的dp)
自我评价:完美发挥,逻辑清晰的回答所有问题。不过这面试官老哥,感觉技术不太行,很多地方我讲的时候他表情一脸懵,问题之间也没啥内在逻辑,也不够深入。
三面(HR面):(挂)
时长:25分钟
流程:自我介绍,介绍项目,HR面常规问题(优缺点,工资,工作地,offer情况,学校情况等)
总结+吐槽:挂的原因应该是我说的offer情况和工资情况吓住他了,我要35-40w,oppo给不到这个价,就给我挂了。而且他感觉有点看不起英硕的感觉,感觉英硕都水,国内985都厉害。说实话,我的观点是到了对于硕士来说,不论国内国外,个人的差距远大于学校的差距。而且我也是个G5,学校名气也还行吧,当初也能保研985。反正oppo给我整体感觉都不太好,不太想去,挂就挂吧。