程序员的数学基础课
黄申
LinkedIn 资深数据科学家
83374 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 58 讲
导读 (1讲)
基础思想篇 (18讲)
程序员的数学基础课
15
15
1.0x
00:00/07:44
登录|注册

开篇词 | 作为程序员,为什么你应该学好数学?

讲述:黄申大小:7.06M时长:07:44
希望学到的内容
遇到的困难
学习状况
数学的活力和魅力
创造的舞台
对未来发展的重要性
人类科学进步的基础
启发思维
分析和解决问题
抽象概念需要时间理解
不要太功利
线性代数和概率统计中的抽象概念
编程中最常用的数学概念
系统框架设计、性能优化、准确率提升
数据相关的算法
余数的应用
底层原理和思路源自数学
机器学习的本质是数学研究
应用于数据结构与算法、程序设计
解决问题的能力
提升编程能力
学习复盘
编程的世界
数学的重要性
数学作为基础能力
学习数学的思路
专栏内容
数学知识在编程中的应用
数学与编程的联系
数学对程序员的重要性
作为程序员,为什么你应该学好数学?
参考文章

该思维导图由 AI 生成,仅供参考

你好,我是黄申,目前在 LinkedIn 从事数据科学的工作,主要负责全球领英的搜索引擎优化,算法和数据架构的搭建。
2006 年,我博士毕业于上海交通大学计算机科学与工程专业,在接下来十余年时间里,我曾经在微软亚洲研究院、IBM 研究院、eBay 中国研发中心做机器学习方向的研究工作,也负责过大润发飞牛网和 1 号店这两家互联网公司的核心搜索和推荐项目,还写过一本书《大数据架构商业之路》。
对于数学和计算机编程的联系,我之前也没有思考过。直到有一次,在硅谷的一个技术交流 Meetup 上,我听到一位嘉宾分享说:“如果你只想当一个普通的程序员,那么数学对你来说,并不重要。但是如果你想做一个顶级程序员,梦想着改变世界,那么数学对你来说就很重要了。”
听完这句话,我马上感受到强烈的共鸣,因为就我自己的工作经历而言,越是往高处走,就越能发现数学的重要性。我知道,数学对于我们每一个程序员来说,都是最熟悉的陌生人。你从小就开始学习数学,中考、高考、研究生考试还要考数学,所以那些熟悉的数学定理、数学公式,陪伴你至少也有 10 年时间了。
但是,自从做了程序员,你可能早就把数学抛在了脑后,甚至觉得曾经为了应试而“硬学”的数学应该是彻底没什么用了,终于可以和他们 say goodbye 了。毕竟作为一个基础学科,数学肯定是没操作系统、数据结构、计算机网络这样的课程看起来“实用”。
起码我之前就是这么认为的。大学的时候,我非常喜欢编程,甚至还翘过数学课,专门在图书馆看计算机类的图书。那会儿我觉得,数学这东西,完全就是应试教育,我更喜欢计算机这样操作类的课程,不喜欢待在教室里听数学老师讲那些枯燥的理论和定理。
再到后来,我读了硕士,开始接触机器学习,猛然间才发现,机器学习表面上是“写程序”,但实际上剥去外表,本质上就是在研究数学。从那会儿开始,我对数学的认知也才逐步客观和理性起来。
再到现在,我参加了工作,写了这么多年代码,我想说,数学学得好不好,将会直接决定一个程序员有没有发展潜力。因为往大了说,数学它其实是一种思维模式,考验的是一个人归纳、总结和抽象的能力把这个能力放到程序员的世界里,其实就是解决问题的能力。
往小了说,不管是数据结构与算法还是程序设计,其实底层很多原理或者思路都是源自数学,所以很多大公司,在招人时,也会优先考虑数学专业的毕业生,这些人他们数学基础很好,学起编程也更容易上手。
所以我觉得,如果编程语言是血肉,数学的思想和知识就是灵魂它可以帮助你选择合适的数据结构和算法、提升系统效率、并且赋予机器智慧。尤其是在大数据和智能化的时代,更是如此。
举个例子,比如我们小学就学到的余数,其实在编程的世界里也有很多应用。你经常用到的分页功能,根据记录的总条数和每页展示的条数,最后来计算整体的页数,这里面就会有余数的思想。再难一点,奇偶校验、循环冗余检验、散列函数、密码学等等都有余数相关的知识。
遇到这些问题的时候,你能说你不懂余数吗?我想你肯定懂,只是很多时候没有想到可以用余数的思想来解决相关问题罢了。那为什么没有想到呢?我认为,本质原因还是你没有数学思维,还是你数学的基础不够好。
所以,在这个专栏里,我想和你重点聊聊数学。当然,我知道数学博大精深,所以在一开始做专栏的时候,我就和极客时间团队一起定义好了专栏的边界,用一句话来说就是“只做程序员需要学的数学知识”。
首先,我梳理了编程中最常用的数学概念,由浅入深剖析它们的本质,希望能够帮你彻底掌握这些最基础、也最核心的数学知识。其中包括那些你曾经熟悉的数学名词,比如数学归纳法、迭代法、递归、排列、组合等等。
其次,我把线性代数和概率统计中的抽象概念、公式、定理都由内而外地讲了出来,并分析它们在编程中的应用案例,帮助你提升编程的高阶能力。对于这些内容,我会从基本的概念入手,结合生活和工作中的实际案例,让你更轻松地理解概念的含义。
比如,对于朴素贝叶斯方法,我会从基本的随机现象、随机变量和概率分布等着手。随后,我会逐步深入,结合这些数学知识在编程算法中的应用进行展开。比方说,贝叶斯定理是什么,随机变量之间的独立性是什么,这些是如何构成朴素贝叶斯方法的,而最终朴素贝叶斯又是如何被运用在机器学习的分类算法之中的。
这样的讲解路线,既能让你巩固基础的概念和知识,同时也能让你明白这些基础性的内容,对计算机编程和算法究竟意味着什么。
不过话又说回来,我认为数学理论和编程实践的结合其实是“决裂”的,所以学习数学的时候,你不能太功利,觉得今天学完明天就能用得着,我觉得这个学习思路可以用在其他课程上,但放在数学里绝对不合适。
因为数学知识总是比较抽象,特别是概率统计和线性代数中的概率、数据分布、矩阵、向量等概念。它们真的很不好理解,也需要我们花时间琢磨,但是对于高级一点的程序设计而言,特别是和数据相关的算法,这些概念就非常重要了,这可都是先人总结出来的经验。
如果你能够将这些基本概念和核心理论都搞懂、搞透,那么面对系统框架设计、性能优化、准确率提升这些难题的时候,你就能从更高的角度出发去解决问题,而不只是站在一个“熟练工”的视角,去增删改查。
最后,我希望数学能够成为你的一种基础能力,希望这个专栏能帮你用数学思维来分析问题和解决问题。数学思想是启发我们思维的中枢,如果你对数学有更好的理解,遇到问题的时候就能追本溯源,快、准、稳地找到解决方案。
伽利略曾经说过,“宇宙这本书是用数学语言写成的”,数学是人类科学进步的重要基础,所以,你我都要怀着敬畏的心态去学习、思考数学。同样,我还要求我自己的孩子一定要学好数学,因为我确信,这对于他未来的发展来说,至关重要。
编程的世界远不止条件和循环语句,程序员的人生应当是创造的舞台。我希望,通过这个专栏的学习,能够让你切实感受到数学这个古老学科的活力和魅力。
好了,说了这么多,相信你已经下定决心和我一起攻克数学。重新开始就要告别过去,你可以在留言区做个“数学学习复盘”,在之前的学习过程中,你的学习状况是怎样的?你遇到的最大困难是什么?现在,你最希望学到的是什么?
Now,你说,我听!
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

作为程序员,为什么你应该学好数学?这篇文章由一位在LinkedIn从事数据科学工作的技术专家黄申撰写。他分享了自己的学习经历和工作体会,强调了数学在程序员职业发展中的重要性。文章指出,数学不仅是一种思维模式,还是解决问题的能力的考验。在编程中,许多基本原理和思路都源自数学,因此很多大公司在招聘时更青睐数学专业毕业生。作者还详细介绍了数学在编程中的应用,包括数学归纳法、迭代法、递归、排列、组合等概念,以及线性代数和概率统计中的抽象概念、公式、定理,并分析了它们在编程中的应用案例。作者强调学习数学不应该太功利,而是要将数学知识作为一种基础能力,用数学思维来分析和解决问题。最后,作者希望通过这篇文章能让读者感受到数学这个古老学科的活力和魅力,激励读者重新开始学习数学。

2018-12-03174人觉得很赞给文章提建议

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《程序员的数学基础课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(296)

  • 最新
  • 精选
  • 胡鹏
    置顶
    已经迫不及待了 , 希望快快更新

    作者回复: 快了快了,12月7日开始,每周三篇^_^

    2018-12-04
    3
    49
  • Lss
    我个人的一个拙见:“对于程序开发这个职业来说,数学和英语是非常重要” 这句话我一直记着!这是大一时一个老师说的! 但是在整个大学过程中,在开发中有意识的去应用数学是极少的,可能偶尔会想想! 在做项目的过程中,基本是搭积木的过程!库和自带函数就能满足需求!运用到的数学也是基本的初中数学!连高中的求导都没用过! 那会做数学题时能想到多种解法,而且会去思考更好的解题方法!更重要的是很开心! 目前我就是老师所说的普通程序员吧!或许自己选的职位与数学有点距离!更重要的是激情变少了! 数学的重要性对于自己的技术成长是不言而喻的! 如果大家看到,我的一点建议就是: 要乐观与希望,坚持而不急躁!

    作者回复: 最后两句总结的太好了👍

    2018-12-04
    59
  • X
    黄申老师是真大神!!机器学习表面上是“写程序”,但实际上剥去外表,本质上就是在研究数学。这话太有道理。 最近开始学机器学习和深度学习,才发现数学真的很有用(捂脸)。大学里不管高数、线代还是概率论,基本都靠考前刷题,学完就忘,也一直感觉没什么用。然后一看机器学习的书,简直崩溃,可以说是贝叶斯主导的世界,还要考虑一些向量问题。 三个月前买了概率论和线性代数的经典大块头,厚厚的原书第几版来着,到现在只看过目录,,,太厚了,真看不下去。终于知道数学重要,但是学不进去的崩溃啊。。。。 希望大神能带我入门!

    作者回复: 感谢支持!机器学习等算法里的数学知识,确实不太好懂,我从自己的理解出发,做了一些讲解,希望对你有所启发!

    2018-12-03
    3
    44
  • 广洲
    我是一名电工,今年24岁。今年底下定决心要转行程序员。2019年最大的梦想就是可以找一份程序员的工作。突破现在自己的状态,最近在学习Python,零基础入门的那种,学习一门新的课程很吃力。这个专栏是我订阅的第一个极客专栏,希望我可以学有所成,祝福我吧。

    作者回复: 后面会写一些python语言相关的内容 对你一定有所帮助

    2018-12-25
    2
    25
  • ahnselina
    以前最大的问题是学了数学,不知道具体有什么用

    作者回复: 有同感,有的时候我用了数学的思维都不自知……

    2018-12-03
    2
    17
  • 李二木
    吴军老师将 1+1=2 作为人类文明的第一个公式!

    作者回复: 很早就拜读了吴军老师的书,写得很赞,也给我了不少灵感

    2018-12-05
    11
  • georgesuper GoodTOGreater
    黄老师两本大数据书都买过,有幸等到黄老师开专栏讲数学

    作者回复: 感谢一贯的支持,之前的书籍涵盖的面比较广,这次专栏我会侧重数学部分,争取讲出不一样的精彩

    2018-12-03
    9
  • panda
    老师 我毕业很多年了,数学忘的都差不多了(在学校里面也没感觉学得有多好)有点怕跟不上,有书博客之类补充阅读推荐吗

    作者回复: 这个专栏是由浅入深的,不用担心一开始就看不懂。至于后面比较难的部分,我也会给出一些参考资料

    2018-12-07
    8
  • 小橘子🍊
    工作了十来年了,自打开始涉足机器学习,才发现原来大学里读得那么辛苦的高数原来可以这么用。如果当初老师能多举一些高数的应用,相信学起来会更加卖力。现在为了机器学习,又要重新学数学喽

    作者回复: 可能当时机器学习还没有那么广泛的应用

    2018-12-06
    8
  • Lisa.github.io
    高考数学刷的少,结果很差。考研数学知其然不知其所以然,好无头绪下手,结果惨败。这次刚参加工作不久,和数据又有很大的交道,希望不要重蹈覆辙,很高兴遇见极客,遇见您,还不晚

    作者回复: 相信这个专栏会对你有所帮助!

    2018-12-05
    5
收起评论
显示
设置
留言
99+
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部