Clear 发表于 2018-9-18 11:34:45

2016年算法岗位求职日记

开篇总得唠叨几句废话,为什么写这篇文章了,一方面在求职季得到了很多热心人的点滴帮助,不能总是汲取而不懂得回馈,另外一方面,总觉得需要对人生的十字路口进行总结回顾,以免自己迷失了方向。
最终拿到的offer:百度IDL小sp,360sp、小米、搜狐、招行卡中心、拼多多、中兴飞流、杭州华为,海康威视研究院ssp,美图深度学习实验室、普联。申明一下,10月份以前我一个offer都没有,所以面试了很多,10月开始就陆续收到各家offer,所以我不是为了拿offer而拿offer。当拿到百度offer后,我就开始拒绝掉其他公司的面试了。
自我介绍:
学历:双985本硕
专业:计算机视觉中的局部特征检测与描述
求职岗位:模式识别\图像处理算法工程师
编程技能:本科学了编程的基础知识,由于并没有什么实际项目,自己也不是特别热爱,所以也只是懂点if,else之类的
交流技能:不善言辞,紧张容易结巴
为什么自我介绍了,因为首先需要对自己进行定位,然后再确定目标,最后设计战略。好比你是大神级人物,那完全没必要看我这篇文章;如果跟我一样水水的,可以借鉴一下。
自我定位
分析一下自己的优势,自己的短板。
就拿我举例:
本科和硕士都是双985,或者是双C9,然后本科发扬应试精神成绩比较漂亮,拿了一些奖学金,这些是我的优势,那么这些内容一定需要放在简历上显眼的地方。这个优势可以是真实的,也可以适当的美化,但是需要把握美化的程度,要不然穿帮了很难看的!怎么把握这个度?如果你觉得这个度你能hold住,那么就可以。
再说说我的短板,我本科阶段实际项目太少,编码能力很差!硕士阶段东做一点西做一点,都是浅尝辄止,方向也算是小众的,最大的问题是我不喜欢硕士阶段做的事情:
编码能力很差怎么办?我先说说我怎么个差法,你们也许就有心理安慰了。开始硕士生涯的时候,我只学习了c的一些基础知识,考完试就直接还给老师了。本科是自动化这种万精油专业,学了挺多的,但都是学个皮毛,一方面是专业的实际情况所限,另外一方面是我不怎么喜欢码代码。还有就是我开始做本科毕设前,连MATLAB都不会。说到这里,你们估计有信心了吧。
言归正传,编码能力差怎么办?那就是“练”呗,这个没啥捷径,毕竟码代码又不是一个完全靠你看书思考就能掌握的技能,你只有代码写多了,遇到的问题就多了,然后你每解决一个问题就进步一点了。但是针对找工作可以“速成”,因为在研二下学期开始前,我还是用过MATLAB,只能称之为“用过”,所谓用过就是接触比较多。所以我差不多从3月份开始刷题强推:
1.首先确定自己的求职语言为C
,一方面这个语言我多少用过,另一方面这个也是求职
算法岗位比较通用的考核语言,C
可以比较直观的反应编程者的思维逻辑;
2.在实验室随便借了一本,C
本科教材,过了两遍,一遍温习,一遍加深印象,也将一些东西做笔记。期间还学习了一下《c
primer》前面400多页,后面太多了,没时间看,重点学习了一下关于容器那几章,这个快的话只需要10天;
3.光说不练假把式,所以在PAT、leetcode以及现在的牛客网等oj网站进行代码练习。开始PAT是因为别人说简单,所以就在PAT上刷了一些题,后来发现PAT很多的时候你都在纠结输入输出的格式,而不是算法本身上,所以纠结了20多题转战leetcode了,但是纠结PAT的格式的时候让你对一些字符切分、输入输出流进行了熟悉,华为机试的时候有考核这方面知识。个人不是很推荐PAT,可以花一两天时间将字符切分、查找以及输入输出流专门了解一下。
4.leetcode应该很出名的,上面的题目很经典,但是对于我这种3月份才开始刷题的人而言,题目太多了(所以刷题趁早,最好是能刷两遍,那么你就无敌了),刷题我是按照easy、middle、hard的顺序进行刷题,因为面试算法岗位的时候,面试官让你手写代码都是循序渐进的,如果你第一道题都解决不了,那即使你会做后面难度较高的题目又如何?注意,不是你会做hard的就会做easy的!leetcode上的题目,很多时候就是一种思路,你做过类似的就很容易联想到解题思路,如果没有做过,你就指望面试的时候突发奇想了,但是常人面试总会紧张的,因此不如平时多刷题。一道题纠结20分钟没有思路,那就看答案吧,然后消化理解,自己敲一遍代码,这道题也许就成为你的一部分了,一遍不行,两遍总能记住。所以在保证效率的同时,需要保证刷题量。为了保证刷题质量和数量,你可以花更多的时间,但是如果跟我一样时间紧张那就试试我的办法。注意一点,刷题贵在坚持,我每天晚上9点以后就开始刷题,11点左右累了就回去休息,坚持一两个月,我就开始习惯C
了。
5.牛客网是专门为互联网求职的小伙伴设计的,里面对题目类型等都进行精细划分,我没有在上面做过代码题,主要是刷了一些跟深度学习和机器学习相关的选择题,在求职季笔试的时候派上了用场。顺带提一下,牛客网的社区是大家交流的热门板块,你可以从里面了解全国同学的求职进展和经验,所以每天抽点时间逛逛,不要闭门造车!
6.《剑指offer》这本书一定要刷一遍!!!里面的题目面试官一般都很喜欢考,因为里面的题目很经典,而且一般都会对题目进行总结、举一反三等。而且大多数都是历年的公司面试题的提炼,因此针对性比较强。最好和小伙伴一起刷题,平时一个人做了题目觉得有意思出给别人做,两个人交流,出题人可以加深印象、做题人可以增加刷题量,何乐不为?
7.学会分享,学会总结!分享一方面就是和别人交流,特别是你在跟别人讲解解题思路的时候,你会对知识点进行一次回顾和验证,这样可以加深你对解题思路的理解,也会锻炼你的交流表达能力;另外一方面,那就是写博客,我一般会把自己觉得有意思的题目在写CSDN上,这样不仅仅是对知识的回顾和总结,也是笔记,以后想复习的时候,比较方便,而且作为一个面试技术岗位的同学,博客,github这些都是加分项!!!
刷题技巧总结一下:
先熟悉基本知识(本科教材、博客、c
primer等),数据结构方面主要了解:链表、二叉树、数组、堆、栈(排名分先后)
leetcode,保质保量、持续进行
《剑指offer》必看!!!
牛客网对于补习算法方面的知识比较有针对性!
找到小伙伴,一起刷题,相互交流,相互成长
勤写博客,多水github
做的项目都是浅尝辄止怎么办?这可以是好事也可以是坏事。坏事就是没法体现你的能力,毕竟你接触不深,没有办法讲出太多实质性的内容!怎么说是好事了?浅尝辄止说明你花的时间不多,但也就意味你尝试的项目就多了。只要你做一个项目都是认真实在地做了一部分内容,那么你就可以好好总结、提炼、升华为一个比较完整的项目,但是牛皮不能吹大了,要不然面试官会对你有太高的期望,如果你的回答不能让其满意,会让面试官心理落差很大,对你持怀疑态度。
研究方向小众,并且不喜欢硕士阶段做的事情怎么办?这是很蛋疼的问题!因为如果你硕士阶段的研究方向和求职岗位一致,特别是针对算法岗位。那么首先别人会觉得你专业对口,再者你硕士再怎么水都得毕业啊,所以你多多少少对自己的研究方向或者求职岗位的相关知识有了解,有探索过。所以如果你的求职岗位和研究方向一致,那么恭喜你了,你只需要好好复习一下自己曾经看过的论文,或者组会ppt把以前掌握的知识捡起来就行,然后着重准备一下编码能力(面试算法,不可能不考你的代码能力的!!!)。但是如果你跟我一样研究方向小众也不是自己愿意做的事,那么可以分两种:一种是研究方向是一些当前很难就业或者将来工作生活不能让你满意、而且你自己对研究方向对应的岗位也没有兴趣的;另外一种是研究方向小众,但是与主流热门的研究方向相关,同时主流热门的方向也是你喜欢的。
针对第一种情况,我也没什么好的建议,毕竟我没有经历过。但是我想谈谈自己的体验,如果将来的工作环境、工作内容不能让你开心或者有成就感,即使薪资再怎么令人羡慕,那也是一种折磨。毕竟从事技术这一门行业,起薪真的只是暂时的(但是也不能不在乎起薪,毕竟薪资代表公司对你价值的认同程度,公司hr和面试官很聪明的,给你多少钱就期待你能给公司带来多少产出的),更应该看中的是长远的发展,你只有干的开心,能学到东西,财务自由早晚的事!相反,你每天做的事毫无技术成长所言,得不到任何精神上的鼓励,而是非常痛苦的熬到下班时间点,每个月守着那几乎没怎么变过、毫无惊喜可言的工资账单,真的是一件很折磨人的事。所以如果硕士阶段的研究方向不是自己喜欢的,那就早点转行吧。别说什么,我花了差不多三年、甚至七年的时间去“研究”这个专业,那是你当时脑袋进水做出的选择,选择了一个自己不喜欢的东西,为什么还硬要自己坚持下去了?找工作无非两种:找一个自己喜欢的;找一个自己擅长的。自己喜欢的,一般可以做好;自己擅长的,说明你不排斥他,否则你也不可能做到“擅长”这个地步。
针对第二种情况,相对而言就比较方便。首先你需要从当前热门专业中,找到你喜欢的并且和你相关的。如果找不到与你相关的,那就找一个你喜欢的;如果找不到你喜欢的,那就找一个相关的。其实这两点也就是对应上面,我对求职的看法:找一个自己喜欢的或者找一个自己擅长的。就拿我举例:我硕士阶段主要做的是局部特征检测与描述,是一种偏底层的图像算法方向。因为局部特征已经发展很多年,单纯研究局部特征算子已经没有什么实质意义了,公司一般都是拿现有的特征算子进行工程实践,再加上深度学习的火热,这种定制化的人工特征算子已经被淹没在人工智能的浪潮中了。方向比较窄,对应的就业岗位也就比较少,同时我也觉得没什么前途,于是我决定转行。不过我的研究方向多多少少跟图像相关、跟机器人相关,再加上实验室的深度学习的氛围比较火热,自己对这个也一直很好奇(研一进入实验室就跟老板说想做深度学习,可是被老板一阵“忽悠”就做开始做局部特征算子),并且深度学习也是为了提取数据或者图像的特征虽然不同于局部特征这种人工设计的特征,但是两者还是有一定的相关性的。所以自己4月份就定下搞深度学习或者机器学习的目标,然后突击3个月就可以跟面试官吹牛逼了,当然也被面试官吐槽我深度学习相关的实际项目比较少很多次,但是我面试一次总结一次知识点上的缺漏,实际项目少这个我没办法,我能做到就是在知识点上装作很懂的样子。具体我怎么准备的,列一下:
李航《统计学习方法》必看!写得浅显易懂,其中推荐大家着重学习一下SVM、LR、决策树和adaboost等;
周志华《机器学习》,这本书挺厚的,有时间最好看一下,我主要是看里面的BP的推导
《机器学习实战》,这本书主要是用python将一些机器学习的算子实现了一遍,可以加强对机器学习相关算子的理解
如果你不了解python,可以学习一下廖雪峰的博客,一般有编程基础的人,两天就可以入门了
吴恩达的机器学习教程UFLDL
Tutorial,里面中英文都有,建议英语底子差的看一遍中文理解清楚,然后再看一遍英文,毕竟深度学习主流的相关资料是英文资料
caffe官网上的例子都跑一遍吧,然后相关的caffe源码看一遍。因为暑假在百度实习期间,需要仿照caffe源码写一个类似的深度学习框架,自己把全连接层、卷积层等一些比较重要的层都看了一遍;面试官比较喜欢让我讲卷积层的实现方法和BP的实现方法。(8月份内推面试网易研究院的时候,二面面试官看到我的简历,直接就不想问我问题,直接吐槽我深度学习相关经历太少,因为当时还在学习深度学习基础知识,没有分析caffe的源代码,所以如果像我这种半路出家做深度学习的,就看看caffe的源代码吧,弥补一下没有相关项目的短板)
因为我主要看的是与图像相关的深度学习、所以主要是cnn,关于cnn的卷积层、池化层的作用、局部连接和参数共享的特性、以及常规的正则化的trick、物体检测的几个经典的模型等都需要掌握了解的,建议大家多逛逛知乎,上面有很多人讲的非常好,对于小白而言,感觉开启了一个精彩异常的奇妙世界,会调动你的兴趣和热血的!
建议
不知不觉唠叨这么多,最后总结一下,如果以后想到什么再补充:
趁早确定目标,趁早开始着手准备;
简历,学习一下你的师兄师姐的简历,让他们提意见,早点准备好;
1寸、2寸以及生活照(求职银行可能用到)等相关可能用到东西早点准备好,不要等到需要的时候再去弄;
博客和github里面最好是都有内容
3月份开始找暑期实习,一定不能懒,即使实验室导师不允许出去实习,也要去参加笔试面试,就当找工作预演;
7月份开始,很多互联网公司已经开始了内推,如果你在外面实习,一定不能两耳不闻窗外事,能内推一定要内推,因为这是一次额外的机会,一般不会和你校招冲突;再者内推的时候,面试你的部门非常明确的,校招的时候也许你投递公司的a部门,但是刚好a部门今年不来你们学校招生面试,那你的通过率就减半了,毕竟不同部门的岗位一般是不对口的,此外内推可以避免你被表刷,甚至有的内推可以免笔试!
一定不要慌,10月份之前我一个offer都没有,周围的人差不多都拿到心仪的offer了,我当时确实很焦急,但是我没有慌张,一种莫名的自信让我坚持每天浏览学校内网,查询招聘信息、投递简历、笔试、面试、复习、刷题。一定不能自暴自弃,制定好目标,有条不紊的进行;
对于我这种紧张就容易结巴的人,我便把自己的简历分析了一遍,同时结合之前面试的经历,以面试官的角度起思考面试官会问我什么问题,然后我便将问题和对应答案打印出来,每次面试之前复习一遍,这样可以尽可能的避免由于面试发挥不理想造成的面试不通过的情况;
由于求职季,笔试面试一大堆,所以大家最好用手机或者纸记录一下最近的一些笔试、面试、招聘会的日期、场所以及注意事项,做完一件事就划掉,避免漏掉
笔试面试最好找一个安静的地方,我一般选择在宿舍。但是在宿舍进行笔试存在的一个问题是,你只能靠自己,无法和其他小伙伴一起交流商量,所以看你们的选择;面试在宿舍一个人比较自在,一方面没有杂音,另外你吹牛逼也不会不好意思,不过一定需要保证手机电话费充足、电量充足以及信息良好。

转载自:https://www.nowcoder.com/discuss/20597
页: [1]
查看完整版本: 2016年算法岗位求职日记