我是如何成为算法工程师的,超详细的学习路线

Jack Cui

共 5028字,需浏览 11分钟

 ·

2020-10-10 22:26

点击上方“Jack Cui”,选择“加为星标

第一时间关注技术干货!


1


前言

各位十一过得如何?

假期,我回了趟老家,文章停更了几天。

写文章以来,被问到最多的问题就是「算法的学习路线」。

今天,它来了。

我会带着大家看看,我们需要学些啥,利用这个假期,我甚至还收集整理了配套视频和资料,暖男石锤啊,这期文章有用的话,别忘三连哦!

2


学习路线

主要分为 4 个部分:数学基础、编程能力、算法基础、实战。


1、数学基础

在机器学习算法中,涉及到最为重要的数学基本知识有两个:线性代数概率论

这两也是大学的必修课了,如果知识早已还给老师,也没关系,哪里不会学补哪里

线性代数研究的是线性空间的性质,数据通常会被表示为欧式空间中的点,而这些点经过一系列变换后会映射到另一个空间,在新的空间中隐藏在数据中的规律才得以显现。

所以线性代数作为研究空间的一门科学,是入门机器学习的最要基础之一

视频:推荐 MIT 的老教授 Gilbert Strang 的线性代数上课视频。

没学过线代的同学会发现这门课程,讲得清晰而且直观,深入线代的精髓,完全不是那种理论堆砌的讲法,而且老教授幽默风趣,很有人格魅力。

英文不好,也不用担心,字幕是中文的


下载地址(提取码:jack ):
https://pan.baidu.com/s/1WktC95HL2GF0PKa311L5SQ

教材:推荐《线性代数及其应用》,作者是 David C. Lay 。


喜欢看书的朋友,这本书一定不能错过。

这本书详细地介绍了线性代数在几何学、计算机图形学、经济学、概率论、信号与系统、微分方程等领域的应用,给人以直观的认识。

下载地址(提取码:jack ):
https://pan.baidu.com/s/10FtcG4mweUWy810cirGGzg

概率论是研究不确定性的一门科学,生活处处是概率。机器学习算法需要对现实情况建模,自然是少不了将概率论作为工具。

这门课入门并不难,大家可以挑一本评分还可以的书开始学习。

这里推荐陈希儒的《概率论与数理统计》,讲得很详细,如同听一个老者回忆自己的概率与统计心得,相信读者也会有所收获。


下载地址(提取码:jack ):
https://pan.baidu.com/s/1P_jIbbW6JUNSlCaCX7CXKA

如果时间充裕,推荐先学好数学基础。如果时间不够,那就跳过数学基础部分,学算法的时候,哪里不会补哪里。

2、编程能力


编程语言,需要至少掌握两门, Python 和 C++。

工作中,Python 主要用于处理数据算法调研模型训练的工作,而 C++ 则是负责工程落地

算法工程师,需要针对落地场景,对算法的可靠性和实时性等方面进行优化,C++ 工程能力必不可少。

Python 是一门非常友好的编程语言,不但易于入门而且功能强大,在进行机器学习算法开发的过程中会大量使用 Python。

视频:我上学看的第一个视频,就是小甲鱼 Python 课程,风趣幽默,涉及Python 语法基础、网络爬虫、Pygame 飞机大战等内容,内容很丰富。


下载地址(提取码:jack ):
https://pan.baidu.com/s/1-WasSZey8bZuEfp48bTOuw

实战是最好的老师,学习 Python 的时候,可以找一个自己喜欢的方向,去实战。

边实战,边学习。比如写爬虫、做小游戏、玩各种有趣的算法等。

这里面,爬虫是最简单的,很容易有成就感,让你坚持学习下去,下载小说、下载漫画、下载音乐、下载电影、抢票等等小程序。

这个推荐我的一个 Github star 量 11.4k+、fork 4.5k+的爬虫项目。


每个实战,都有对应的文章教程,代码开源

项目地址:
https://pan.baidu.com/s/1-WasSZey8bZuEfp48bTOuw

教材:推荐《流畅的Python》,书看完有些难度,但是哪来当个手册用,很方便,哪些语法忘记了,翻阅一番,必能有所收获。


下载地址(提取码:jack ):
https://pan.baidu.com/s/1-YBEOYY45CYrbM4Zxb21Yw

C++ 是一种面向对象的程序设计语言,无论你是做算法,还是做开发,亦或者是做测开。C++ 都应该掌握,它是一个基础的编程语言。学会了这门编程语言,再学其它,就会更得心应手。

视频:这部分推荐慕课网的免费教程,很好的入门视频,老师讲得绘声绘色、形象生动、通熟易懂。


一共分为 7 章,每章视频的时间是 2-3 个小时,半个月可以轻松刷完,学习顺序是:


  • C++远征之起航篇

  • C++远征之离港篇

  • C++远征之封装篇(上)

  • C++远征之封装篇(下)

  • C++远征之继承篇

  • C++远征之多态篇

  • C++远征之模板篇


视频观看地址(提取码:jack):

https://pan.baidu.com/s/1-YBEOYY45CYrbM4Zxb21Yw

教材:推荐被誉为“圣经”的《C++ Primer》,经典巨著,非常棒的书。


下载地址(提取码:jack):
https://pan.baidu.com/s/1uyW6kg6J0KwA8JYUj7AFFA

编程语言基础学完了,接下来就是数据结构与算法。


数据结构与算法是程序员的内功,每一个工程师的必修课。


数据结构的学法,我推荐是直接看书,一边学习一边刷题,同时进行,这样学的速度快。


就如同书名一样,这是一本像小说一样有趣的算法入门书,非常易懂,强烈推荐。



下载地址(提取码:jack):

https://pan.baidu.com/s/1jQYbWiHM6Z8VaP62alkBoA


可以与这本书一同学习的,就是《剑指Offer》,里面讲解了 66 道+ 常见数据结构题,解析思路,简单易懂。


下载地址(提取码:jack):

https://pan.baidu.com/s/1jQYbWiHM6Z8VaP62alkBoA


两门书一起看,轻松入门数据结构与算法。


不过《剑指Offer》讲解的代码都是 C/C++,没有 Python 版本,想看 Python 版本的,可以看我整理的教程,C++ 和 Python 都有实现和讲解,题目已按照类型划分好。



项目地址:
https://github.com/Jack-Cherish/LeetCode

两本书都看完,题也刷完了,那就算是入门了。


想进阶,进一步学习,直接上 LeetCode。



力扣可以从 HOT 100 或 精选算法 200 题刷起,题目相对于《剑指Offer》要增加一些难度,但每道题目都有对应的解题思路和答案。

坚持刷完 200 道,大多的面试轻松搞定,完全够用。


当然要面试谷歌级别的大佬,Hard 题是不能放过的。


刷题地址:
https://leetcode-cn.com/

Tip:刷一遍题,回头看还会忘,不要怀疑自己,要反复刷,反复练习。

3、算法基础


恭喜大家,在做了前面这么多基础工作之后,终于可以开始入门机器学习算法了。

机器学习

视频:推荐吴恩达老师的机器学习视频,吴恩达是整个领域的巨头之一,学术地位很高。同时,他出的视频也对新手非常友好,入门的不二之选。


下载地址(提取码:jack ):

https://pan.baidu.com/s/1OglLhzB5gWHrK_pkAWF2Sg


教材:还是那句话,光看不练是不行的。《机器学习实战》,理论结合实战,适合新手。


下载地址(提取码:jack):
https://pan.baidu.com/s/1lEz8POdx9V5Xu-RVMlBttA

《机器学习实战》使用 Python2 实现,有些细节讲的不够细致,对此我进行了完善,使用 Python3 复现了一遍,并结合 sklearn 以及更多的好玩例子,进行讲解。


全网阅读量 500w+:



对应的 Github 开源代码 Star 3.3k+,fork 3.1k+。



在线阅读地址:
https://cuijiahua.com/blog/ml/

我也将这个系列打包成了本地 pdf,喜欢离线看,也可以直接下载。

下载地址(提取码:jack):
https://pan.baidu.com/s/11OI0NZ_Fv-ZJBpT8pmjlRw

深度学习


深度学习是现在的算法工程师绕不开的一个子领域,是机器学习的子集。


视频:还是推荐吴恩达老师的深度学习视频,也是对新手非常友好。


下载地址(提取码:jack ):

https://pan.baidu.com/s/1TShDS2_jioxMRhFv2253aQ

教材:说实话,深度学习,我并没有看过书,都是视频+ Github 开源项目学习的,不过被誉为深度学习领域圣经的“花书”,可以备一本。


下载地址(提取码:jack):
https://pan.baidu.com/s/1drDJUf9OqSfxoicsk8J2gg

深度学习框架

深度学习框架有很多,Tensorflow、Pytorch、Paddle、MXNet、Caffe等。


我在工作过程中,用的最多的是 Pytorch,其次是 Tensorflow。


新手上手,推荐先学 Pytorch,可以直接看 Yunjey Choi 大佬的 Github 教程,简单入门:


项目地址:

https://github.com/yunjey/pytorch-tutorial


Pytorch 深度学习框架学习,也可以看我写的 Pytorch 深度学习实战系列教程,有垃圾分类、图像分割等结合实战的小项目。


Github 开源代码 Star 400+,fork 250+。


项目地址:

https://github.com/Jack-Cherish/Deep-Learning


我也将这个系列打包成了本地 pdf,喜欢离线看,也可以直接下载。


下载地址(提取码:jack):

https://pan.baidu.com/s/1PXkcKJa-ZJ0fWeqVduCoZA


4、实战


实战实战,文章反复提到了这么多次,仅仅这些还是远远不够的。


因为更多时候,你是跟着视频 or 文章的思路去实战,这缺少了独立思考的过程。


学了这么多,你并没有独立完成过一个项目,数据怎么处理,怎么分析问题,用什么算法解决问题,也没有独立思考过。


算法工程师的岗位竞争也比较激烈的,为了在茫茫人海中脱颖而出,我们需要以团队个人的形式,独立完成一些项目,只有这样,你才能更具竞争力。


对于学生党,做项目,最简单直接的方法就是参加竞赛


推荐两个参加竞赛的地方,一个是国外的 Kaggle,另一个是国内的阿里云天池


两个竞赛的奖金也都很丰富,根据自己的喜好,参赛即可。


Kaggle:

https://www.kaggle.com/



阿里天池:

https://tianchi.aliyun.com/competition/gameList/activeList



既能打比赛,又能赢奖金,何乐而不为呢?

3


资料打包

本文提到的资料,我都打包了,可以直接全部打包带走。


下载地址(提取码:jack):
https://pan.baidu.com/s/12tbVrUF056pY7aCyMpgl1w

PS:有能力支持正版的,资料觉得不错,可以去购买支持一波正版。

4


絮叨

这篇文章整理的也是我的学习路线。

要说需要学多久,那就看个人的学习动力了。

如果你想去一家不错的公司,但是目前硬实力不过关,我觉得还是有必要去努力一下的,技术能力的高低决定你能走多远,平台的高低,决定你能飞多高。

如果可以通过自己的努力,进入自己心仪的公司,一定不要松懈怠慢,职场成长和学习新技术一样,不进则退。

你往往会发现,身边实力越强的人越努力,最高级的自律就是享受孤独

创作不易本期硬核,各位的三连就是 Jack Cui 创作的最大动力,我们下次见!

推荐阅读


成功上岸阿里,深度学习知识考点总结

秋招在即,你准备好了吗?

让图片动起来,特朗普和蒙娜丽莎深情合唱《Unravel》

百年老照片修复算法,那些高颜值的父母!

这些 AI 算法太强了,我有个大胆的想法!

AI还原康乾盛世三代皇帝样貌,竟然有点帅!

心中无码便是高清,马赛克“脑补”算法 PULSE

浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报