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

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

各位十一过得如何?

今天,它来了。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这个推荐我的一个Githubstar量11.4k+、fork4.5k+的爬虫项目。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

机器学习:

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

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

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

全网阅读量500w+:

对应的Github开源代码Star3.3k+,fork3.1k+。

在线阅读地址:

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

深度学习:

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

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

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

深度学习框架:

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

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

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

项目地址:

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

Github开源代码Star400+,fork250+。

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

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

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

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

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

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

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

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

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

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

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

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

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

THE END
1.有什么初学算法的书籍推荐?对于有编程基础的算法初学者,推荐以下这些书目作为参考学习:一、基础与进阶结合类 《算法设计与分析基础https://www.zhihu.com/question/662164077/answer/46580558637
2.2021年计算机数据结构与算法[1]知识点第一章:数据结构与算法 1.1 算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: https://xue.baidu.com/okam/pages/strategy-tp/index?strategyId=137041646971828&source=natural
3.不花一分钱自学算法刷题经验(零基础版)推荐一个labuladong的算法小抄,结合代码随想录一起使用,效率更高 赞(1) 回应 momo 2023-08-31 22:45:54 云南 谢谢楼主 希望您能继续输出高能内容 赞 回应 柚柚柚子皮 楼主 2023-09-01 00:44:29 广东 [该条回应已被删除] momo 笑死!本穷鬼怎么可能花钱,就是要教大家免费高效自学!学到就是赚https://www.douban.com/group/topic/294208572/
4.大学四年,从小白到大神,全网最硬核算法学习攻略,不接受反驳二、如何刷题 终于,到了刷题这一部分了,如果要说学算法的捷径,那么刷题便是最好的捷径,如果你刷的题很少,达不到一定的量,那么再多的捷径,估计也没啥用,只有在满足一定题量的情况下,才适合来谈论所谓的技巧。 1、先说一说互联网算法笔试 不过在刷题之前我想先说一说笔试,如果笔试不考算法,面试也不考算法https://blog.csdn.net/m0_37907797/article/details/118341093
5.自学破解电商平台加密算法并倒卖,上海一男子获利17万元被公诉陈某某没想到,当初为了下载女儿的成长视频而自学的某知名短视频平台加密算法,却因一时贪念,反将自己一步步“算计”进法网。 事情还要追溯到两年前。 为下载女儿成长视频,他自学平台加密算法 陈某某是一名程序员,平时经常会给自己女儿拍些短视频作为成长过程的记录,并随手发在某短视频平台上。2020年10月,陈某某想将https://zfw.xzdw.gov.cn/zfjj/xxyd/202212/t20221215_304415.html
6.做这行团队不在一条线上,怎么做也做不好,但是不管如何,结果是我是做电力设计的,做10kv线路和配网设计,实习三个月后开始做主设,实在是心太累了,做这行团队不在一条线上,怎么做也做不好,但是不管如何,结果是我把项目都做的挺顺,也理顺了。然后提出离职了,然后想转行做算法,工作期间一直在学习C.Matlab.虽然不是很精通,但是只要努力我相信我肯定也会跟之前一样做成功的,https://zq-mobile.zhaopin.com/zpdOutputQuestionDetail/109800/
7.程序员小灰著数据结构与算法零基础从入门到精通自学基础教程书京东JD.COM图书频道为您提供《【全2册】漫画算法小灰的算法之旅+图解算法使用Java 程序员小灰著数据结构与算法零基础从入门到精通自学基础教程书》在线选购,本书作者:,出版社:电子工业出版社。买图书,到京东。网购图书,享受最低优惠折扣!https://item.jd.com/10077380128450.html
8.编程达人游戏新锐,算法少年考上华东师大从小自学编程知识,将兴趣变成专业。来自江西师范大学附属中学的许乐,即将作为2023级新生进入华东师大计算机科学与技术专业学习。他的报考选择始于最坚定的热爱,也来自七年信息算法的底气。 许乐(中)和同伴在机房打ICPC现场 |每天两个小时,“写代码让我拥有成就感” https://www.ecnu.edu.cn/info/1094/63437.htm
9.如何自学计算机专业课程昨晚听了一期知乎live:如何自学计算机专业课程。 学习后发现,里面的内容更适合计算机专业的在校生以及计算机基础较弱的小白。此外,作者推荐的一些教材倒是不错,在此分享。 image Test Post Data From PC to see whether it is auto refreshed in Mobile App. https://www.jianshu.com/p/72512b2fcab9
10.极客时间训练营覃超老师拥有丰富的线上和线下辅导授课经验,通过覃超老师指导的学员,拿到硅谷公司以及国内顶级互联网公司 Offer 的概率保持在 95% 以上。作为算法训练营讲师,覃超老师已指导 3000+ 技术人提升算法能力。 课程大纲 10 周如何攻破算法面试? “工欲善其事,必先利其器”,在开启训练营之前,看看我们要做哪些“热身运动”https://time.geekbang.org/college/algorithm/100034303?utm_source=infoq_web&utm_medium=menu&utm_term=menu
11.《运算律》教案能根据具体情况,选择合适的算法。 教法学法: 自学与合作相结合、讲解与互帮相结合。 教学准备: 收集一些学生平时做错的例子,多媒体课件 教学过程: 一、复习导入 1、我们学过了哪些有关整数的运算律?(用提问的方式复习) 2、它们有什么作用? 二、系统复习 https://www.ruiwen.com/jiaoan/5785661.html
12.3DMax中布尔运算使用教程溜溜自学专注室内设计,平面设计,视频剪辑,建筑动画和软件入门基础教程,新手实现快速入门与成长?去看一下 >> 文章作者:小溜文章分类:室内设计发布时间:2022-08-12 09:40浏览量:3200 布尔运算可以用来相加或相减两个物体之间的关系的一种算法。下面就由溜溜自学网小编教大家3Dmax中布尔运算该怎么使用,希望对那些有需要https://zixue.3d66.com/article/details_42750.html
13.GitHubYANETL/OI因为准备实习,今天早上整理了一下算法的课件、书籍、论文、习题、OJ网站。不管是准备校招,进BAT; 还是自学算法竞赛; 或者单纯的课外拓展;对程序员而言,算法学习都是有必要的,只是可能要求深浅不同,所以,开始学起来吧~全面收集、整理了从高中参加竞赛到现在的算法竞赛课件、论文集、书籍、OJ网https://github.com/YANE-TL/OI_Sharing
14.遗传算法求解0最近在自学遗传算法,整理的一些知识分享,是个人的一些感悟,有不对希望各位大佬指出,应该算是小白文,想学习遗传算法的友友可以参考一下。 01背包问题 问题:有一个箱子容量为V(正整数,0 <V≤20000),同时有n个物品(0<n≤30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间https://blog.51cto.com/u_16099331/10357700
15.感知算法控制对在线劳动平台零工工作者主动服务行为的影响研究2014[31];Barocas等人,2016[32])。后来由于计算机和信息技术商业化,算法逐渐被应用 于工作场所。JamesDuggan(2019)在研究零工经济中的算法管理和应用程序工作时将 算法管理定义为一种控制系统,在这一系统中既定的自学算法负责制定和执行影响劳动 力的决策,进而限制人员参与和监督劳动过程。对于应用程序工作,数字平台中https://m.book118.com/html/2024/0212/5220120131011104.shtm