前言 在卷成麻花的2022年,一个没有上述布景、没有名校撑腰的一般科班小硕能入坑中大厂的CV算法岗吗?作者现身说法:仍是能!
作者:记忆的迷谷@知乎(已授权CV技能攻略转载)
来源:mp.weixin.qq.com/s/FokKQ2eTs…
欢迎重视大众号CV技能攻略,专心于计算机视觉的技能总结、最新技能盯梢、经典论文解读、CV招聘信息。
计算机视觉入门1v3辅导班
写在前面
是的,本年的秋招确实是肉眼可见的难度添加:缩招、裁人、毕业生人数爆破,这些要害字已然成为2023届秋招的代名词。竞赛剧烈,算法岗入坑的难度更是直线上升。卡榜首学历、卡名校、卡关键实验室……这些“根本操作”早已司空见惯。
在卷成麻花的2022年,一个没有上述布景、没有名校撑腰的一般科班小硕能入坑中大厂的CV算法岗吗?
我的答复是:能,可是很难、很卷,且容错率较低。由于CV算法岗的竞赛对手根本都在985分段,且动不动便是某C9高校的关键实验室。
由于身边的人不走算法岗,所以全程根本靠自己探索,期间遇到了各种困难、走了许多弯路。为了记载这段有意义的阅历,一起给自己相同身世一般的师弟们(实验室没有师妹)供给CV算法岗的作业思路,将自己的整个秋招的真实进程共享给咱们。【长文正告↓↓↓】
导读:
本篇文章首要分为以下几个章节:
-
【布景】,【进程】首要介绍了自己秋招前的状态,以及从研讨生入学到秋招的进程。
-
【需求掌握的技能】从硬实力、软实力两个方面介绍秋招时能够添加自己竞赛力的点。由于每个人的根底状况不同,CV算法岗也有较多细分方向,本章节仅供参考,大佬请直接略过。
-
【总结】秋招的一些小的建议。
弥补说明: 1. 阅览文章之前,请务必了解“幸存者误差”这一概念,CV算法岗的秋招办法严峻,请保持沉着。 2. 本文的“一般”一词是指本科双非、硕士非985、非关键实验室、无顶会、投递岗位为CV算法岗的计算机科班应届研讨生,并无得罪之意。
布景
概述:
自己本科双非软件工程专业,硕士一般211的计算机技能专业,现在研讨方向是计算机视觉。
秋招拿到【虹软、vivo、OPPO三家offer,均为计算机视觉类(CV)算法岗,有SP也有大白菜】(除去国企银行),和大佬们的offer没得比,但感觉根本接近自己的预期。(尽管已于9月获得虹软转正意向书,为了给自己的秋招不留惋惜,一起能够经过不同的offer明晰自己在秋招大军的全体定位,所以坚持完好参加了秋招)。
详细状况:
- 身边的环境
除了我的大大大师兄(高我三四届)拿了某中厂算法offer以外,咱们实验室就再也没有人走过算法岗。包含同门在内的同届同学,也根本都是开发。师兄和同学也都劝退我走算法,改开发。
在我找到榜首份算法实习之前,大部分人都以为我挑选这条路是一个头铁且愚笨的行为,且常听到古里古怪的言论。
每次刷知乎,总能看到“19年算法岗供大于求”、“20年算法岗诸神傍晚”、“21年算法岗灰飞烟灭”,本年又换了个四字词语 –“人世炼狱”。各路“过来人”也都是全方位劝退。
好在自己的家人比较支撑我自己做决议,只不过最终挑选offer的时分,家人们曾劝我躺平一个随手拿的国企,放弃自己的专业,我要真想躺平还用的着这么卷么,大无语。
总之,身边自始至终支撑我走算法岗的,四舍五入就只剩自己了。没关系,意料之中罢了。
- 自己具有的一些条件
导师不会push咱们给他发论文,且只需完结规定的使命,就允许咱们自己出去找实习。【秋招上岸的要害性要素】
实验室有免费运用的入门级计算资源,尽管仅仅1080Ti这种级别的显卡,且其时还要和师兄一重用。可是拿来学习跑跑实验仍是捉襟见肘的。一起家里赞助更新了一台2060GPU的笔记本,用来本地调试也挺好使。
校园的线下课程在研一期间全部上完,研一课程完毕就能够做实习早鸟。
进程
本节按照时刻线的次序,叙说了自己历时两年的秋招阵线。
【初识算法】2020年9月~2020年10月
完毕摆烂、确认方向阶段。 研讨生入学,之前联系的导师不可思议把我鸽 了,不得不从头找导师。
我的挑选标准有两个:一是教授,二是允许实习。在本科国奖托底和自己死皮赖脸的坚持下,我现在的导师给加了一个名额,顺畅入组。
导师给我明晰了CV的研讨方向,一起共享了一些资料(由于才学疏浅,其时没能看懂,后边就跑去B站知乎学习了),每周组会汇报自己的学习进展。也是这个时分发现自己对CV挺感兴趣的,也是初生牛犊不怕虎,确认自己走算法岗的方向。
【走出迷茫】2020年11月~2021年2月
夯实根底阶段。 由于导师组织的使命首要偏学术,我也意识到:假如仅仅靠导师的辅导、墨守成规的学习就去找算法岗作业,是远远不够的。所以,自己找到了一位长辈点拨自己体系地入门深度学习。之后拟定学习方案、学习根底衬托知识、挑选和阅览paper、debug源码、参照已开源的作业来复现未开源的论文……在完结导师布置的使命之余,花了很多时刻,算是搞理解深度学习的路子了。在此期间,完结导师组织的项目、自己找一些开源的项目弥补学习,能够加深自己的理解一起还能润饰简历。
其时的部分学习方案(分类&检测篇)
由于搞算法除了python的根本要求外,C++多少也要会一些。也是从这个时分,拟定了刷力扣的长期方案,逼迫自己学习C++,编程题也全部用C++写。刷题不求多,但重在把思维和语法熟练度练习好。
【步步为营】2021年3月~2021年5月
备战实习阶段。 春节给自己放了半个月假,开端着手找榜首段实习。听了师兄的建议(其时师兄在鹅厂实习搞开发,respect),开端刷牛客面经,查漏补缺,力扣确保一周刷七题。
一起体系地收拾之前学习的笔记,也是这个时分我写了知乎的榜首篇博客,并立下了一年写完50篇技能博客的flag(已于2022年4月达成)。
【初露锋芒】2021年5月~2021年6月
榜首段实习的投递、面试阶段。 榜首次投实习没有阅历,先投了一些难度拉满的大厂:商汤、字节都给了面试,可是面得稀烂,商汤的面试官更是在无coding题的状况下问了我两个小时的问题,面试完毕后当场自闭。
后来总结了面试失败的阅历,也补上了自己面试中没有答出来的知识点。现在想想,其时的我真的是愚笨备至,就应该先面小厂,堆集面试阅历,起码不至于面试往后脏了自己的大厂面评(由于秋招的时分,这两家秒挂我的简历,应该是自己作没的 )。
阅历了十多场面试,也堆集了满足的阅历,最终自己如愿拿到了vivo AI研讨院的算法岗实习offer。
【渐入佳境】2021年7月~2022年1月
榜首段实习。在我的软磨硬泡下,导师先是同意我出去实习半年(乐滋滋)。
入职今后,令人窒息的压力接憧而至:老大给我的研讨方向是神经网络结构搜索(NAS)方向 — 一个自己从来没听说过的预研方向,与此一起,同组的实习生来自武大,还比我早来一个月,需求赶快跟进她的进展。所以,自己白日调研相关作业、复现一些论文、慢慢接手项目,晚上加班读源码、刷博客(卷到了周围的实习生,真实抱歉)。榜首个月顶着压力,总算把进展拉上来,项目步入正轨。
9月,刚好看到Kaggle有个CV新赛,刚好这时分蓝厂撤销大小周,所以就报名参加了。之后差不多两个月的时刻,白日赶项目,晚上和周末搞竞赛。
11月,项目需求优化的模型计算量首次降低到100M以下,一起竞赛也拿到了铜牌(榜首次参赛,拉胯的成绩,但尽力了)。
后边的时刻便是边实习边预备开题,顺畅完结了实习阶段的使命,拿到了口头转正(可惜AI研讨院本年不招人,靠自己从头走流程拿的印象算法部,权衡了一下,仍是想待在自己了解且喜欢的组),与nice的同事们离别。
【好事多磨】2022年2月~2022年5月
向导师争夺了第二次实习的时机,开端着手预备暑期实习,一起和之前实习的武大同学合作一篇论文。但没高兴多久,上海的疫情就爆发了,几乎整个上海的实习HC都没了,与此一起校园疫情封楼,天天牢饭吃到心态爆破,差点想转开发(庆幸自己没转)。
尽管有了一段大厂实习阅历,但找第二段实习甚至更艰难:收到一堆海笔,只收到了三家面试(某周的周一面了美团,面试官很nice,面试也顺畅,他还表达了期望我面试通往后早点过去实习,效果周五反手收到个感谢信☺)。磕磕绊绊拿到了第二份offer — 虹软的计算机视觉算法岗实习。
【稳中求胜】2022年5月~2022年9月初
第二段实习。 这次研讨方向是视线检测,由于在蓝厂的实习堆集了许多项目阅历,所以不管是搭环境仍是上手项目都很快。
咱们组一切的实习生每周都会单独开个周会,能够了解咱们的进展,一起还能偷学一些技巧,因此在这边自己生长的速度很快。和我搭档的实习生是天大的,我俩都做视线方向,常常一起评论项目中遇到的难点,如我mentor所说,1+1 > 2,不管是实习仍是秋招,找个伴共同进步总好过孤军奋战。
7月~9月初,作业时刻肝项目,下班今后的空闲时刻刷题、刷面经,预备转正辩论,投提前批(算法提前批卡校园,根本全泡池子),投秋招,根本每天搞到11点才歇息(转正名额有限,不敢做赌狗)。
8月底顺畅经过转正辩论,9月初拿到了虹软为数不多的转正意向书。
【冲刺结尾】2022年9月~2022年10月
收获的季节。实习完毕,导师召回返校,一边做导师组织的作业一边搞秋招。
一共书面考试了二三十家公司,面了六七家(由于不是985、研讨方向有差异,也被拒了蛮多)。最终到手虹绿蓝三家offer,于十月中旬尘埃落定。平常常常做RGB图画算法,没想到拿的offer也刚好涵盖RGB三种色彩 ,或许这便是缘分吧。
需求掌握的技能
硬实力篇
1.根底知识
入坑算法岗的根本功。引荐李航教师的 《统计学习办法》 以及周志华教师的西瓜书。入门深度学习引荐斯坦福 《CS231N》 课程(在B站上能够找到中文字幕版)。不太引荐一上来啃《深度学习》(花书),对小白不友好,可是后期能够当工具书运用。
确认了自己的研讨 / 学习的方向后,能够在各类博客上找到对应方向大牛收拾的paper list,选取一些经典必看的论文,并在Github中找到对应的源码阅览【必定要看源码,必定要看源码,必定要看源码】, 面试的时分,资深的面试官常常会问一些细节问题,而只要你理解了源码是怎样完成的前提下,应对这些问题才能挥洒自如。在学习时,要及时总结和收拾,将论文里的知识精炼成自己笔记的进程,其实就相当于模仿答复面试官问题的进程。收拾的东西多了,就变成的所谓的“陈腔滥调文”,相较于开发,算法的面经更灵活,面试的问题也因人而异,一份归于自己的“陈腔滥调”很重要,一起它也是实习和秋招面试前最有价值的复习资料。
2.实习
假如导师允许的话,【必定要尽早出去实习,必定要尽早出去实习,必定要尽早出去实习】。 实习阅历越丰富、实习公司的层次越高、实习的时刻越久,你的竞赛力越强。曾经有HR和我说过,CV算法岗的一般分段同学很少能进流程,假如没有实习阅历,自己大概率会被淘汰。
PS:实验室不给实习的同学,也不要灰心,实习不是入职算法岗的必要条件,可是假如你凡是有时机实习,必定要好好把握。
3.项目
冷知识:在简历和面试中把自己的论文以项目的办法描述,面试官会更感兴趣。
“假如你宣布的不是顶会,那么我更期望你用项目的办法叙说你的作品。”这是面试时一位面试官的原话。所以在这里,我把自己的论文归类为项目,且当我把论文以项目的办法更新到简历中,后边的面试会问到这部分作业的频率明显添加。
很多人觉得自己的项目或许不是那么出彩,觉得拿不出手。在这里完全能够消除这个顾忌,咱们投的又不是天才少年方案,所以只需能把自己的项目讲理解,言之有理,都能够作为一个加分项。在面试前,必定要梳理好自己的项目,例如处理的问题、使用场景、立异点、难点、数据是怎样处理的、badcase是怎样优化的、后边还能改进的地方……讲项目的时分必定要自傲、有条理,建议面试前能够多试讲几次录个音。
4.竞赛
打竞赛有两种战略:
榜首种战略:命运好,碰到了自己了解方向的竞赛,在竞赛中尽或许刷高自己的名次。
第二种战略:只要自己感到生疏的方向(不过也是CV类竞赛),用最快的时刻上手该方向,然后尽或许深入,争夺竞赛中较好的排名。
我其时的命运并不好,没有遇到自己了解方向的竞赛,所以挑选了第二种战略。花了一个多月的时刻,使用下班时刻和周末的空当去打了场kaggle竞赛,由于榜首次参赛加上精力和水平有限,以一枚kaggle的铜牌收场(让各位路过的大佬见笑了)。可是面试时,向面试官展现快速上手生疏范畴作业的才能,一起把自己的立异点以及处理问题的思路、所选用的办法都讲清楚,也是一个不错的加分项。
5.编程才能
老生常谈的问题,不管是书面考试和面试,手撕代码都是不可或缺的一个环节,最有用提高自己编程才能的手段便是刷题。
由于自己在考研时就有深入学习过数据结构,且本科在打一些编程竞赛时也有体系地练习过一段时刻,所以根底还算比较厚实。假如编程根底比较差的话,引荐B站上一个up主共享的录播
视频:LeetCode刷题班(C++)(www.bilibili.com/video/BV1GK…
除了上述视频中的标题,力扣的《剑指offer》《热题Top100》系列也是很经典的标题。假如想按章节刷题,《代码随想录》也是不错的挑选。一些高频题型或许自己榜首遍没吃透的标题,最好再二刷三刷加深理解。自己的刷题量在300道左右(后期没有刷新的标题,而是二刷甚至三刷把算法吃透),归于中规中矩的水平,书面考试中的hard题写起来有些费劲,可是面试中手撕代码根本都能A。
软技能篇
本章节是自己在实习中和组内大佬们作业、相处中总结出的一些内容,或许对咱们的实习转正有协助,也是我以为自己能拿到转正意向的一些重要要素。(因人而异,仅供参考)
1.表达才能
【搞CV,做出来的是东西,但东西是给人做的】 认清这一点很重要,不要只沉浸在创作的进程中,要能把自己的想法、完成办法明晰明晰地表达出来,他人才知道你这段时刻在做什么,做出了什么。
千万不要自己明明做出了一些效果,却由于支支吾吾表达不清楚,让咱们觉得你很水。要时刻紧记:不管我做了什么,只需是我自己做出来的,都能够给人讲理解。
2.沟通才能
【明晰地答复问题 & 高效地发问问题】, 有用沟通首要体现在这两个方面。
大部分人都能做到前者,答复问题前,先大概想一下应该从哪些点来答复发问者的问题,不要想一出说一出,这样他人会以为你的逻辑很紊乱。
这里关键介绍后者。首要,要明晰什么问题能够问。 举个比如,项目环境怎样建立,或许百度上/公司内部文档能搜到的问题,自己费点心思处理就好。假如自己尝试处理但处理不了,那这种问题就很合适问。其次,问问题要有自己的考虑,假如遇到一个不明白的问题,能够先说一下自己尝试处理这个问题的办法,以及自己的理解,然后指出到底哪里的细节不明白,这种状况对方一般很愿意解答。最终,问问题选准时机,假如你觉得这个问题对方需求花时刻才解释清楚,就找个对方有空的时分(平常能够多调查一下你的mentor,看他一般啥时分不忙),由于有时分对方答复的比较敷衍或许确实是由于没有时刻。
3.反馈才能
【自己完结的每一个阶段,都最好让他人心里有数】 当手里有团队分配的使命时,最好定时向mentor反馈进展。这样你走的每一步都是可控的,假如你的想法不可行,能够得到及时纠正;假如发现当时的效果和预期有误差,也能够及时发现问题所在。千万不要自己捣鼓来捣鼓去,到了deadline发现自己一点进展也没有,最终汇报作业时,你为难、你的mentor也为难。
4.自驱力
【自动探索问题的处理办法】 在公司里,会发现大佬们的时刻都很宝贵:没有人会像校园里的老板相同有时刻整天盯着你干活,也不会有人时刻点拨你这个项目该怎样做。优胜劣汰的环境下,只能靠自我驱动。
在几乎不靠他人协助的前提下,自己自动提出正确、可行的处理方案,一起想办法用代码完成并获得效果 — 这本身便是一件能够证明自己才能的行为,一起积极自动处理问题的情绪也更容易给人留下深刻印象。
5.逻辑思维才能
【考虑问题尽或许明晰且有条理】 简略来说,便是把每份使命都当做一个小论文去对待,做到像论文相同思路明晰、有条理,做每一件事都有自己的考虑,有自己的路子。这个才能在研讨生阶段或多或少都能得到练习,在这里就不再赘述了。
6.规划才能
【把一个大方针拆分为详细环节的才能】明晰自己的方针今后,有明晰、可行的规划。
例如,为了完结秋招这一大方针,我把两年的时刻拆成了多个阶段(详见进程章节)去完成方针;为了提高自己的竞赛力,把CV算法工程师所需求的才能拆分红硬实力和软技能两大类,然后每个大类再拆分红详细的环节,逐一提高自己的才能。
7.执行力
【下了决计就立刻去做,不拖泥带水】 有些人之所以是思想上的巨人,行动上的弱者,首要是由于缺乏执行力(仅用于描述一些客观存在的人群,请勿对号入座)。克服懒、延迟这两个坏毛病,这一点自然而然就能做到。
总结
1.没有伞的孩子,必须努力奔驰。 互联网的大环境变差,一般玩家的体会越来越糟糕,只要掌握过硬的本领,才能在凛冽的隆冬中生计,在恶劣的大环境中也能挥洒自如。
2.要有自己的判断力,他人以为困难的事情,未必自己做不成。常常研讨他人的凉经只会添加自己的精神内耗。
3.打铁还需本身硬。根底不牢,地动山摇。
4.能实习,尽早出去实习;不给实习,尽量争夺实习;真实不能实习,扬长避短弥补自己的实习阅历空缺。
5.假如不能在某一方面做到出类拔萃,那么依据木桶原理,请尽或许做到八面玲珑,包含但不限于硬实力和软实力。
6.秋招关于大部分人来说都不是一往无前的,要做好心理预备。自己也遇到了很多心态爆破的阅历(没写进去是由于太搞人心态),但能坚持熬过去就上岸了。
写在最终
本文详细介绍了自己秋招上岸CV算法岗的全进程,除了自己努力的要素外,还不乏挑选、命运、机遇等不确认要素的加持,仅供各位读者参考,在挑选作业方向时请保持沉着(大佬请随意)。预祝各位还在秋招的同学们顺畅拿到自己心仪的offer。
特别感谢自己遇到的一些贵人(按时刻次序):
-
我本科所在学院的院长。和清华博后最近距离的一段时刻,也是自己生长最敏捷的一段时刻。
-
我的研讨生导师。宝藏导师,给了我两次、合计十个月的实习时刻。
-
DeepLearningGoGoGo长辈。技能厚实的大佬,自己入门深度学习的加速器。
-
两次实习的老大和mentor们。现实中的伯乐,把我从菜鸡堆里捞出来, 假如没有这两段丰富的实习阅历加持,我应该还在秋招池子里泡澡。
此外,还要感谢vivo AI研讨院和虹软nice的同事们、和我一起实习的其他实习生伙伴,以及秋招路上曾协助过我的人。
完结撒花✨。克服懒散,花了17天时刻,每天抽一个小时完结了本篇的超长阅历贴,谨以留念自己长达两年的秋招阵线,期望协助到更多还在犹疑是否入坑算法岗的同学,一起或许也是本年度封笔的文章了。
假如你觉得这篇文章有协助的话,请多多点赞转发,期望能够协助到更多有需求的人。
本文仅做学术共享,如有侵权,请联系删文。
欢迎重视大众号CV技能攻略,专心于计算机视觉的技能总结、最新技能盯梢、经典论文解读、CV招聘信息。
计算机视觉入门1v3辅导班
【技能文档】《从零建立pytorch模型教程》122页PDF下载
QQ沟通群:444129970。群内有大佬担任解答咱们的日常学习、科研、代码问题。
其它文章
深度理解变分自编码器(VAE) | 从入门到精通
计算机视觉入门1v3辅导班
计算机视觉沟通群
用于超大图画的练习战略:Patch Gradient Descent
CV小知识评论与分析(5)到底什么是Latent Space?
【免费送书活动】关于语义切割的亿点考虑
新方案:从过错中学习,点云切割中的自我规范化层次语义表示
Transformer沟通群
经典文章:Transformer是怎么进军点云学习范畴的?
CVPR 2023 Workshop | 首个大规模视频全景切割竞赛
怎么更好地应对下游小样本图画数据?不平衡数据集的建模的技巧和策
U-Net在2022年相关研讨的论文引荐
用少于256KB内存完成边缘练习,开销不到PyTorch千分之一
PyTorch 2.0 重磅发布:一行代码提速 30%
Hinton 最新研讨:神经网络的未来是前向-前向算法
聊聊计算机视觉入门
FRNet:上下文感知的特征强化模块
DAMO-YOLO | 逾越一切YOLO,统筹模型速度与精度
《医学图画切割》总述,详述六大类100多个算法
怎么高效完成矩阵乘?万文长字带你从CUDA初学者的角度入门
近似乘法对卷积神经网络的影响
BT-Unet:医学图画切割的自监督学习结构
语义切割该怎么走下去?
轻量级模型规划与布置总结
从CVPR22动身,聊聊CAM是怎么激活咱们文章的热度!
入门必读系列(十六)经典CNN规划演化的要害总结:从VGGNet到EfficientNet
入门必读系列(十五)神经网络不work的原因总结
入门必读系列(十四)CV论文常见英语单词总结
入门必读系列(十三)高效阅览论文的办法
入门必读系列(十二)池化各关键与各办法总结
TensorRT教程(三)TensorRT的装置教程
TensorRT教程(一)初度介绍TensorRT
TensorRT教程(二)TensorRT进阶介绍