2020CV秋招求职的若干思考

时间:2022-07-25
本文章向大家介绍2020CV秋招求职的若干思考,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前言

一、秋招到底要招什么样的人

二、秋招该如何准备

1.储备基础知识

  • 1.1 C++
  • 1.2 基础数据结构和算法
  • 1.3 深度学习基础

2.落地工程能力

3.加分项技能

  • 3.1 CUDA
  • 3.2 infer推理框架
  • 3.3 熟悉深度学习框架源码

三、有哪些面试技巧

1.如何引导面试官

2.面试的那些黑话

3.面试要避免什么

  • 1 不懂装懂
  • 2 口气蛮横,没有礼貌

四、总结

前言

知乎上对算法岗的提问逐渐从“饱和”、““神仙打架”、“诸神黄昏”到“灰飞烟灭”,甚至预订了明年的“车毁人亡”(https://www.zhihu.com/question/409409134/answer/1367920384)

笔者毕业于2019年,参加了2018的秋招,结合自己秋招经历和今年听到的一些学弟学妹的秋招历程,简单谈下对CV秋招的看法。

注:以下观点仅适用于自动驾驶或CV领域的招聘和求职,有部分观点可能不适用于NLP。

一、秋招到底要招什么样的人

知己知彼,百战不殆。我们先从招聘网站随便抓两个计算机视觉方向的JD文案来看下吧:

视觉感知算法工程师

职位描述:
1.负责自动驾驶感知算法的研究、开发与部署。
任职资格:
1. 计算机视觉、模式识别、机器学习、电子信息、机器人等相关专业硕士及以上学历;
2. 熟悉当前主流的深度学习算法,包括但不限于目标检测、图像分割、多目标跟踪、多任务学习、多传感融合等领域;
3. 熟悉常用的深度学习开源框架,如TensorFlow、PyTorch、MxNet、Caffe2、Caffe等,要求至少对其中一种框架较为熟悉;
4. 具备较强的分析解决实际问题的能力;
5. 有良好的沟通表达能力和团队合作意识,并具备较强的抗压能力;
6. 至少精通C/C++或Python编程,有ACM经验者优先;
7. 有无人车感知定位算法研发经验者优先,有计算机视觉及模式识别领域顶会(CVPR/ICCV/ECCV/ICML/NeurIPS)或顶刊(TPAMI/IJCV/TIP)者优先,有顶级学术比赛成果或实际工程项目经验者优先。

SLAM算法工程师

职位描述:
工作内容:
1、负责研究SLAM、多传感器融合、地图构建以及定位等算法;
2、负责算法在嵌入式平台的实现、优化以及产品化;
岗位要求 – 必须:
1、熟悉EKF、粒子滤波、g2o、BA等算法;
2、扎实的数学功底,精通线性代数、概率论、微积分;
3、具有良好的英文听说读写沟通能力,学习能力强,求知欲强烈;
4、具有良好的团队合作意识、沟通能力、协调能力,能够承担工作压力;
5、精通C++、Matlab或者Python;
岗位要求 – 优先考虑:
熟悉开源机器人操作系统ROS,有相关开发经验

上面两个JD文案有“实现”、“开发”、“落地”和“产品化”等字眼,这意味着现在对算法工程师的工程能力要求更高了。

今年疫情大背景下,纯做研究的部门已经很少了。腾讯优图实验室负责人贾佳亚于2020年离职,重返港中大任教。字节跳动 AI Lab 负责人马维英也在今年离职,加入清华。这些新闻其实也能反映出一些行业趋势:AI研究对于公司来说具有重要的意义,但是在落地上的困难,以及短期内收益上陷入困境确实普遍的现实情况,使得研究院面临各种竞争压力,纯粹的研究与快速商业化之间的矛盾,亟待解决。

CV算法工程师在今年更多地变成了落地算法工程师,笔者所在的公司甚至都不招研究性算法工程师,HC全部留给了落地算法工程师。

二、秋招该如何准备

1

储备基础知识

1.1 C++基础

恰好上面两个JD文案都要求精通C++,这不是巧合。 只要你是CV的算法工程师,C++是最重要的技能。

可能有些同学会觉得,如果投递CV算法研究员,只需要掌握Python和深度学习框架就可以,无需C++这个技能了。但算法工程师,首先得是个合格的工程师。正如贾扬清大佬前段时间所说:

不存在算法工程师、调参侠没有市场 https://www.zhihu.com/zvideo/1280989974280634368

在实际工作中,想让一个模型更小、运行更快、效果更好和保持业界领先的话,只掌握Python和深度学习框架是不够的。

一方面,我们听过的几乎所有深度学习框架:TensorFlow、PyTorch、Caffe、NXNet、Paddle和OneFlow等,都是C++写的。另一方面,即使做CV算法研究,有时也要去看Python API的C++源码和实现,手写一些复杂的算子OP。毫不夸张的说,CV万物皆基于C++。

CV求职,C++再怎么熟悉都不为过。

1.2 基础数据结构和算法

实习那会mentor有一句话,我至今印象深刻:“不管候选人简历多么好看,发过多少paper,比赛拿过多少奖,递归二叉树和二分查找都写不出来,毫不犹豫刷掉!”

作为企业招聘方,我觉得最快筛选候选人的办法,就是拿leetcode去考察。如果对方能写的出来,至少说明此人有准备过面试,具备基本代码能力。但如果候选人写不出来,要么说明对方没准备过面试,要么不会写代码。

在实际工作中,基础数据结构和算法反而用的不是太多,但在招聘求职中,这个占比很重。因为这是你通往后面面试的必经之路。都2020年了,哪家CV公司还会招只会吹牛不会写代码的候选人呢?

狂刷leetcode和剑指offer,二叉树、字符串、数组、排序和动态规划都要熟悉下。至少200道题目,才能在笔试游刃有余,否则就有可能败在笔试。

求职前,leetcode题目刷再多都不为过。 记得用C++刷leetcode哦(狗头)。

1.3 深度学习基础

这部分内容包括CNN、深度学习基础知识,常见的网络结构和经典CV算法。

另外选一个主攻方向,比如2D Detection,那就需要精读近几年检测方向的论文。单阶段双阶段检测算法,Anchor Based和Anchor Free算法等等。在这个特定领域深耕,保持深度之外,在其他segmentation、MOT和ReID等方向,也要阅读一些优秀的文献,保持广度。

有少部分公司在面试时会要求手推公式,这里也要求CV求职者具备一定的数学功底。比如矩阵、微积分和概率论等。

2

落地工程能力

步入职场,最主要的技能就是解决需求,实现代码。这就需要我们具备较为扎实的落地工程能力,包括调试、操作系统、内存机制、多线程、低延迟和网络等等,这些才是计算机专业的核心竞争力所在。

快速上手源码,能把想法和需求转为代码,落地实现,这是对每一个CV工程师乃至所有领域工程师的要求。

3

加分项技能

这部分内容可能对你获得SP或者SSP offer有帮助

3.1 CUDA

会CUDA意味着你有可能手撸一个深度学习框架,对深度学习的计算过程掌握更加透彻。旷视大佬张祥雨这篇介绍文章(https://news.hexun.com/2019-04-22/196906796.html)给我留下印象深刻的一句话就是:他是唯一一个在巨佬堆里会CUDA的人。

3.2 infer推理框架

现在训一个深度学习模型,几乎高中人都可以做。脸书的两代Detectron框架、陈凯博士的MMDetection框架和百度的视觉算法库,几乎已经把深度学习经典算法复现的一干二净。训练模型,几乎只是git clone and run的流程。

但在infer推理领域,因为深度学习部署面临的软硬件差异较大,很难做到一家独大。TensorRT、OpenVINO、 MCNN、MNN、TNN、TVM和Tengine等,形成了百家争鸣的局面。CV求职者,如果对推理infer框架的熟悉,无疑是一个很强的加分项。

3.3 熟悉深度学习框架源码

这部分和上面一点同理,这里只说一句,毕业那年,我们全年级薪资Package最高的巨佬,最后去图森写MXNet了。他在校期间就阅读MXNet源码并有过贡献,面试也非常顺利。

三、有哪些面试技巧

1

如何引导面试官

自我介绍快速讲解自己亮点项目,然后埋下一些伏笔。比如说自己在这个比赛用了一些trick,提分比较明显,但在介绍时不详细说明白。面试官可能在后续面试中追问这些细节,这样就有可能引导面试官进入自己擅长的领域。

2

面试的那些黑话

  • 等通知,以后联系,等消息,hr会告诉你的——>如果现场面试,这些话几乎暗示你挂了;如果是电话或者远程面,可以再等等看。
  • 你的情况我了解了,我把简历转给其他组——>除非你这次面试答得不错,或者面试官转简历意愿口气强烈,不然也是婉拒说辞。
  • 我们会去你的学校招聘,到时候联系——>面试官发好人卡了。
  • 面试完,但没有问你有没有什么要问的——>有可能面试官比较匆忙,但更有可能你没有给面试官留下什么较好的面试印象。
  • 注意人事同事来电,等下一轮面试官——>正向反馈,该次面试通过。
  • 我们非常欢迎你来看看或者了解我们这里——>正向反馈,该次面试通过。
  • 面试官面试中加入一堆公司或者部门业务介绍——>正向反馈,对你感兴趣,该次面试大概率通过。

1

面试要避免什么

不懂装懂

简历上的每一个名词,算法都要达到了如指掌,细节如数家珍。切忌为了简历丰富疯狂堆砌,一旦被面试官追问就原形毕露了。

另外面试时如果遇到不会的问题,说不了解就可以了。千万不能不懂装懂,不然会给面试官留下浮夸的印象。哪怕后面面得再好,对方也会认为你不靠谱。

口气蛮横,没有礼貌

极少数时候,可能因为某些原因,和面试官怼起来。我的确也怼过一个面试官,原因是他把我搞的所有东西说的一文不值,我反驳了面试官,我说这东西一文不值,为何没有人在网上做出来开源呢。当然,这个也是小插曲。就是不是所有的面试,我们都可以保持情绪冷静。但无论如何,我们都得保持礼貌,不能对面试官恶言相向。哪怕这个面试官业务水平和礼貌不在线,也要竭力保持礼貌。先为人,再做学问。

总结

求职本身就是一个不确定的事,有很多因素影响,现场面和远程面感觉也相差甚远。一篇文章很难全部总结出求职面试的方方面面。但多经历面试总能掌握出一些规律,除了极少数offer收割机,大多数人的求职过程都比较相似。秋招类比抗日战争,毛爷爷的“论持久战”思想对大多数人都比较适用,速胜论和亡国论都不靠谱,只有持续的总结和迭代,才能走向秋招胜利的彼岸。

虽然2020年内有疫情,外有贸易战,但中国国企私企加起来有成千上万,秋招还是可以上岸的。愿每一位学弟学妹求职顺利,得到满意的offer!