算法岗学习路线 | 26 年最新零基础到精通一条龙(万人收藏⭐️)PDF下载

算法岗学习路线 | 26 年最新零基础到精通一条龙(万人收藏⭐️)

by 编程导航 下载量 7
想转算法岗却不知从何入手?这份实战指南直击核心痛点:从必备的线性代数、概率论数学基础,到Python/C++双语言能力搭建,再到机器学习理论(西瓜书+吴恩达课程)与PyTorch实战框架。重点解决算法岗特有的工程化难题——通过TensorRT加速框架实现工业级模型部署,配合LeetCode高频题型(...

作者:北京大学计算机硕士 - 编程导航嘉宾 千与编程

一、算法岗前言

最近真的好多同学来问,我想转算法工程师,有没有一个完整的算法岗的学习路线?在星球里面回答问题的时候,被问到最多的问题就是「算法岗的学习路线」。

别急今天,今天它就来了。

如果很多小伙伴,还不知道什么是算法岗的,建议大家先看看,我之前的精华文章:

算法岗是什么?我适不适合算法岗?选什么算法岗?

先了解一下算法岗的工作内容,确定自己的算法岗研究方向。

在今天的文章中,我会带着大家看看,我们需要学些啥,我甚至还收集整理了配套视频和资料,这期文章有用的话,别忘点赞哦!

二、算法岗的学习路线

主要分为 5个部分:数学理论基础、编程代码能力、机器学习基础、AI项目实战,算法岗位面试,后面两个暂时没时间了!

1、数学理论基础

在机器学习算法中,因为会涉及到大量的张量运算,什么是张量的运算?说白了就是多维的矩阵运算,因此涉及到最为重要的数学基本知识有两个:线性代数和概率论。

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

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

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

1)线性代数推荐学习视频:

MIT 的老教授 Gilbert Strang 的线性代数视频课程B站:https://www.bilibili.com/video/BV1zx411g7gq?from=search&seid=8130405528296931788

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

2)推荐线性代数学习教材:

《线性代数及其应用》,作者是 David C. Lay 。喜欢看书的朋友,这本书一定不能错过。这本书详细地介绍了线性代数在几何学、计算机图形学、经济学、概率论、信号与系统、微分方程等领域的应用,给人以直观的认识。

仅仅是看视频的话是不够的,因为算法工程师在日常工作中,甚至成果中,你需要看最新的成果论文,因此看纸质版资料的感觉,一定要把持,这也是为什么算法岗基本都得是硕士!

网盘链接:https://pan.baidu.com/s/1FOIculU-UajgRt7O-YNdtg提取码:qyqx

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

判断一副图片到底是不是猫或者狗的概率80%,20%,这个百分比,就是概率论的知识计算出来的。

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

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

链接:https://pan.baidu.com/s/1tROP80-QxRayF74oJ2hzRQ提取码:qyqx

如果时间充裕,千寻还是建议大家先学好数学基础。如果时间不够,那就跳过数学基础部分,学算法的时候,哪里不会补哪里。当然跳过数学部分,适合于你马上想找工作的同学,但是扎实的基础才是王道。

PS:视频与教程不需要逐字逐句的看,只要能知道公式的用法,类似数学期望的计算,在实际的算法模型计算中不会涉及特别细致的内容!

2、编程能力

编程语言,需要至少掌握两门, Python 和 C++。工作中,Python语言主要用于处理数据、算法调研、模型训练的工作,而 C++ 则是负责工程落地。

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

1)python代码能力:

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

Python基础笔记专栏:

廖雪峰python学习笔记链接:https://blog.csdn.net/datawhale/article/category/7779959

Python基础视频课程:南京大学python视频教程链接: https://www.icourse163.org/course/0809NJU004-1001571005?from=study

另外学习编程来说,进行实际的编程实战是最好的老师,比如在学习 Python 的时候,可以找一个自己喜欢的方向,去实战。

不一定必须是算法岗位的方向,Python是一门胶水语言,人生苦短,我用Python!其实Python还可以做爬虫,以及数据分析等多个功能,真的没必要只看算法部分!

边实战,边学习。比如写爬虫、做小游戏、玩各种有趣的算法等。培养对Python的兴趣,因为学习编程其实一种“智力层面的否定”的感觉,能坚持下去的话,需要依靠兴趣坚持的。

进阶Python教材 :推荐《流畅的Python》

《流畅的Python》这本书看完有些难度,但是哪来当个手册用,很方便,哪些语法忘记了,翻阅一番,必能有所收获。但是我个人认为,这本书的难度有点太高,讲得知识点有一点过于细致,有研究细致点的时候,不如多刷刷Leetcode。

2)C++代码能力:

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

C++课程学习视频:这部分推荐B站上的黑马程序员的课程,这个课程是2019年发布的,到今天在在B站上已经有约3000万的播放量了,我自己也看了一遍,比较适合零基础的新手。

而且针对算法工程师来说,算法工程师还是核心是Python,在模型部署时会写一部分的C++代码。因此将这个视频看完,C+

下载 APP