作为程序员,为什么你应该学好数学?
极客时间编辑部
讲述:丁婵大小:7.03M时长:05:07
你好,欢迎收听极客视点。
数学和计算机编程之间能有什么联系?相信很多人都没有思考过这个问题,包括 LinkedIn 资深数据科学家黄申。直到有一次,在硅谷的一个技术交流 Meetup 上,黄申听到一位嘉宾分享说:“如果你只想当一个普通的程序员,那么数学对你来说,并不重要。但是如果你想做一个顶级程序员,梦想着改变世界,那么数学对你来说就很重要了。”
听完这句话,黄申马上感受到强烈的共鸣,因为他发现,在工作中,越是往高处走,就越能发现数学的重要性。最近,黄申分享了数学对于程序员的重要性,希望他的观点能给你带来新的思考。
数学对于我们每一个程序员来说,都是最熟悉的陌生人。你从小就开始学习数学,中考、高考、研究生考试还要考数学,所以那些熟悉的数学定理、数学公式,陪伴你至少也有 10 年时间了。
但是,自从做了程序员,你可能早就把数学抛在了脑后,甚至觉得曾经为了应试而“硬学”的数学应该是彻底没什么用了,终于可以和他们 say goodbye 了。毕竟作为一个基础学科,数学肯定是没操作系统、数据结构、计算机网络这样的课程看起来“实用”。
起码我之前就是这么认为的。大学的时候,我非常喜欢编程,甚至还翘过数学课,专门在图书馆看计算机类的图书。那会儿我觉得,数学这东西,完全就是应试教育,我更喜欢计算机这样操作类的课程,不喜欢待在教室里听数学老师讲那些枯燥的理论和定理。
再到后来,我读了硕士,开始接触机器学习,猛然间才发现,机器学习表面上是“写程序”,但实际上剥去外表,本质上就是在研究数学。从那会儿开始,我对数学的认知也才逐步客观和理性起来。
再到现在,我参加了工作,写了这么多年代码,我想说,数学学得好不好,将会直接决定一个程序员有没有发展潜力。因为往大了说,数学它其实是一种思维模式,考验的是一个人归纳、总结和抽象的能力。把这个能力放到程序员的世界里,其实就是解决问题的能力。
往小了说,不管是数据结构与算法还是程序设计,其实底层很多原理或者思路都是源自于数学,所以很多大公司,在招人时,也会优先考虑数学专业的毕业生,这些人的数学基础很好,学起编程也更容易上手。
所以我觉得,如果编程语言是血肉,数学的思想和知识就是灵魂。它可以帮助你选择合适的数据结构和算法、提升系统效率、并且赋予机器智慧。尤其是在大数据和智能化的时代,更是如此。
举个例子,比如我们小学就学到的余数,其实在编程的世界里也有很多应用。你经常用到的分页功能,根据记录的总条数和每页展示的条数,最后来计算整体的页数,这里面就会有余数的思想。再难一点,奇偶校验、循环冗余检验、散列函数、密码学等等都有余数相关的知识。
遇到这些问题的时候,你能说你不懂余数吗?我想你肯定懂,只是很多时候没有想到可以用余数的思想来解决相关问题罢了。那为什么没有想到呢?我认为,本质原因还是你没有数学思维,还是你数学的基础不够好。
这就是为什么说“如果你想做一个顶级程序员,梦想着改变世界,那么数学对你来说就很重要”的原因。
你可能会想,“既然数学如此重要,难道我要重新拾起数学课本,进行系统、完整的学习与研究吗?”不是的,数学博大精深,你可以只学习“程序员需要的数学知识”。
黄申在他的《程序员的数学基础课》专栏中,梳理了编程中最常用的数学概念,由浅入深剖析它们的本质,希望能够帮你彻底掌握这些最基础、也最核心的数学知识。而且,黄申把线性代数和概率统计中的抽象概念、公式、定理都由内而外地讲了出来,并分析它们在编程中的应用案例。同时,将基本概念与生活和工作中的实际案例相结合,让你更轻松地理解概念的含义,帮助你提升编程的高阶能力。
如果你能够将这些基本概念和核心理论都搞懂、搞透,那么面对系统框架设计、性能优化、准确率提升这些难题的时候,你就能从更高的角度出发去解决问题,而不只是站在一个“熟练工”的视角,去增删改查。
以下是《程序员的数学基础课》专栏目录,供你参考。使用极客视点专属口令,还可以享受立减优惠。
优惠口令:shuxue123
适用专栏:《程序员的数学基础课》
适用规则:立减 10 元(满 40 元可用)
有效期:9 月 14 日 - 9 月 21 日
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论