摘要

总的来说,今年秋招和我想象的差不多,我也蛮能认清自己的能力的,目标岗位是计算机视觉算法工程师,这是现在极其热门,入门相对容易的一个又很能挣钱的职位。投了大概有50+公司,大部分都是私企,少量国企和银行,没考虑考编。对于工作的地点,其实还是蛮想留成都的,但是成都只有旷视,好不容易面过了,然后没hc了,后面详细说。最终选择了上海云从,说下我对工作的认识,很多人都说平台大于薪资,我觉得没错,但是我觉得作为一个成年人要有自己的一些认识,喜欢就是喜欢,不喜欢就是不喜欢,没必要把别人认为好的,就理所应当的认为是好的,还不是大多数人,也许只有几个人这样认为,坏的也一样,需要有自己的判断。认识的方法,最好的就是去面试,放松心态,不单单当作一轮考试,更是要好好的了解这个公司,特别是和技术面试官的交流,他们往往代表了这个公司的技术氛围。

背景和行情分析

现在找算法工作的人工作背景大多分为几波人:

  • 最牛的:拿着一两篇顶会一作的人、有kaggle金牌比赛的人
  • 中上的:大厂实习、天池比赛top10、其他一些国内比赛的top5、好的开源算法实现项目
  • 一般的:一堆天池比赛top40以内、kaggle银牌、中小厂核心部门实习
  • 缺乏实战的:看了国内一系列深度学习的书,跑了一些例子,对于一些实际项目缺乏经验的人

我认为我属于一般的选手,所以找起来也蛮吃力的,经常被怼。说下我的背景吧:

  • CVPR 2019 关键点LIP workshop 并列第三(前两个并列第一的都是头条的),不是主力
  • 天池检测比赛 20,单撸的
  • 几个个天池检测 30,单撸的
  • 两个关键点 30, 单撸的
  • 行人重识别,研究一年有余,调参有效果,故事讲不出来,帮师姐混了一个二区的二作

现在一般的选手越来越多了,据我了解,成都这边的旷视成研院,从去年开始,每三个月大概有5个实习生,一直到秋招,大概有20来个实习生,这些实习生90%都拿到了offer。打比赛,需要一定的计算资源,对于自学的同学来说还是蛮苛刻的,现在视觉的比赛都需要庞大的算力,实习不了的同学我的建议是考虑数据挖掘方向,这些大都是在平台提供的环境里面实验。
就面试来说,面试官的面试的深度也在不断的加深,从一开始问深度学习和机器学习的区别是什么,到后来手算or手撸bp,一直到现在推各种项目里面的公式:比如优化函数的公式、自己项目里面loss函数的设计,机器学习里面SVM、LR的公式。更厉害的还有要你手写自己项目里面核心的代码。无论是知识的深度还是宽度都在不断的加深。
说完项目,说说计算机基础和算法相关的东西。我的方法是先看了《数据结构与算法》这一类的书,然后再开始刷题,网上也有很多视频和教程,然后就是《剑指offer》了,这个书在面试的时候还是很好用的,就是现在笔试的时候不是很好用了,但是可以有利于打开我们的思路。最后就是刷题了,力扣是真的非常不错的刷题的地方,我是先刷热门题,然后再分类刷一遍,最后再看看其他的,大概有四百多道。如果有计算机基础的人,可以大概复习一下操作系统和计算机网络,没有的人,建议好好找个视频看一下,国企还是银行这方面问的较多,即使你干的是算法,别人只招java。
最后说到编程语言,纯搞算法的公司,比如那些AI独角兽还是大厂的实验室,除了Python,还是比较看重的是C++,因为会涉及到实际的项目优化,or底层的一些实现。但是像银行或者研究所比较需要java,因为他们大多的业务框架都是java的。

我的工作

2019的秋招我大概投了有50+公司,面试的应该有20家公司,offer收到的不多,从一开始发offer的云从,到南京中兴算法部门的offer,到签完三方的华为软开和旷视。拿到云从offer后我基本上就没怎么投和面了。所以说从9月10号开始就结束了。后面有一家锐明在成都有研发中心,薪资很是诱人(年薪34w,成都),虽然流程都走完了,最后编程面的时候,被挂了,我人傻了,题都做对了,项目的几面都没有问题,这个给我挂了。下面我将分析下我的面试。

字节深圳算法

1.不均匀抛硬币,正面向上的概率为p,一共抛2k+1次,正面向上的次数比反面多的概率
2.圆周率pai的计算
r直接取值为1.0,还需要定义一个落在正方形中的所有点的个数PointNumber,每一个点都有一个坐标(x,y),x,y取值为0.0-1.0,利用Java随机数生成每个点,然后用勾股定理判断该点是落在圆内还是圆外,并统计落在圆内的点的个数InsideCircleNumber,那么π=InsideCircleNumber/PointNumber*4。当然,如果只计算一次的话,可能误差会较大,可以再增加一个计算次数CalcTimes,然后求平均值。
https://blog.csdn.net/weixin_33849942/article/details/92288900
3.股票问题
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。
+只允许两次
4.sql语句
5.softmax
今年秋招最早的是vivo,在我知道秋招的时候他们已经把提前批的offer发完了,然后就是oppo和字节,字节七月初就开始收简历和面试了,也开启了我的秋招,第一面,面的非常差,智力题算的有问题,股票也不想想了,然后就挂了。作图像的还是建议AI Lab吧,泡的久一点也不会像这样面试,根本不问项目。

虹软

一面:
1.项目介绍,自己做了那些工作
2.关键点检测多人单人的区别,以及解决方案
3.maskrcnn的结构
4.roi pooling的原理
二面:
1.项目介绍
2.图像放缩是怎么做的
3.hwc 怎么通过寻址到chw
4.链表倒数第k个节点
5.c++对结构体进行排序
虹软是八月末来成都进行线下面试的,本来我笔试没过,但是他们晒简历的时候,晒到了我,所以就叫过去面了,成都已经是全国站的最后几站了,就面试来讲,还是不错的,技术面试官小凯哥很不错,还加了微信,然后最后反手一个挂,哈哈。还安慰我排名比较高,但是因为hc的问题,所以没办法发offer了,要是后面有补招不会忘了我的(当然不会有的了)

网易有道北京算法

1.项目介绍
2.直接撸题:
字符串输入:Mg((CaO)3OH)2
字符串输出:H2MgO2
注意:原子字母个数超过1个,首字母大写,其余小写;个数为1,不显示;括号可能嵌套;数字可能超过个位数
是一个小姐姐面的我,带着森海塞尔的大馒头面的我,他们应该是作ocr比较多,对我的这些项目并不是很感兴趣。然后直接一道力扣hard的题目把我做懵了。
网易我还投了互娱,但是当时把邮箱填成我的网易邮箱了,没怎从查看邮箱,错过了几次笔试。。。所以也没搞了,

依图和追一科技

这两个公司面试的体验比较差,都是做NLP的人面我的,我扯了半天也get不到,他说啥我也很难理解,明明都是DL,为啥差别这么大?问的题目也就是大家普遍的东西:BN,感受野的计算,可分离卷积的计算等等。
依图过了一面,但是后面真的不想面了,就拒绝了,不想加班到12点的倔强。

腾讯某一个前端岗

先问了项目:
说出自己项目的亮点,
数据增强的方式,各自有什么特点,实际情况下如何考虑?
卷积核55和33的差别
迁移学习
如何进行finetune

计算机基础相关
进程和线程
TCP和UDP
三次握手
快排
相同值的三路快排
扔鸡蛋问题
投了腾讯的算法,然后被捞起来一起次,事业群都忘了,跟我聊了半天CNN,现在都是全栈啊。问了我一个很有意思的问题,为啥卷积核都是奇数(Padding的角度)。

旷视

一面:
项目的讨论
算法题目:
1.俩个有序数组的中位数
2.反转倒数第k个链表节点
二面:
手推各种算法:
1.双线性插值
2.softmax函数以及相关求导过程
3.目标检测roi_align是怎么搞的,能写出代码最好

因为流程的原因,我想转回成都,所以就直接最后成都的总监面了,刘院长又聊了一遍,大概就是聊了项目和闲聊几句。

云从

一面:
纯项目聊天,云从基本上会用跟你项目匹配的技术官给你面,面我的是做行人重识别的,他比较偏向于具体的项目问题,比如都穿的一样的衣服的人,校服,如何在这种场景下如何解决。
二面:
二面就是一个做目标检测的面试官,也很正常都是自己项目里面的东西,和当前目标检测的状况,聊了下anchor free的东西。
这个公司没啥能分享的,基本上就是面简历上面的东西。

其他的公司

还有其他的一些公司,图森我面了当天晚上就把我挂了,感觉聊的还行啊。也不用做题,可能不够喜欢吧。
顺丰科技,我总是被捞起来的很晚,但是面试都真的比较快,十多分钟,他们会出个开放性的问题,比如怎么实际部署一个模型啊,多路并发怎么搞的。现在也还在流程里面,offer估计都发完了吧,经常没事给你发些错误的邮件,然后又告诉你发错了,谁让他们不用moka,哈哈

总结

自认为对自己做的已经有深入的了解了,但是有些面试官还是能把我问的语无伦次,所以就是要多面才能发现自己问题,挂了就挂了,其实也没有必要把什么心仪的留到最后,因为你往往松懈的时候就是在你拿了offer的后期,一开始就往前重,机会也大,后面没有hc了,说啥也晚了。