「推荐」程序员的数学基础

网站所有资源仅供参考交流,如有侵权请联系邮箱: m13664409584@163.com,即刻删除!!!

数学基础的好坏,会直接决定一个程序员的发展潜力。

往大了说,数学是一种思维模式,考验的是一个人归纳、总结和抽象的能力。把这个能力放到程序员的世界里,其实就是解决问题的能力。

往小了说,不管是数据结构与算法,还是程序设计,很多底层原理和编程技巧都源自数学,比如你熟悉的分页功能,用的其实是余数的思想。

钻石价 3 折

已有2人支付

所以很多大公司招人时,都会优先考虑数学专业的毕业生。数学基础好,学编程也更容易上手。

如果说编程语言是血肉,那数学的思想和知识就是灵魂。它可以帮你选择合适的数据结构和算法、提升系统效率,并且赋予机器智慧。尤其在大数据和智能化的时代,更是如此。

因此,学数学绝不是死背那些艰深晦涩的定理和公式,洞悉技术本质,掌握知识规律,具备数学思维,拥有发现问题、分析问题、解决问题的能力,才是你的终极目标。

那程序员究竟该如何学习数学呢?

在这个专栏里,黄申从编程的视角,结合自己十多年学术经验和工业实践,总结了一套适合程序员的数学学习方法和知识体系。希望通过“知识 – 应用 – 知识”的讲解路线,为你贡献一堂实用、精彩的数学课。

基础思想篇 (18讲)

01 | 二进制:不了解计算机的源头,你学什么编程

02 | 余数:原来取余操作本身就是个哈希函数

03 | 迭代法:不用编程语言的自带函数,你会如何计算平方根?

04 | 数学归纳法:如何用数学归纳提升代码的运行效率?

05 | 递归(上):泛化数学归纳,如何将复杂问题简单化?

06 | 递归(下):分而治之,从归并排序到MapReduce

07 | 排列:如何让计算机学会“田忌赛马”?

08 | 组合:如何让计算机安排世界杯的赛程?

09 | 动态规划(上):如何实现基于编辑距离的查询推荐?

10 | 动态规划(下):如何求得状态转移方程并进行编程实现?

11 | 树的深度优先搜索(上):如何才能高效率地查字典?

12 | 树的深度优先搜索(下):如何才能高效率地查字典?

13 | 树的广度优先搜索(上):人际关系的六度理论是真的吗?

14 | 树的广度优先搜索(下):为什么双向广度优先搜索的效率更高?

15 | 从树到图:如何让计算机学会看地图?

16 | 时间和空间复杂度(上):优化性能是否只是“纸上谈兵”?

17 | 时间和空间复杂度(下):如何使用六个法则进行复杂度分析?

18 | 总结课:数据结构、编程语句和基础算法体现了哪些数学思想?

AI悦创·创造不同!
AI悦创 » 「推荐」程序员的数学基础

发表评论