说起算法(Algorithm),需要值得注意的是,数据结构与算法,机器学习算法都可简称为算法,但两者是完全不同的。数据结构与算法是计算机科学中的一门基础课程,主要内容是关于如何设计计算机程序,使得程序能够运行更快,占用内存更少。通常所说的程序员面试要刷算法题,指的便是数据结构与算法中的算法。这是程序员很重要的一项基本功,所以不管应聘什么岗位都会有一轮面试是算法面,也称为coding面。而互联网公司的算法工程师岗位中这个算法则是机器学习算法,说的通俗点,就是人工智能领域中的算法,它是关于如何让机器自动学习和挖掘数据中的规律,并使用算法和模型对未来进行预测。目前来说这也是互联网行业中最热门的一个岗位,开出的薪酬也普遍高于开发岗。今天我就来分享下算法工程师的学习路径,并推荐一些我认为特别有价值的学习资料和学习方法。因为我自己是从数学转到算法的,走过不少弯路的,希望这份路线图能帮助各位想成为算法工程师的朋友少走点弯路,快速进步。基础篇1.数学基础在机器学习算法中,涉及到最为重要的数学基本知识有两个:线性代数和概率论。线性代数研究的是线性空间的性质。数据通常会被表示为欧式空间中的点,而这些点经过一系列变换后会映射到另一个空间,在新的空间中隐藏在数据中的规律才得以显现。所以线性代数作为研究空间的一门科学,是入门机器学习的最要基础之一。市面上很多线性代数或者高等代数的教材都是从矩阵和行列式讲起,虽然这种方式也能够构建一个完整的体系,但个人认为这种方式对初学者非常不友好,完全丢弃了线性代数的美感和直观。这里给大家隆重推荐两份学习资料,玩爆国内各种教材和课程。课程:MIT的老教授GilbertStrang的线性代数上课视频。没学过线代的同学会发现这门讲的清晰而且直观,深入线代的精髓,完全不是那种理论堆砌的讲法,而且老教授幽默风趣,很有人格魅力。学过线代的朋友也可以利用课余时间重温一遍线代,我自己就是在本科毕业多年后看了这个视频,大有醍醐灌顶之感。英文不好的同学也不用担心,字幕是中文的。话不多说,B站视频传送门: