程序员一定要有数学功底吗?这是一个老生常谈的问题。

比起循序渐进地学习数学知识,大多数程序员是在遇到跟数学相关的问题时才去主动了解的。

虽然这种“遇到问题解决问题”的学习方法会让人陷入短暂的自我否定之中,但是等到真正掌握了某个数学知识点,那种“久旱逢甘霖”的感觉会让人非常快乐。

为了延续这种快乐,有的人从箱子里翻出了当年的高等数学、线性代数以及概率论与数理统计教材,但翻了几页之后又重归自我否定;还有的人会继续这种临时抱佛脚的学习模式,从而进入“盲人摸象”模式:了解了许多知识点,却始终不能形成完整的知识网络。

由此可见,对于程序员而言,拥有一定的数学功底是十分必要的。

目前,数学技能对于专业软件开发人员来说越来越重要,尤其是在公司为数据科学和机器学习搭建团队的时候。数学在其他现代应用中也扮演着不可或缺的角色,如游戏开发、计算机图形学和动画、图像和信号处理、定价引擎以及股票市场分析等。

在这里,向大家推荐这本《程序员数学:用Python学透线性代数和微积分》,它让作为程序员的读者,从程序员的角度、以程序员易于理解的方式来学习数学。

保罗·奥兰德(Paul Orland) 译者:百度KFive

比起完全的启发式写作,本书作者更关注读者是否真正掌握了相关的数学知识,主要体现在以下三点。

本书作者规划了详细的学习路径——从基础的向量计算到最终的神经网络训练,基本涵盖了业务工程师和初级算法工程师所需了解的所有数学知识。

作者的写作基于大量的代码片段,且以 Jupyter Notebook 为载体,读者可以直接把学到的数学知识转化为代码。当然,作为读者的你也不必有太大的心理负担,本书中的代码完全遵循“够用就好”的原则,不会增加额外的学习开销。

作者为各章添加了大量的练习(事实上,很少见到一本书里有这么多练习)。这些练习既有开放式的提问,又有针对正文内容的扩展和提升。

这本书适合具备扎实的编程基础、想提升数学技能或想了解数学在软件中的应用的所有人。你 不需要事先接触过微积分或线性代数,只需要了解高中水平的代数和几何学知识就足够了(即使那是很久以前所学的)。阅读本书的时候最好坐在计算机前面,如果你能跟随示例敲出代码并做完所有的练习,会收获很多。

本书结构

第 1 章带你进入数学的世界。它涵盖数学在计算机编程中的一些重要应用,介绍本书中的一

些主题,并解释编程如何成为一个数学学习者的宝贵工具。

之后,本书分为三个部分。

第一部分介绍二维和三维向量、向量空间、线性变换和矩阵,这些都是线性代数的基础;

第二部分介绍微积分,并重点讲解几个对程序员特别实用的知识点:导数、梯度、欧拉方法和符号求值;

最后,第三部分介绍一些重要的机器学习算法的工作原理。

如果你在阅读每一章的时候都掌握了前面章节中的知识,那么不会遇到任何障碍。将所有概 念按顺序排列的缺点是,应用程序代码看起来很繁杂。各种示例会让本书读起来更有趣,帮你了解本书所涉及的数学知识以及对这些知识的广泛应用。

以下展示了部分目录内容:

本书的阅读体验很棒,学习曲线十分平缓,并且章节之间环环相扣。最关键的是,它能帮你通过代码来学习数学,并且用包含数学知识的代码来解决实际问题。

内容简介

代码和数学是相知相惜的好伙伴,它们基于共同的理性思维,数学公式的推导可以自然地在编写代码的过程中展开。本书带领程序员使用自己熟知的工具,即代码,来理解机器学习和游戏设计中的数学知识。通过Python代码和300多个练习,读者将掌握二维向量、三维向量、矩阵变换、线性方程、微积分、线性回归、逻辑回归、梯度下降等。

作译者简介

作者:保罗·奥兰德(Paul Orland)

硅谷创业公司Tachyus的联合创始人兼CEO,拥有耶鲁大学数学学士学位和华盛顿大学物理学硕士学位,曾任微软公司软件开发工程师,近10年来一直致力于使用数学和函数式编程来优化能源生产。

译者:百度KFive

KFive是百度App大前端团队,成员涵盖PC端和手机百度的大前端研发者。在业务支持之外,KFive研究的技术方向还包括前端基础架构、跨端开发、Node.js、端智能和前端智能化等,并且积累了丰富的产出。KFive的名称不仅来源于起初的办公地点在百度科技园五号楼,更体现了其对软件开发的理解,即“五Key”:Key1者,精益求精;Key2者,大巧不工;Key3者,独运匠心;Key4者,百炼千锤;Key5者,善始善终。

大佬推荐

“这本书循序渐进地介绍了程序员应该掌握的有用的数学概念。”

——Christopher Haupt,Swoogo公司工程副总裁

“这本书严谨而简明地概述了对现代编程起支撑作用的数学知识。”

——Dan Sheikh,BCG Digital Ventures公司工程师

“实用、引人入胜。推荐所有程序员阅读。”

——Vincent Zhu,RethinkXSocial网站联合创始人兼CTO

“这本书为需要提高数学技能的程序员建造了一座桥梁,使数学不再那么神秘、那么难以理解。”

——Robert Walsh,Excalibur Solutions公司总裁

关键词: 用Python学透线性代数和微积分 python