头铁!我就硬钢算法岗!

rcshi
发布于 2023-2-3 14:44
浏览
0收藏

你好,我是阿秀。

虽然以前聊过很多次不是很推荐普通人从事算法岗,但也说过有几种情况你是可以尝试去从事算法岗的:

1、学历不错,至少985起步

2、有顶会或者阿里天池Kaggle的比赛落地经验

3、实习经历多,自己也愿意从事算法岗

具体你可以看下这篇文章:​为什么我苦口婆心劝你不要找算法岗​但是有的人确实是真心喜欢算法岗,喜欢CV、喜欢NLP,对他们来说兴趣就是最好的老师。

那么,go ahead!直接冲吧!

今天分享一位师弟的算法岗上岸之旅,他是没有985的背景,但他很喜欢算法岗,即使在万人劝阻的情况下,依然选择CV算法岗。

即使实验室近三四年以来没有一个师兄师姐拿到算法岗的offer,包括这位师弟的同门在内他们实验室全都是走的开发路线,只有他自己一个人坚定不移的走算法岗!

这篇文章他前后一共花了17天时间,每天抽一个小时完成了的超长经验贴,谨以纪念他自己长达两年的秋招战线,希望帮助到更多还在犹豫是否入坑算法岗的同学,下面是他的分享:


你好,很高兴你点开我的文章,我想分享一下自己自己秋招上岸CV算法岗的全过程,谨以纪念自己长达两年的秋招战线。我的分享主题是

普通段位玩家的CV算法岗上岸之路(2023届秋招)

1、写在前面

是的,今年的秋招确实是肉眼可见的难度增加:缩招、裁员、毕业生人数爆炸,这些关键字已然成为2023届秋招的代名词。

竞争激烈,算法岗入坑的难度更是直线上升,卡第一学历、卡名校、卡重点实验室......这些“基本操作”早已司空见惯。

在卷成麻花的2022年,一个没有上述背景、没有名校撑腰的普通科班小硕能入坑中大厂的CV算法岗吗?

我的回答是:能,但是很难、很卷,且容错率较低。

因为CV算法岗的竞争对手基本都在985分段,且动不动就是某C9高校的重点实验室。

因为身边的人不走算法岗,所以全程基本靠自己摸索,期间遇到了各种困难、走了许多弯路。

为了记录这段有意义的经历,同时给自己一样出身普通的师弟们(实验室没有师妹)提供CV算法岗的就业思路,将本人的整个秋招的真实历程分享给大家。【长文警告↓↓↓】

导读:

本篇文章主要分为以下几个章节:

  • 【背景】,【历程】主要介绍了本人秋招前的状态,以及从研究生入学到秋招的过程。
  • 【需要掌握的技能】从硬实力、软实力两个方面介绍秋招时可以增加自己竞争力的点。
    由于每个人的基础情况不同,CV算法岗也有较多细分方向,本章节仅供参考,大佬请直接略过。
  • 【总结】秋招的一些小的建议。

补充说明:

1、阅读文章之前,请务必了解CV算法岗的秋招形式严峻,这不是开玩笑的,请保持理智。

2、本文的“普通”一词是指本科双非、硕士非985、非重点实验室、无顶会、投递岗位为CV算法岗的计算机科班应届研究生,并无冒犯之意。

2、背景

1、概述:

本人本科双非软件工程专业,硕士普通211的计算机技术专业,目前研究方向是计算机视觉。

秋招拿到【虹软、vivo、OPPO三家offer,均为计算机视觉类(CV)算法岗,有SP也有大白菜】(除去国企银行),和大佬们的offer没得比,但感觉基本接近自己的预期。

虽然已于9月获得虹软转正意向书,为了给自己的秋招不留遗憾,同时可以通过不同的offer明确自己在秋招大军的整体定位,所以坚持完整参与了秋招。

头铁!我就硬钢算法岗!-鸿蒙开发者社区

2、具体情况:

  • 身边的环境

除了我的大大大师兄(高我三四届)拿了某中厂算法offer以外,我们实验室就再也没有人走过算法岗。

包括同门在内的同届同学,也基本都是开发,师兄和同学也都劝退我走算法,改开发。

是的,只有我一个人。

在我找到第一份算法实习之前,大部分人都认为我选择这条路是一个头铁且愚蠢的行为,且常听到阴阳怪气的言论。

每次刷知乎,总能看到“19年算法岗供大于求”、“20年算法岗诸神黄昏”、“21年算法岗灰飞烟灭”。

今年又换了个四字词语 --“人间炼狱”,各路“过来人”也都是全方位劝退。

头铁!我就硬钢算法岗!-鸿蒙开发者社区

好在自己的家人比较支持我自己做决定,只不过最后选择offer的时候,家人们曾劝我躺平一个随手拿的国企,放弃自己的专业,我要真想躺平还用的着这么卷么,大无语。

总之,身边自始至终支持我走算法岗的,四舍五入就只剩自己了。没关系,意料之中罢了。

  • 自己拥有的一些条件

导师不会push我们给他发论文,且只要完成规定的任务,就允许我们自己出去找实习。划重点,这是我【秋招上岸的关键性因素

实验室有免费使用的入门级计算资源,虽然只是1080Ti这种级别的显卡,且当时还要和师兄一起用。

但是拿来学习跑跑实验还是绰绰有余的。同时家里赞助更新了一台2060GPU的笔记本,用来本地调试也挺好使。

学校的线下课程在研一期间全部上完,研一课程结束就可以做实习早鸟。

3、秋招历程

本节按照时间线的顺序,叙述了本人历时两年的秋招战线,整整。

1、【初识算法】2020年9月~2020年10月

结束摆烂、确定方向阶段。研究生入学,之前联系的导师莫名其妙把我鸽 了,不得不重新找导师。

我的选择标准有两个:一是教授,二是允许实习。在本科国奖托底和自己死皮赖脸的坚持下,我现在的导师给加了一个名额,顺利入组。

导师给我明确了CV的研究方向,同时分享了一些资料(因为才学疏浅,当时没能看懂,后面就跑去B站知乎学习了),每周组会汇报自己的学习进度,也是这个时候发现自己对CV挺感兴趣的,也是初生牛犊不怕虎,确定自己走算法岗的方向。

2、【走出迷茫】2020年11月~2021年2月

夯实基础阶段。因为导师安排的任务主要偏学术,我也意识到:如果仅仅靠导师的指导、按部就班的学习就去找算法岗工作,是远远不够的。

于是,自己找到了一位前辈指点自己系统地入门深度学习。

之后制定学习计划、学习基础铺垫知识、筛选和阅读paper、debug源码、参照已开源的工作来复现未开源的论文......

在完成导师布置的任务之余,花了大量时间,算是搞明白深度学习的路子了。

在此期间,完成导师安排的项目、自己找一些开源的项目补充学习,可以加深自己的理解同时还能润色简历。

头铁!我就硬钢算法岗!-鸿蒙开发者社区

当时的部分学习计划(分类&检测篇)

因为搞算法除了python的基本要求外,C++多少也要会一些,也是从这个时候,制定了刷力扣的长期计划,强迫自己学习C++,编程题也全部用C++写,刷题不求多,但重在把思维和语法熟练度锻炼好。

我也是在这个期间认识到了秀哥,看了他很多的推文,感谢他。

3、【稳扎稳打】2021年3月~2021年5月

备战实习阶段。过年给自己放了半个月假,开始着手找第一段实习。

听了师兄的建议(当时师兄在鹅厂实习搞开发,respect),开始刷牛客面经,查漏补缺,力扣保证一周刷七题。

同时系统地整理之前学习的笔记,也是这个时候我写了知乎的第一篇博客,并立下了一年写完50篇技术博客的flag(已于2022年4月达成)。

4、【初露锋芒】2021年5月~2021年6月

第一段实习的投递、面试阶段。第一次投实习没有经验,先投了一些难度拉满的大厂:商汤、字节都给了面试,但是面得稀烂,商汤的面试官更是在无coding题的情况下问了我两个小时的问题,面试结束后当场自闭。

后来总结了面试失败的经验,也补上了自己面试中没有答出来的知识点。

现在想想,当时的我真的是愚蠢至极,就应该先面小厂,积累面试经验,起码不至于面试过后脏了自己的大厂面评(因为秋招的时候,这两家秒挂我的简历,应该是自己作没的 )。

经历了十多场面试,也积累了足够的经验,最终自己如愿拿到了vivo AI研究院的算法岗实习offer。

头铁!我就硬钢算法岗!-鸿蒙开发者社区

5、【渐入佳境】2021年7月~2022年1月

第一段实习。在我的软磨硬泡下,导师先是同意我出去实习半年(美滋滋)。

入职以后,令人窒息的压力接憧而至:老大给我的研究方向是神经网络结构搜索(NAS)方向 -- 一个自己从来没听说过的预研方向,与此同时,同组的实习生来自武大,还比我早来一个月,需要尽快跟进她的进度。

于是,自己白天调研相关工作、复现一些论文、慢慢接手项目,晚上加班读源码、刷博客(卷到了旁边的实习生,实在抱歉)。

第一个月顶着压力,总算把进度拉上来,项目步入正轨。

9月,恰好看到Kaggle有个CV新赛,恰好这时候蓝厂取消大小周,于是就报名参加了。之后差不多两个月的时间,白天赶项目,晚上和周末搞比赛。

11月,项目需要优化的模型计算量首次降低到100M以下,同时比赛也拿到了铜牌(第一次参赛,拉胯的成绩,但尽力了)。

后面的时间就是边实习边准备开题,顺利完成了实习阶段的任务,拿到了口头转正(可惜AI研究院今年不招人,靠自己重新走流程拿的影像算法部,权衡了一下,还是想待在自己熟悉且喜欢的组),与nice的同事们告别。

6、【一波三折】2022年2月~2022年5月

向导师争取了第二次实习的机会,开始着手准备暑期实习,同时和之前实习的武大同学合作一篇论文。

但没高兴多久,上海的疫情就爆发了,几乎整个上海的实习HC都没了,与此同时学校疫情封楼,天天牢饭吃到心态爆炸,差点想转开发(庆幸自己没转)。

虽然有了一段大厂实习经历,但找第二段实习甚至更艰难:收到一堆海笔,只收到了三家面试(某周的周一面了美团,面试官很nice,面试也顺利,他还表达了希望我面试通过后早点过去实习,结果周五反手收到个感谢信☺)。

磕磕绊绊拿到了第二份offer -- 虹软的计算机视觉算法岗实习。

头铁!我就硬钢算法岗!-鸿蒙开发者社区

7、【稳中求胜】2022年5月~2022年9月初

第二段实习。这次研究方向是视线检测,因为在蓝厂的实习积累了许多项目经验,所以无论是搭环境还是上手项目都很快。

我们组所有的实习生每周都会单独开个周会,可以了解大家的进展,同时还能偷学一些技巧,因此在这边自己成长的速度很快。

和我搭档的实习生是天大的,我俩都做视线方向,经常一起讨论项目中遇到的难点,如我mentor所说,1+1 > 2,无论是实习还是秋招,找个伴共同进步总好过孤军奋战。

7月~9月初,工作时间肝项目,下班以后的空闲时间刷题、刷面经,准备转正答辩,投提前批(算法提前批卡学校,基本全泡池子),投秋招,基本每天搞到11点才休息(转正名额有限,不敢做赌狗)。

8月底顺利通过转正答辩,9月初拿到了虹软为数不多的转正意向书。

8、【冲刺终点】2022年9月~2022年10月

收获的季节。实习结束,导师召回返校,一边做导师安排的工作一边搞秋招。

总共笔试了二三十家公司,面了六七家(因为不是985、研究方向有差异,也被拒了蛮多)。最后到手虹绿蓝三家offer,于十月中旬尘埃落定。平时经常做RGB图像算法,没想到拿的offer也刚好涵盖RGB三种颜色 ,或许这就是缘分吧。

4、需要掌握的技能

1、硬实力篇

1.基础知识

入坑算法岗的基本功。推荐李航老师的《统计学习方法》以及周志华老师的西瓜书

入门深度学习推荐斯坦福《CS231N》课程(在B站上可以找到中文字幕版)。

不太推荐一上来啃《深度学习》(花书),对小白不友好,但是后期可以当工具书使用。

确定了自己的研究 / 学习的方向后,可以在各类博客上找到对应方向大牛整理的paper list,选取一些经典必看的论文,并在Github中找到对应的源码阅读【一定要看源码,一定要看源码,一定要看源码】。

面试的时候,资深的面试官经常会问一些细节问题,而只有你理解了源码是怎么实现的前提下,应对这些问题才能游刃有余。

在学习时,要及时总结和整理,将论文里的知识精炼成自己笔记的过程,其实就相当于模拟回答面试官问题的过程。

整理的东西多了,就变成的所谓的“八股文”,相较于开发,算法的面经更灵活,面试的问题也因人而异,一份属于自己的“八股”很重要,同时它也是实习和秋招面试前最有价值的复习资料。

这里比较推荐阿秀的校招笔记,我基本很多问题都是在这个上面总结的:https://interviewguide.cn/notes/01-guide/web-guide-reading.html

2.实习

如果导师允许的话,【一定要尽早出去实习,一定要尽早出去实习,一定要尽早出去实习】。

实习经历越丰富、实习公司的层次越高、实习的时间越久,你的竞争力越强。曾经有HR和我说过,CV算法岗的普通分段同学很少能进流程,如果没有实习经历,自己大概率会被淘汰。

PS:实验室不给实习的同学,也不要灰心,实习不是入职算法岗的必要条件,但是如果你但凡有机会实习,一定要好好把握。

3.项目

冷知识:在简历和面试中把自己的论文以项目的形式描述,面试官会更感兴趣。

如果你发表的不是顶会,那么我更希望你用项目的形式叙述你的作品。”这是面试时一位面试官的原话。

所以在这里,我把自己的论文归类为项目,且当我把论文以项目的形式更新到简历中,后面的面试会问到这部分工作的频率明显增加。

很多人觉得自己的项目可能不是那么出彩,觉得拿不出手。

在这里完全可以打消这个顾虑,我们投的又不是天才少年计划,所以只要能把自己的项目讲明白,言之有理,都可以作为一个加分项。

在面试前,一定要梳理好自己的项目,例如解决的问题、应用场景、创新点、难点、数据是怎么处理的、badcase是怎么优化的、后面还能改进的地方......

讲项目的时候一定要自信、有条理,建议面试前可以多试讲几次录个音。

4.比赛

打比赛有两种策略:

第一种策略:运气好,碰到了自己熟悉方向的比赛,在比赛中尽可能刷高自己的名次。

第二种策略:只有自己感到陌生的方向(不过也是CV类比赛),用最快的时间上手该方向,然后尽可能深入,争取比赛中较好的排名。

我当时的运气并不好,没有遇到自己熟悉方向的比赛,所以选择了第二种策略。

花了一个多月的时间,利用下班时间和周末的空当去打了场kaggle比赛,因为第一次参赛加上精力和水平有限,以一枚kaggle的铜牌收场(让各位路过的大佬见笑了)。

但是面试时,向面试官展现快速上手陌生领域工作的能力,同时把自己的创新点以及解决问题的思路、所采用的方法都讲清楚,也是一个不错的加分项。

头铁!我就硬钢算法岗!-鸿蒙开发者社区

2、背景

1、概述:

本人本科双非软件工程专业,硕士普通211的计算机技术专业,目前研究方向是计算机视觉。

秋招拿到【虹软、vivo、OPPO三家offer,均为计算机视觉类(CV)算法岗,有SP也有大白菜】(除去国企银行),和大佬们的offer没得比,但感觉基本接近自己的预期。

编程能力

老生常谈的问题,无论是笔试和面试,手撕代码都是不可或缺的一个环节,最有效提升自己编程能力的手段就是刷题

因为自己在考研时就有深入学习过数据结构,且本科在打一些编程比赛时也有系统地练习过一段时间,

力扣的《剑指offer》《热题Top100》系列也是很经典的题目。

一些高频题型或者自己第一遍没吃透的题目,最好再二刷三刷加深理解。

自己的刷题量在300道左右(后期没有刷新的题目,而是二刷甚至三刷把算法吃透),属于中规中矩的水平,笔试中的hard题写起来有些吃力,但是面试中手撕代码基本都能A。

头铁!我就硬钢算法岗!-鸿蒙开发者社区

2、软技能篇

本章节是自己在实习中和组内大佬们工作、相处中总结出的一些内容,可能对大家的实习转正有帮助,也是我认为自己能拿到转正意向的一些重要因素。(因人而异,仅供参考)

1.表达能力

【搞CV,做出来的是东西,但东西是给人做的】认清这一点很重要,不要只沉浸在创作的过程中,要能把自己的想法、实现方式清晰明确地表达出来,别人才知道你这段时间在做什么,做出了什么。

千万不要自己明明做出了一些成果,却因为支支吾吾表达不清楚,让大家觉得你很水。要

时刻牢记:无论我做了什么,只要是我自己做出来的,都能够给人讲明白

2.沟通能力

【清晰地回答问题 & 高效地提问问题】,有效沟通主要体现在这两个方面。

大部分人都能做到前者,回答问题前,先大概想一下应该从哪些点来回答提问者的问题,不要想一出说一出,这样别人会认为你的逻辑很混乱。

这里重点介绍后者。首先,要明确什么问题可以问。举个例子,项目环境怎么搭建,或者百度上/公司内部文档能搜到的问题,自己费点心思解决就好。如果自己尝试解决但解决不了,那这种问题就很适合问。

其次,问问题要有自己的思考,如果遇到一个不懂的问题,可以先说一下自己尝试解决这个问题的方法,以及自己的理解,然后指出到底哪里的细节不懂,这种情况对方一般很乐意解答。

最后,问问题选准时机,如果你觉得这个问题对方需要花时间才解释清楚,就找个对方有空的时候(平时可以多观察一下你的mentor,看他一般啥时候不忙),因为有时候对方回答的比较敷衍可能确实是因为没有时间。

3.反馈能力

【自己完成的每一个阶段,都最好让别人心里有数】当手里有团队分配的任务时,最好定期向mentor反馈进度。

这样你走的每一步都是可控的,如果你的想法不可行,可以得到及时纠正;如果发现当前的结果和预期有偏差,也可以及时发现问题所在。

千万不要自己捣鼓来捣鼓去,到了deadline发现自己一点进展也没有,最后汇报工作时,你尴尬、你的mentor也尴尬。

4.自驱力

主动探索问题的解决方式】在公司里,会发现大佬们的时间都很宝贵:没有人会像学校里的老板一样有时间整天盯着你干活,也不会有人时刻指点你这个项目该怎么做。优胜劣汰的环境下,只能靠自我驱动。

在几乎不靠别人帮助的前提下,自己主动提出正确、可行的解决方案,同时想办法用代码实现并取得成果。

这本身就是一件可以证明自己能力的行为,同时积极主动解决问题的态度也更容易给人留下深刻印象。

5.逻辑思维能力

【思考问题尽可能清晰且有条理】简单来说,就是把每份任务都当做一个小论文去对待,做到像论文一样思路清晰、有条理,做每一件事都有自己的思考,有自己的路子。

这个能力在研究生阶段或多或少都能得到锻炼,在这里就不再赘述了。

6.规划能力

【把一个大目标拆分为具体环节的能力】明确自己的目标以后,有清晰、可行的规划。

例如,为了完成秋招这一大目标,我把两年的时间拆成了多个阶段(详见历程章节)去实现目标;

为了提升自己的竞争力,把CV算法工程师所需要的能力拆分成硬实力和软技能两大类,然后每个大类再拆分成具体的环节,逐一提升自己的能力。

7.执行力

【下了决心就马上去做,不拖泥带水】有些人之所以是思想上的巨人,行动上的弱者,主要是因为缺乏执行力(仅用于描述一些客观存在的人群,请勿对号入座)。

克服懒、拖延这两个坏毛病,这一点自然而然就能做到。

5、总结

1.没有伞的孩子,必须努力奔跑。互联网的大环境变差,普通玩家的体验越来越糟糕,只有掌握过硬的本领,才能在凛冽的寒冬中生存,在恶劣的大环境中也能游刃有余。

2.要有自己的判断力,别人认为困难的事情,未必自己做不成。经常研究别人的凉经只会增加自己的精神内耗。

3.打铁还需自身硬。基础不牢,地动山摇。

4.能实习,尽早出去实习;不给实习,尽量争取实习;实在不能实习,取长补短弥补自己的实习经历空缺。

5.如果不能在某一方面做到出类拔萃,那么根据木桶原理,请尽可能做到面面俱到,包括但不限于硬实力和软实力。

6.秋招对于大部分人来说都不是一帆风顺的,要做好心理准备。自己也遇到了很多心态爆炸的经历(没写进去是因为太搞人心态),但能坚持熬过去就上岸了。

6、写在最后

本文详细介绍了自己秋招上岸CV算法岗的全过程,除了自己努力的因素外,还不乏选择、运气、机遇等不确定因素的加持。

前后一共花了17天时间,每天抽一个小时完成了本篇的超长经验贴,谨以纪念自己长达两年的秋招战线,希望帮助到更多还在犹豫是否入坑算法岗的同学,同时可能也是本年度封笔的文章了。

这篇文章仅供各位读者参考,在选择就业方向时请保持理智(大佬请随意),最后预祝各位还在秋招的同学们顺利拿到自己心仪的offer。

头铁!我就硬钢算法岗!-鸿蒙开发者社区

如果你觉得这篇文章有帮助的话,请多多点赞转发,希望可以帮助到更多有需要的人。


本文转载自公众号:拓跋阿秀

分类
已于2023-2-3 14:44:06修改
收藏
回复
举报
回复
    相关推荐