互联网算法/数据岗 暑期实习 印象流面经

想记录下这段有趣的寻找互联网技术岗暑期实习的经历,总的来说毫无悬念一路血崩,首先笔试就几乎堵死了我的全部面试机会,侥幸通过内推或者职位本身不需要笔试或者手感爆棚混过了一两个笔试获得了几个面试机会,最终绝处逢生收获了唯一的offer。轻松砍下一堆offer的神仙和BAT抢着要的大神咱没法比,不过这种失败堆积起来的求职经历也有它存在的价值。希望秋招能够看到自己的进步!全文多凭印象流(具体算法题还是记得很清楚的,对话有些印象流),如有不当请指正~

简历投递: 字节跳动,美团,网易,小米,阿里,腾讯,华为,携程,旷视
笔试: 美团,小米,阿里,腾讯,华为,携程
面试: 字节,网易,华为,旷视
最终去向: 华为


题外话(关于笔试):
  • 各大公司笔试试题大同小异,基本都相当于Leetcode上中等难度题。
  • 难度排序(印象流):腾讯阿里携程笔试试题难度较大,美团和华为相对比较友好,小米是这里面唯一一家不允许使用本地IDE的,相当于强行提升了难度吧。
  • 还是需要好好刷题的,想要通过大厂的技术岗的笔试关,刷算法题必不可少。我投递的时候还没有刷过题,我投了很多公司,所以我的做题经验相当于从一次一次笔试中在积累(当然这几乎一点用都没有),所以带来的结果就是我基本没有通过什么大厂的笔试hhhhh。
  • 图算法非常重要,腾讯阿里携程美团全部考到了图算法。
  • 对于非计算机学院的同学,想进技术岗,四大计算机基础课首先选择数据结构,有它再加上leetcode刷题经验,感觉基本上过技术岗的笔试是大大有希望的。

面经(按照时间顺序)

字节跳动 AI-Lab

面试岗位: 字节跳动AI算法岗

面试时间: 一小时

面试内容:

  • 自我介绍。

  • 扒简历。
    重点是你写的做过的项目经历,我写了一个NLP的,就问了问我知不知道条件随机场什么的怎么用在里面(然而项目还没有到这一步,尬住)。
    写了一个卷积神经网络的项目,先让简单介绍一下在做什么。
    随后发散问下去,问如何减轻过拟合(说了三个但是好像还是不满足,会继续让你说,会给你再提示一些方向,让你想想还有没有)。

  • 算法题。
    第一道问题是给你一个六个面不均匀的骰子,如何用这个骰子制造一个只生成0和1的随机数生成器。(没有想到很好的方法)
    第二道问题是算法题并且要打代码,问的是给你一个有序数列,比如1,3,4,5,6,8 然后将其分成两块(比如分成1,3,4,5 和 6,8),把前面一块拎到后面去(变成6,8,1,3,4,5),然后让你找到这组新序列的最大值,并说说你这个算法的复杂度。(时间不够了,让简单说一下思路和复杂度就结束了)

建议:

  • 简历上的东西多多准备,别写不了解的东西,写了的东西顺带着周边的相关的知识也了解一下。

  • 问的题目如果不容易,可以和面试官慢慢探讨。尝试着给出一些方法,因为有些问题很开放,一开始提了一个想法,有不足但是能说得通,然后面试官就会和你一起思考这个方法的问题然后就继续改进,探讨式做题就行。

  • 算法题就是leetcode上的,所以刷题有必要。

  • 现在回过头来看感觉面试算法岗如果很熟悉李航的那本《统计学习方法》和leetcode上的题目刷过百来道基本上在知识层面上是没有问题的。

网易-定向预研-图形减面优化项目

注:网易下面还细分了多个大的部门,我投的是网易互娱,网易互娱下面除了正经的岗位(我投了一个数据研究员,不过笔试后没有下文了,考察了大量SQL,并不会),还有一个定向预研的实习岗位,就是我投的这个,这个岗位无须笔试,简历合格直接面试,而且可以既投正经岗位,又投这个定向预研,不投白不投,对吧。

面试时间: 两个小时

面试内容:

  • 自我介绍。

  • 让我讲一讲我的一个项目(图像识别相关),随后围绕这个项目开始展开以下问题。
    1.如何减轻过拟合
    2.PCA的原理和应用
    3.softmax层的应用
    4.batch-normalization的原理和作用
    5.讲一讲CNN的基本结构,有哪些层
    6.讲一讲CNN的特点(局部连接,权值共享那个吧啦吧啦)

  • 算法题。
    问题是青蛙跳过河,河上有一排木桩,每一次只可以跳一步或者两步,不可以不跳,请问有多少种跳法?
    这就是一个很简单的递归问题,面试官会很耐心的让你慢慢想,让你去列2个,3个木桩时的场景,然后简单写写看看有什么发现,我突然想起数构课上好像讲过一模一样的题目,依稀记得当时在看比赛,好像是开拓者打勇士吧,害,然后就说是斐波那契数列,然后就算过关了。

  • 手写代码
    (这时候直接换了一个面试官)
    问的是给你一个数列,找出其中特定的数(不重复)并删除。题目非常简单。
    首先问:你是不是不是计算机的? 我说不是
    再问:你会什么语言? 我说 python
    ——那python包的调用机制,就是这个import的底层机理是啥啊?
    ——。。。。。。我说我也就用用,可能对于底层的不是很了解。。。
    ——哦,那我们看题吧。
    我先写了一个1.0版本,因为题目很简单,确实没啥难度,主要就是边界条件和极端情况要考虑一下。完事了之后,他会抓着里面的每一行能问的全都给你问一遍。
    这个python里的列表这种数据结构有些什么特性?
    这个算法的复杂度是多少?
    listname[:i],这是什么操作?
    然后他说,我不希望你用列表的拼接,(我找到需要删除的元素后,直接把之前的和之后的用+拼接起来了),你知道为什么吗?(因为会被复制),希望你改进一下。
    改进后相当于直接前移一个元素,把最后一个元素踢掉,应用pop函数。
    这个pop函数的原理和用法?
    现在的空间复杂度?时间复杂度?
    然后题目把不重复条件删除,即可能出现多个需要被删除的元素,继续完善代码即可。
    总的来说问得非常基本,都是基本功,代码也是基本能力,题目也是基本题,对于代码的高效非常的看重,这个可能是大家非科班的一个盲区,以前看过一些计算机学院的同学写的代码作业,感觉我们往往还停留在如何用的境界,科班的和工业界会更注重代码的优美和高效

  • 主管面(同样是紧接着,一般来说是会间隔一段时间甚至数天)
    这一面倒是轻松自在了,聊得很家常。
    现在在哪里
    在学校的排名
    对网易有什么了解
    打什么网易的游戏吗(有些尴尬碰巧都没玩过)
    愿意实习的时长
    让我在接下里的时间里多了解一下图形学的相关知识,之后会用。
    说真的,我当时已经兴奋的和爸妈和哥们说 我稳了,看来还是没有受过社会的毒打…我等了整整两个月,等到了一封拒信,害。

华为-产品数据工程师

第一面:技术面(总共只有一面,据说腾讯阿里都是三面,华为还是挺省事的)

时长: 一个半小时

面试内容:

  • 自我介绍

  • 项目经历
    图像识别项目做了什么?得到了什么结果?
    你在提高分类识别准确率上用了什么手段?
    有哪些衡量分类结果好坏的定义?(F1,精度,召回率吧啦吧啦吧)
    如何解决过拟合这个问题的?
    SVM软间隔和硬间隔是什么意思?
    SVM的核函数作用是什么?
    k近邻算法的原理和算法复述?有无改进方法?(初始点选择可以改进)
    词向量是什么意思?
    word2vec模型描述一下思想?
    (紧紧围绕项目经历和李航的统计学习方法)

  • 算法题
    8个骰子,一个比较轻,7个比较重,最少称几次找到那个最轻的?
    说真的和脑筋急转弯似的,两次。3-3称即可。

第二面:业务主管面(一星期后)
——同济的啊?还是同济数学系的啊?不错不错,他笑你也笑呗
——家哪的?
——为啥想要来华为?(吹一波华为呗)
——在学校有啥烦心事没?
——有参加什么部门吗?
——你是统计的,平时学计算机的课吗?
等等等等,一堆闲聊。
最后欢迎加入华为。
不过。。这次我已经是表面笑嘻嘻内心MMP了,再也不相信他们的鬼话了。

然后就是漫长的环节,华为通过面试率很高,然后通过面试之后进入一个叫资源池的东西(俗称泡池子),接着等着部门来捞你,这个时候你会有一个排序,根据你的面试分数排,然后录用。
泡了大概一个月池子,等到6月初,然后收到了意向书,然后就是入职指引,算是真正拿到offer了,期间找到了一个泡池子的组织,看群里通过面试但是没有被录用的比例还是不小的,所以就算通过PUA为的面试一定不能提前高兴。
其实我感觉还是运气比较好,整个面试难度相对较小并且问的问题又刚好都比较熟悉,加上有一个问题和面试官聊得比较开心,可能给面试官印象比较好。海投的好处就体现出来了,按照概率,总有一次你会运气爆炸好呗,总有一次那个面试官看你很顺眼呗!多投多试。

旷视-视觉SLAM组

上来就是三道题,开了个腾讯文档,双方可以共同编辑,都不带寒暄的。

  • 第一道题:
    3*4的12个小正方形拼成的图形,问从最左上顶点出发,走到最右下顶点,只能向右或向下,问有多少种走法?
    这也是一个递归问题(递归这种思想着实高频考点),详细求解可以自行百度,我给出答案后,让我手打一个代码实现一下我的想法。
    然后问能不能优化?
    众所周知递归算法虽然思想很优美,但是会产生大量重复计算,自然解决方法就是反过来呗,从底层计算起,叠上去就好了,这样就消除重复计算了,然后再让打代码实现一下这个算法。

  • 第二道题:
    图是卷积操作和池化操作图以及最后的全连接层。然后让写出每一步的实际运算量。
    这要求对卷积、池化、全连接层具体是怎么进行的完全了解,全部了解的话很容易就能写出来。

  • 第三道题:
    给了你一堆数据和分类结果以及真实分类。然后问你精度和召回率的定义并写出符号表达式(即FP,FN那个),然后让根据所给数据画ROC曲线。问比这个分类器表现好的ROC曲线应该长什么样子。随便点了坐标系中的一个点(非曲线上)问该点的意义。

有惊无险度过三道题,然后面试官总算开始准备聊一聊了,首先说你这里写了一个图像识别的项目,我们聊一聊。
——简单介绍一下?
——项目做了多久?
——项目做到什么程度了?
——看你用到了LSTM,能不能简单介绍一下LSTM的原理和应用?
——你们是怎么解决数据量较少这个问题的?
——数据增强能不能详细讲一讲?
——知道GAN吗,能不能介绍一下原理?
然后其实我那个项目在实操上经验差一些,更多的还是停留在理论积累的阶段。
然后发现我并没有别的跟图像处理有关的项目后,他说:我们这个组现在急需能够迅速上手进组做项目的学生,可能你的实战经验还欠缺一些。
我说是的,我知道没戏了就干脆放开了和专业人士一波探讨,讨教经验。其实可能还是我们入手太晚了,相比较一些厉害的人已经多个项目经历在身上的确实差一些竞争力。


写在最后:

这么多次面试和笔试收获其实还是蛮大的。从最开始字节的面试全程懵逼问一个不会一个,衣服湿透,全程尴尬癌,到后来能够侃(大)侃(吹)而(特)谈(吹)。后来基本上面试都是全程笑嘻嘻,就算遇到不会的问题也能扯一些相关的,就算被问倒了也丝毫不会慌乱,不会就不会呗,顺带着请教一波面试官。更重要的是锻炼了面试的心态,这个真的很重要。

最后放一个我觉得应付面试很管用的资料,面试前翻翻,以养心神。
机器学习500问

你可能感兴趣的:(面试,算法,面试,python,机器学习,数据结构)