弱校本科生算法岗春招实习历程 - 面经篇

3,634 阅读14分钟
原文链接: zhuanlan.zhihu.com
作者:wkroach
链接:弱校本科生算法岗春招实习历程--面经篇_笔经面经_牛客网
备注:点击链接可以跟作者交流

之前说过要写一篇关于弱校本科生如何找算法实习的长篇面经来回馈牛油们的,但由于最近有考试 + 面经太长 + 懒癌晚期,拖到了现在才写。。。。。由于我的春招经历太长,感受很多,有很多想写的,于是将面经分为两部分,第一篇为全面经,只有每次关于每次面试的大致题目和经历,第二篇为个人的准备和春招感想等等


个人基本情况
  1. 学校:普通211
  2. 成绩:院系,班级前5%
  3. 比赛:ACM区域赛银奖(感觉个人实力其实挺水的,拿到银奖主要还是队伍配合好。。。)
  4. 项目:两个计算机视觉相关的项目,基本都是自己xjb做的
  5. 机器学习:机器学习实战 + 统计学习方法 + 西瓜书 + deep learning 前9章(到CNN为止)
  6. 面试题:剑指offer + 编程之美2,3章 + leetcode经典题(前140多道,牛客上有)

PS:个人觉得,就重要性而言,ACM >> 和面试岗位相关的项目 > 机器学习


春招结果(时间顺序,括号内为结果):网易游戏内推(挂),阿里idst(3面挂),华为(性格测试挂。。。),美团(挂),360(挂),网易有道(挂),地平线机器人(1面挂),猎豹移动(offer),异构智能(offer),商汤(1面后没消息),腾讯wxg(内推3面挂),滴滴新锐(offer),face++(offer),腾讯wxg(offer,现场面过了),微软(打hiho拿了免笔试,然而并没有接到面试通知。。。),阿里Express(3面挂),百度(技术面过了,但没有hc了,挂),还有一大堆投了没消息的就不列举了。

最后综合考虑了很多,决定去滴滴。


详细面经

PS:机器学习和项目的部分,一般都是根据简历问的,简历上有什么问什么,因为我项目里用了SVM,所以几乎每次都被问,所以这部分还是得看自己的简历怎么写,不能照搬面经

PS2:几场我认为比较关键或者有意义的面试加粗了,可以重点看看

PS3:时间隔了太久,有些东西忘了,抱歉。。。


1. 网易游戏——人工智能工程师(内推)

笔试一般,第一题写傻逼了,最后4题过3,没接到面试通知,目测刷简历

ps: 队友正式笔试ak了,也没有接到面试,估计是因为网游比较看学校和学历


2. 阿里巴巴idst——算法工程师-机器学习(内推)

1面(电话面):简历面,面试官是菜鸟的。。。
  • 自我介绍
  • C++:引用和指针区别,
  • 解释内存泄露
  • 基本数据结构算法:介绍各种排序,
  • 堆和堆排序,
  • 动态规划和递归的概念,
  • dp自顶向下和自底向上区别,1道dp水题,
  • 最短路算法-dijkstra
  • 项目:介绍项目,难点有什么
  • 机器学习:SVM,支持向量与核函数的概念


2面(电话面):阿里云idst的1面
  • 自我介绍
  • 机器学习:SVM与LR区别,
  • SVM,LR与gbdt和random forest的区别
  • 数据结构与算法:
  • 2道图论题:1道dijkstra,1道开放性问题,超大地图的最短路


3面(电话面):阿里云idst的2面,面试官很厉害,虐哭我了。。。
  • 图论:第一道 dijkstra的改进,如果要求路径上不能超过5个红绿灯怎么做
  • 第二道 费用流。。。。。gg
  • 机器学习:有一个弱分类器和大量未被标记过的图像数据,如何人工标记图像来对分类器进行提升
  • 数学题:1道递推式求通项公式,
  • 1道最优化方面的题,具体忘了



3. 美团——数据挖掘(学长内推)

内推挂简历,笔试感觉答的还可以,没给面试,后来听另一位学长说是挂了学历。。。。


4. 360——机器学习(网申)

网易有道——C++(网申)

笔试后360挂了,网易有道没有消息

ps:队友360笔试和我分数基本一样,收到了面试并拿到了offer,网易他做的比我好的多(他是C++开发方向),直接挂了


5. 华为——大数据开发工程师(学长内推)

笔试ak(题太水),现场面试时我还带了成绩单,心想应该稳的,然后跟面试官谈笑风生,面试官还给我很多人生的建议

过了几天收到重做性格测试短信,重做后,4月中旬还收到电话谈关于性格测试的事情,最后没消息,应该挂了

1面(现场面):项目 + 操作系统(虚拟存储器功能) + 冒泡排序 + 人生

HR面(现场面):人生


6. 地平线机器人——算法工程师(内推)

一开始刷简历,后来打HR电话,重新看了一下简历,给了面试

1面(电话面):上来就问项目细节以及具体的实现,然后一共就问了15分钟,没了,估计是嫌我项目太水。


7. 猎豹移动——计算机视觉工程师

1面(电话面):面试官是个年轻的大姐姐,听声音还以为是HR。。。然而面试官相当厉害,从问的面试问题来看有可能是phd

自我介绍
  • 项目:直接指出我的项目没有直接使用深度学习是不对的(我用传统方法居多,最后才用了一点dl),数据量不够也有解决办法等等
  • 总之被劈头盖脸一顿鄙视了。。。
  • 机器学习:介绍 SVM,
  • 解释一下原问题和对偶问题
  • 开放性问题:加大训练数据量一定能提高SVM准确率吗?
  • 什么是过拟合
  • 什么是正则项,L1范式,L2范式区别是什么,各自用在什么地方?
  • 判别模型与生成模型的本质区别是什么

2面(视频面):主要考察算法以及coding能力,面试官是ACMer,上来先问我ACM经历以及我们校队是怎么队内选拔的等等。。。

  • 算法题:区间查询最大值,要求查询复杂度为O(1),正解为st表,我敲的线段树,也过了

1周后HR通知口头offer

PS:这次面试改变了我对于算法岗位的认识,我之前一直将机器学习算法当做考试一样学,学了很多,甚至自己推导,复现代码实现,然而这并不代表我真的学懂了。深入理解机器学习,要的是能够透过现象看清算法背后的本质,而且要有着自己对它的思考,不是仅仅停留在表面,哪怕把推导,特性什么的都背一遍也没有用。因为只要换个问题场景,问个开放性问题,如果面试者没有对算法有深入理解,没有很强的learning sense,很容易就被问倒了,这也是高水平的面试官喜欢问的,因为面试者水平会暴露的一览无余。然而深入理解算法,需要的是长期的学习,思考,以及丰富的实践经验,我觉得这也是这个岗位隐藏的高门槛所在,同时也是许多自学的同学和本科生所缺乏的


8. 异构智能——机器学习研发工程师(学长内推)

这家公司是一家人工智能startup,主要做深度学习和异构计算结合的产品,团队成员主要来自百度。从面试体验来说,这家公司挺棒的,面试官水平都很高,而且人都非常好,3面boss最后还说如果我去实习的话,对我只有一个要求,就是不要因为实习影响到自己正常的学习学业,好感动。。。可惜最后因为方向不是太匹配而且有更中意的offer所以没有去成,还是挺抱歉的。。。

1面(视频面):
  • 算法题:求完全二叉树的节点个数,要求最优解法,我写的是递归,复杂度O(logn*logn)
  • 剑指offer上一道比较难的题,具体忘了,总之很复杂


2面(电话面):项目:聊了一下项目的具体实现,以及遇到的哪些技术问题
  • 机器学习:解释一下CNN,
  • 解释局部相关性
  • 其他:用过哪些库或者工具,mkl,cuda这些会用吗?


3面(电话面):项目 + 人生



9. 商汤科技——算法工程师
笔试过了,难度一偏难(好多数学都忘了),考察知识点非常全面,从机器学习,线性代数,概率论,CNN到C++,图像处理,算法题都有

1面:全程聊人生,技术问的很浅导致我都记不起来问了什么。。。


10. 腾讯WXG——后台开发(内推)

一开始投的基础研究,一直没接到面试,后来怂了,改了后台开发。。。所以算法方向的同学可以跳过此部分

由于后台开发所需的计算机网络,C++什么的准备不是太充分,面试问得非常杂,所以忘的比较多

1面(电话面):简历面,都是比较基本的东西,C++,数据结构算法(第k大之类的套路题),项目
2面(电话面):算法面:1道动态规划,其实是区间dp经典题矩阵链乘的改版,答得不算很好
  • 1道大数据处理问题,具体有些忘了,答上来了
  • 1道算法题,跟异构智能面试1面的第二题一样,都是剑指offer的1道题,是回自型的矩阵找(x,y)位置的数是几
3面(电话面):有些问题跟1面重复,主要是网络,C++,一道开发性问题,具体忘了,但答得不好,再就是聊人生



11. 腾讯WXG——后台开发(现场面)

内推估计没过,自动转了现场面,还是后台开发岗

1面:面试官看起来咄咄逼人,但其实人很好,水平非常高。。。。。因为明明是后台开发的岗位,却照着我的简历问了一大堆机器学习
  • 算法题:atoi实现,主要看代码细节
  • 项目:两个项目都问了,具体的实现也问
  • 机器学习:介绍SVM,
  • 解释核函数,给了张纸让画图解释高维映射
  • 介绍CNN
  • 介绍决策树,谈了3种决策树及其区别和适应场景
  • 数据结构:红黑树,问和决策树的关系(毛线关系没有。。。),解释了红黑性,以及为什么每次操作都是稳定O(logn)的复杂度
  • 操作系统:虚拟存储器
  • 聊人生


2面:总监面,两道算法题 + 各种聊天(技术少,人生多)

  • 题1:看一段代码,填空
  • 题2:翻转链表


3面:HR面,聊人生,聊ACM经历,聊怎么学机器学习的,对现在ai领域怎么看


PS:拿到wxg的offer,我感觉主要是1面面得好,面完查手机时已经变了状态,再者就是ACM经历加分太多太多,东北地区只有3个拿到wxg后台开发offer的,而且都是有ACM经历的本科生,其中还包括我队友

PS2:wxg的HR大姐姐气质超级赞!!!!!!!!!!!!!!!


12. 滴滴新锐计划——算法工程师(内推)

面试体验超级棒,面试官水平都很高,而且面完还加了我微信,是春招中面试体验最好的公司之一

1面:面试官很棒,而且非常技术水平很高
  • 项目:问得项目细节,问得很深,项目中具体用了什么算法,方法的原理都会问,考察对自己使用的算法的了解程度
  • 机器学习:介绍SVM,
  • 原问题和对偶问题
  • SVM和LR的区别
  • 开放性问题:LR和SVM对于outlier的敏感程度分析
  • 介绍一下CNN,以及特点
  • 算法题:不难,边界情况都考虑到了,但是没写出最优解最优解


2面:面试官居然是管神!!!!!!!
  • 算法题:接着1面的题,让给解释了自己写的代码
  • 手动实现upper_bound
  • 聊简历,主要是ACM经历,比如拿银奖那一场排多少名(其实是银末555),还问了个人赛比如codeforce,gcj,topcoder等情况,总之管神觉得我ACM水平还不够,跟真正的的ACM大佬相比coding能力还有好大差距。。。。。。


3面:正常来说算法只有两面,但是由于管神担心我的coding能力不行,所以又加了一面coding面,面试官也很赞

  • 算法题:手动实现next_premutation,还写了一段python代码

PS:最后选择去滴滴,主要是进的组很不错,就是面试官他们组,做的东西也很前沿

PS2:ACM经历什么的,拿不拿好牌并不重要,关键是要能够提升自身的算法和coding能力,不然。。。就跟我一样惨了555


13. face++——research intern(内推)

1面:
  • 项目:项目细节,具体实现等等
  • 数学:一个概率题的计算,要用微积分,有些忘了,在提示下做出来
  • 算法题:链表排序,不允许直接交换节点的值,敲的有点bug,指针初始化有问题

就面了1个小时,第二天拿到offer,接到offer时被吓了一惊,以为是发错了,只怕是在梦里接到的。。。

PS:face++和地平线机器人是我整个春招面试中唯2没要我自我介绍的,很神奇,总感觉有点不对劲。。。


14. 微软北京——sde
之前打过一场hiho offer收割赛,收到了免笔试通知,所以后两场笔试都没打,然后就一直没有消息,面试通知也没有,尴尬。。。


15. 阿里Express——算法工程师-其他

之前idst挂了,1个月后自动重新投递了

1面:跟面试官谈笑风生,面试之前也是搞CV的,所以聊项目聊得特别嗨hhh
  • 项目:如何实现,遇到的困难,收获,如何调的参,总之聊得非常开心
  • 机器学习:SVM,gbdt,其他的都忘了,印象不深了。。。。


2面:聊了我的基本情况,实习时间,以及他们组在做什么内容等等,说下周(那天是周五)一,二HR会通知


3面:第二周周二接到面试电话,问的东西和1面差不多

然后挂了。。。明明感觉面得相当稳的,稳得不能再稳。。。结果过了好久一看,状态已回绝


16. 百度——机器学习(学长内推的,直接给的组里HR)

1面:问得很杂,一开始聊人生,后来问C++,计网,机器学习主要问SVM,贝叶斯,还有项目

2面:面试官超赞,水平很高,人很好

  • 项目:具体问了特征怎么做的,还有的忘了
  • 机器学习:SVM,贝叶斯
  • 开放性问题:统计全球会弹钢琴的人数,我用机器学习的思路答的,面试官还比较满意
  • 计算机网络:描述他发一句hello world到我这边显示,中间经历了哪些过程,我从应用层开始一层层往下分析答的,主要说http和tcp,网络层和链路层有些忘,但主要的几个协议和子网划分什么的也答了,面试官比较满意

最后还给了我一提了些建议,总之面试体验挺棒。今年百度hc非常少,没能去成百度,前几天另一个学长说他们组有hc了,但已经不太想面了,就算了。

总之面经部分就这么结束了,面试感想以及如何准备,还有一些经验都在下一贴说吧!
同时也祝牛客网的各位牛油们能够在之后的秋招中拿到自己理想的offer~

PS:写了一下午,累死了,有些地方有打错的或者排版不好的见谅,有什么修改建议可以尽管提出来~~