工作时长两年的算法工程师来答一波!

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

1、数学基础

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

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

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

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

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

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

英文不好,也不用担心,字幕是中文的。PS:资源下载见文末。

教材:推荐《线性代数及其应用》,作者是 David C. Lay 。PS:资源下载见文末。

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

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

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

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

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

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

2、编程能力

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C++远征之离港篇

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

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

C++远征之继承篇

C++远征之多态篇

C++远征之模板篇

教材:推荐被誉为“圣经”的《C++ Primer》,经典巨著,非常棒的书。PS:资源下载见文末。

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

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

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

就如同书名一样,这是一本像小说一样有趣的算法入门书,非常易懂,强烈推荐。PS:资源下载见文末。

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

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

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

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

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

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

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

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

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

3、算法基础

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

机器学习:

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

教材:还是那句话,光看不练是不行的。《机器学习实战》,理论结合实战,适合新手。PS:资源下载见文末。

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

全网阅读量 500w+:

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

在线阅读地址:

深度学习:

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

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

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

深度学习框架:

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

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

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

项目地址:

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

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

项目地址:

4、实战

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

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

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

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

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

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

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

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

三、资料打包

本文提到的资料,我都整理好了

有需要的自取(提取码:jack):

四、絮叨

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

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

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

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

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

创作不易,本期硬核,感谢点赞支持!笔芯~ 记得关注我哟 @Jack-Cui

祝点赞的人,人人都是offer收割机!

python人工智能什么人可以学_本科想学习人工智能方向,需要学习python的什么方向?...相关推荐

  1. 财务有必要学python吗-财务人要学Python吗?

    财务人要学Python吗? 相信大家都被抖音里"我要悄悄学Python,然后惊艳所有人"的广告刷屏过,作为财务小白应不应该学Python呢? 2020-8-7 14:00:14 上 ...

  2. 普通人有没有必要学python,什么样的人适合学python

    普通人学python有意义吗 有意义.普通人下定决心去学习python并不是不可以,你要对自己设定合适的目标,按照目标去完成,达成预期的效果就行了.而且在学习中,思维是可以得到重新的梳理,至少让你的头 ...

  3. python那么多库怎么学_为什么大家都在学习python?原因在这里

    原标题:为什么大家都在学习python?原因在这里 为什么大家都在学习python? python真的是天生丽质难自弃呀,难怪大家都在学python,这就跟所有姑娘都在追求高富帅,所有男生都在渴望白富 ...

  4. python多大孩子可以学_孩子学编程最佳年龄是多大

    儿童编程教育已经悄悄地掀起了编程低龄化的热浪.但是很多人会疑惑,到底孩子学编程最佳年龄是多少呢?下面小编就为大家解答一下. 孩子学编程最佳年龄 首先,孩子的学习黄金时期是非常重要的.从6岁开始,大多数 ...

  5. python多大孩子可以学_少儿python教材适合多大的孩子

    python教材在国内市场上运用的是非常广泛的,它能够给孩子带来更好的编程入门效果.少儿python教材适合多大的孩子?孩子接触起来困难吗?python教材适合4岁以上的孩子,它的优点就是通俗易懂,让 ...

  6. python做桌面软件 代码隐藏_桌面杂乱?教你50行Python代码一键整理桌面!

    我们每天上班会有很多文件来不及处理,全部都在桌面上堆放在了一起,久而久之,就造成了桌面非常的混乱,如下图所示: 乱糟糟的桌面,让心情也会潜移默化的变得烦躁,更重要的是,它会让我们的工作效率变的非常的低 ...

  7. python中常用的序列化模块_第六章 常用模块(5):python常用模块(序列化模块:pickle,json,shelve,xml)...

    6.3.7 序列化模块 (pickle,json,shelve,xml) 文件写入,数据传输时,我们都是以字符串形式写入的(因为字符串可以encode成bytes). 那其他类型(比如字典,列表等)想 ...

  8. python语言的实验心得体会_国产编程语言木兰被质疑换皮Python:当事人承认夸大、道歉...

    近日有报道称,中科院计算所的计算机体系结构国家重点实验室编译组成功研发了国产编程语言"木兰"(Mulan),主要面向物联网应用,可以成倍地提高应用执行效率,并且全面支持国产龙芯处理 ...

  9. [转载] python模块的分类有哪些_整理了一份清单,常见Python问题的快速解答包

    参考链接: 使用随机数的自动井字游戏的Python实现 Python继续流行.同时,Web开发,数据科学和机器学习等领域的需求仍在不断增长,其中Python是这些领域中的通用编程语言. 随着对Pyth ...

最新文章

  1. Hough变换的方法检测直线段,效果良好
  2. http超文本传输协议
  3. 用java程序实现记单词_java实现背单词程序
  4. 7-2 银行家算法--申请资源 (30 分)
  5. BUUCTF Web [极客大挑战 2019]Havefun
  6. 男人要走过几条路才称得上男子汉?
  7. unity player 显示播放错误时的解决办法
  8. Yii 2.0 权威指南 (6) 请求处理
  9. 配置 Ubuntu 字符界面启动
  10. POJO、PO、DTO、DAO、BO、VO需要搞清楚的概念 1
  11. CAD看图软件查看CAD图纸
  12. time模块训练:打印出某网店每天累计的购物次数
  13. 台式计算机如何上网设置,台式电脑怎么设置无线网络,教您台式电脑怎么设置无线网络...
  14. 如何解决:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
  15. U盘安装CentOS 7.0图文详解教程
  16. 世上无难事,只怕有心人
  17. 使用vue框架,在线打开 word、excel、pdf 这三种格式的文件的方式。
  18. 自动修复.dll文件异常
  19. 2021年熔化焊接与热切割免费试题及熔化焊接与热切割模拟考试题库
  20. 嵌入式Linux应用程序开发-(1)第一个嵌入式QT应用程序

热门文章

  1. modern android5.1,Modern版IT之家v5.1.1更新:ARM版重构+横屏模式修复
  2. ChatGPT引发的人机交互发展历程与升级思考
  3. 万能的3d打印机真的江郎才尽了吗
  4. Android 手势锁的实现 让自己的应用更加安全吧
  5. 微软推出python免费在线教程视频_微软推出 Python 免费在线视频教程 - 爱绿豆
  6. 从个人免签、四方通道到刷脸支付
  7. 磁盘性能测试工具-FIO的安装及使用
  8. Unity使MakeHuman人体模型动起来
  9. Linux系统物理CPU、逻辑CPU和CPU核数的区别
  10. 金山词霸2005,郁闷……