非计算机专业自学1年拿到算法offer的总结(附学习路线)
共 1995字,需浏览 4分钟
·
2021-07-04 14:17
我就是非计算机专业的,在18-19年1年时间内自学拿到商汤实习offer,20年毕业加入思谋成为一名算法工程师。
之前写过一个实习面经,感兴趣的可以看一下计算机视觉暑期实习面经_笔经面经_牛客网 (nowcoder.com)
对于一个完全不懂的计算机视觉领域,并且没有师兄师姐指导的情况下,必然走过很多歪路,这里我想先记录一下做过的一些事情,最后给出资料推荐和心得。
01
心路历程
第一步,买书和逛知乎。刚接触计算机视觉的时候,啥都不懂,然后就喜欢在知乎上看别人写文章(前两年分享的质量要好很多,现在有点下降了),然后就是必踩的坑,买书
上面是部分书,买了很多书(emmmm, 可能是喜欢收藏吧),但是我看过的基本上只有统计学习方法,hhhhh
买书是错误示范,不推荐买大部头书籍,合理做法看资料推荐部分,逛知乎还是不错的。
第二步,看论文和写笔记。然后就是看论文,以目标检测为例,首先推荐一个综述Object Detection in 20 Years: A Survey,按照时间顺序,先找到关键文章,其他文章都是这些文章的修修补补,roadmap传统目标检测DPM -> Two-stage:RCNN、Fast R-CNN、Faster R-CNN、Mask R-CNN -> One-Stage:YOLOv1&v2&v3、SSD、RetinaNet -> Anchor-Free:CornerNet、FCOS、CenterNet -> Transformer:DETR,看完文章还不够,好文章适当写一下笔记,锻炼自己写文字和归纳总结的能力,最好找到对应的code进行理解实践。
第三步,打比赛。有了大量的知识积累,就可以去实践了,实验室的项目看运气,可能碰不到好项目,不能坐以待毙,打比赛是一个比较好的选择,从实践中才能更好的体会算法的适用范围和真实数据如何处理的。我之前在天池也就拿了个第8名还有个36名吧,学到什么更关键,至少面试的时候有东西说。
第四步,刷题和找实习。有了上述的知识储备和实践经验,就要刷一下简历了。算法coding必不可少,面试必考,如果没有基础,推荐先看剑指offer,上面对常见题型做了总结。面试的时候对自己简历上的东西一定要清楚,简历上都不会,你完了,多面试多总结,查漏补缺。
有了上述的积累,拿算法offer是水到渠成的事情。
02
资料推荐
不推荐买大部头书籍,一般大部头买来都扔书架上吃灰了(都看完的算你nb),最实用的还是一些工具的document。实际场景,一般是遇到问题,查阅,遇到问题,查阅的循环过程,光啃书不实践,记不住啊,还体会不到乐趣,消磨积极性。
以下罗列一下常用document和网站,少而精才是有效推荐
竞赛
kaggle、阿里天池
coding
推荐剑指offer,可以更快的掌握coding技巧。
另外就是coding的刷题网站,推荐leetcode,题目多且全,推荐先刷力扣 (leetcode-cn.com)
document
编程工具:Python、PyTorch、OpenCV
代码库
图像分类:pytorch-image-models 基本上涵盖所有主流网络
目标检测: MMDetection、Detectron2 这两个都是优秀的代码库,值得学习借鉴
查阅各个领域的最新进展,可以查阅这个网站,会记录一些sota的paper和code链接:paper-with-code
学习视频只推荐三个
机器学习:李宏毅机器学习 (打包到Smarter了) 上课太有趣了
计算机视觉:李飞飞cs231n (打包到Smarter了)
经典paper解析:AI百篇经典论文
如果非要买书,机器学习可以买一些书籍,比如统计学习方法、西瓜书
《机器学习》俗称西瓜书,图例多容易理解,缺点较厚实,推理过程不详细。
《统计学习方法》比起西瓜书,更干,推理详尽,篇幅少,但是图例少不容易理解。
从实用主义出发,以上入门完全够用了,对深度学习和计算机视觉有了一些了解,后面就可以自己愉快的玩耍了。
03
心得
1.geek是必须的,想要跨专业必须付出更多。
2.当然也要劳逸结合,多运动,健康更重要。
3.不要假装努力学习,到底懂不懂,有没有学会,自己心里比谁都清楚。
4.焦虑是因为实力不配,对未知的恐惧,不断输入才能更自信。
5.心态要好,你能决定的只有很小一部分,但依然要相信人定胜天。
6.精准的内推资源很重要,可以减少很多搜集信息的时间。