50

程序员需要学数学吗?

 5 years ago
source link: https://www.infoq.cn/article/H3HkmbXubJgh-VLVxMBN?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

“程序员不需要学数学,因为工作中根本用不到。有那功夫,还不如认真把设计模式、计算机网络、操作系统等硬知识学好。” 这是很多人的观点,是的,作为程序员,你不需要任何数学知识,也能写代码。

但是, 编程的世界不止条件和循环语句,程序员的人生应该是创造的舞台 ,只要想在这个领域持续深耕,学好数学就是充分必要条件,会决定一个程序员未来的发展潜力。

往大了说,数学是一种思维模式,考验的是一个人归纳、总结和抽象的能力,放到程序员的世界,就是解决问题的能力。往小了说,不管是数据结构与算法,还是程序设计,其底层原理和思路大都源自数学。

所以,很多大公司在招人时,都会 优先考虑数学专业的毕业生 ,因为数学基础好,编程会更容易上手。在大数据和智能化的时代,学好数学更是 门槛本身。

学习数学的正确姿势,听听他们怎么说?

Steve Yegge | 资深程序员

  1. 正确学习数学的方法是广度优先,而非深度优先。你要了解的是整个数学领域每个概念的名字,并知道它们要解决什么问题。

  2. 把数学当成文科来学,先不用重点看那些算法和证明,只需要了解数学概念的名字、作用、大致步骤、发明人、发明时间、局限等。

  3. 数学符号是关闭你通往另一个世界的符咒,如果你看到一堆自己不懂的数学符号,就把它的实现功能简单地当成一个原子操作好了,不要深究太多。

徐文浩 | bothub. ai 创始人

  1. 从工作相关的领域开始了解数学,可以随学随用,在工作中累计实操经验,更容易获得正反馈。

  2. 把正在学习的数学问题的解法,写一个算法程序实现出来,是非常有效的练习方式。

  3. 你可以选择追一门数学的在线课程,跟着老师的节奏系统理解数学,对学习有一个联系和反馈的过程,做到有始有终。

刘超 | 《趣谈网络协议》专栏作者

程序员是否需要学好数学?我在学数学分析、概率论和线性代数的时候,也没想过数学和写程序有啥关系,但随着研究的开源软件越来越多,我发现很多技术深入下去,本质就是数学。

程序员应该怎么学数学呢?我不建议你将大学的相关书籍拿出来啃一遍,耗费大量时间不说,关键是跟实际应用无法结合,结果往往是:该看的忽略了,不该看的费了半天劲还用不上,等过一阵字就又忘了。

我们在了解新技术时,通常会分成三个阶段,第一阶段是,怎么使用;第二阶段是,如何实现,原理是什么;第三阶段是,为什么这样实现。 学数学也是这样 ,也有这样三个阶段, 先用起来,了解原理,再知道为什么这么做。

用一句话总结,我们不能为了数学而学数学, 要和具体的应用结合在一起。

qI3QVnE.jpg!web

△内容选自极客时间 《程序员的数学基础课》 专栏

综合三位老师的观点,其中的共性就是:学习数学, “实用”优先 。因此,我绘制了一张“ 程序员的数学应用地图 ”,包含四个部分:数据结构、编程语句、通用算法和机器学习算法。

数据结构和编程语句,你肯定非常熟悉,这些基础的内容涵盖的数学思维毋庸置疑。例如,数组和链表就体现了迭代和递归的思想,判断语句使用了逻辑(布尔)代数。

架构在数据结构和编程语言之上的算法(为了将这些算法和机器学习的算法区分开,我称其为 通用算法 ),除了迭代和递归,也体现了排列、组合和动态规划等思想。

对于 机器学习的算法 ,我们更需要理解概率统计和线性代数的核心思想,包括什么是概率、贝叶斯定理、数据的统计分布、向量、矩阵、线性方程等。

在此,向大家推荐我在极客时间的专栏 《程序员的数学基础课》 。在专栏中,我会从数学的角度出发,逐步推进到这些知识在计算机中的应用。而在绘制这张应用地图时,我特意反其道而行, 从计算机编程的角度出发,为你展示程序员应该如何看待编程中的数学知识 ,告诉你计算机领域常用的数学思想有哪些。

我有充足的信心,通过学习这个专栏,你会加深对数学的理解,在分析问题时能追本溯源, 快、准、稳地找到解决方案 。这样,今后在面对系统框架设计、性能优化、准确率提升等难题时,你就会从更高更广的角度出发思考问题,而不只是以“熟练工”的视角增删改查。

专栏推荐 | 《程序员的数学基础课》

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

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

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

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

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

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

  4. 人工智能入门必修课

上线仅 2 个月,已有超过 1.5W 人加入学习,专栏正在限时拼团中,原价 ¥99,限时拼团 ¥79, 立即订阅 >>>


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK