QCon北京|3天沉浸式学习,跳出信息茧房。 了解详情
写点什么

程序员的数学书单

  • 2019-01-28
  • 本文字数:1829 字

    阅读完需:约 6 分钟

程序员的数学书单

内容选自:《程序员的数学基础课》


你好,我是黄申。今天想给你推荐几本适合程序员看的数学书。


数学领域涉及的面很广,相关书籍也很多。在专栏中,我从离散数学、概率统计和线性代数三个方面介绍了程序员常用的数学知识。所以,本次荐书我仍然会围绕专栏这三大模块,为你推荐相应的书籍,辅助“食用”,事半功倍。

「基础思想篇」推荐书籍

《离散数学及其应用》

Kenneth H·Rosen 著


专栏的第一模块是“基础思想篇”。在这个模块中,我尝试用实际项目中的案例,把不同的离散数学知识点串起来,并加以解释。如果你对其中某些点有更深的兴趣,可以仔细研读这本书。



除此之外,这本书还有几个特点,我觉得非常好。


  1. 国外高校的教材。书中对离散数学的知识点介绍得很全面,专栏中讲的同余定理、数学归纳法、递归、分治算法、排列和组合、树和树的遍历、图和最短路径、逻辑以及集合等概念,在书里都有非常详细的介绍。

  2. 介绍了不少证明的方法,比如穷举证明、存在性证明等,可以让你更好地理解,为什么有些算法是对的,有些是有问题的,并帮你在理解、学习和设计算法时保证其正确性。

  3. 讲解了很多逻辑、集合和布尔代数的相关知识。这部分我在专栏里没有涉及太多,因为程序员经常接触各种条件和查询语句,对这些内容已经很熟悉了,所以没有花费更多篇幅。

  4. 和编程结合紧密。书中介绍了一些基于伪代码的算法,并对其进行了时间和空间复杂度的分析,例如常见的排序、搜索算法等,还讲解了离散数学在计算机科学中的应用场景,比如关系型数据库和 SQL 查询语言是如何设计的等等。

「概率统计篇」推荐书籍

《概率统计》

Morris H. DeGroot,Mark J. Schervish 著


在专栏的“概率统计篇”,我会着重介绍概率统计及其在计算机领域中的主要应用。你可以预先阅读这本《概率统计》热热身。



我们再来聊聊这本书的几个特色。


  1. 对概念的解释非常清晰,比如充分统计量(sufficient statistic)的概念,其他书可能两句话就解释完了,紧接着就是公式的堆砌,而这本书用了差不多两页的篇幅来介绍,对自学者而言非常有帮助。

  2. 本书的两位作者,DeGroot 和 Schervish 都是贝叶斯统计理论的重量级人物。书中包含了概率论常用的知识点,比如随机变量及其分布、条件概率、期望值、贝叶斯理论、马尔科夫链等。在专栏的第二模块中,我也会介绍这些知识点及其在计算机领域,特别是机器学习中的应用。


总的来说,这是一本相当不错的概率统计专业书籍,尽管书中几乎没有涉及计算机算法和代码的部分,但你不用过于担心,在专栏中我会结合具体的机器学习算法和应用,为你展示这些理论知识是如何运用到实践中的。


如果你能预读本书,对概念有了些理解,再看专栏会更有感触。

「线性代数篇」推荐书籍

《线性代数及其应用》

David C. Lay,Steven R. Lay 著


如今的机器学习模型,除了基于概率和统计,还会使用线性代数的知识,专栏的第三个模块就是“线性代数篇”。介绍线性代数的书籍不少,我推荐《线性代数及其应用》。



这本书的特色在于:


  1. 使用通俗的表达和大量的插图来阐述概念,比如线性方程、向量空间、特征向量、奇异值的分解等,都是在机器学习算法中常用的模型或技术。

  2. 书中内容的呈现形式,以提出一个具体问题再解决问题为主,最后进行定理的归纳和证明,既通俗易懂,又不乏数学的严谨性。

入门、通识类书籍推荐

《程序员的数学》系列丛书


再给你推荐一套入门书——《程序员的数学》系列,包括《程序员的数学》《程序员的数学:概率统计》《程序员的数学:线性代数》3 本,内容的讲解不算深入,比较适合编程的初学者。

《数学之美》

吴军 著



这本书最大的特点是和计算机领域结合得非常紧密,所有问题和解决方案,最终都会联系到计算机中的某个应用。吴军老师从计算机从业者的角度出发,深入探讨了其背后的数学思想和知识。这本书的行文风格,对我写作专栏也非常有启发。

推荐专栏

我是黄申,目前在 LinkedIn 从事数据科学的工作,主要负责全球领英的搜索引擎优化,算法和数据架构的搭建。过去几年,我曾先后在微软亚洲研究院、IBM 研究院、eBay 中国研发中心做机器学习方向的研究工作,还负责过大润发飞牛网和 1 号店这两家互联网公司的核心搜索和推荐项目,出版了《大数据架构商业之路》一书。


《程序员的数学基础课》这个专栏中,所有内容我都会从基本概念入手,结合工作中的实际案例,精讲那些程序员真正用得上的数学知识。


通过学习专栏,你将获得:


  1. 工程师必备的数学思想剖析

  2. 常用概率统计与线性代数精讲

  3. 数学理论在编程中的实际应用

  4. 人工智能入门必修课


年前的最后一次优惠,仅限今晚 24 点前,戳我订阅!


2019-01-28 17:2811674

评论 1 条评论

发布
用户头像
谢谢分享 做程序员数学基础很重要 不然后面复杂的工作吴仪胜任
2020-09-08 11:03
回复
没有更多了
发现更多内容

笔记:《如何系统思考》之如何应用系统思考

wiflish

思维方式

JAVA内存模型与线程

颇风

Java 内存模型 JVM

PhotoShop切图,一篇文章就够用了

cwang

Web 工具 PhotoShop

2020第一篇技术博客

java劝退师首席大弟子

生活

Design Sprint 教你五天完成产品迭代

Yanel 说敏捷产品

产品 敏捷 设计 产品设计 团队

解决 Django 多进程下,logging 记录日志错乱问题

AlwaysBeta

Python django 编程 日志 log

Jenkins权限管理

kcnf

中小企业如何做运维自动化?

外滩运维专家

运维 spug 运维自动化 jenkins ansible

键入网址后,其间发生了什么?

小林coding

TCP 计算机网络 网络协议 IP HTTP

新mac笔记本需要做的事情

好好学习

Mac

用原理认知世界,用情绪驱动行为

史方远

职场 心理 成长

MySQL事务解析

一个有志气的DB

MySQL 事务隔离级别 mysql事务

《零基础学 Java》 FAQ 之 8-Java方法调用是传值还是传引用

臧萌

Java

Dart 进阶 | 深入理解 Function & Closure

LitaVadaski

flutter dart

谈谈控制感(6):虚幻的控制感也好用

史方远

职场 心理 成长

回“疫”录(20):世界从来不会欺负听话的人

小天同学

疫情 回忆录 现实纪录 纪实

一文带你了解 HTTP 黑科技

苹果看辽宁体育

大前端 HTTP

CentOS 6 升级 glibc

wong

centos glibc

写作对我的意义

Neco.W

总结 思考 写作 感悟

比AtomicLong更优秀的LongAdder确定不来了解一下吗?

一枝花算不算浪漫

并发编程 jdk源码

如何用一套引擎搞定机器学习全流程?

Apache Flink

大数据 flink 流计算 实时计算

走进Golang之编译器原理

何磊

编译原理 Go 语言

识别代码中的坏味道(二)

Page

Java 面向对象 复杂代码优化 重构 CleanCode

华为“补洞”:去年重新设计超过6000万行代码

罗燕珊

华为 实体清单

如何发布一个npm包-创建,发布,更新,撤销及常见问题解决

Brave

npm

汉字不能编程?别闹了,只是看着有点豪横!容易被开除!

小傅哥

spring 小傅哥 aop 汉字编程

一想到有95%的问题还没解决,我就calm down了

赵新龙

科普 宇宙 后真相时代

如何搞定Kafka重复消费?

奈学教育

kafka kafka配置

写在开头

宋胖子

Android | Tangram动态页面之路(三)使用

哈利迪

android

英语学习中听和说的区别

董一凡

学习

程序员的数学书单_AI&大模型_黄申_InfoQ精选文章