内容简介:“程序员不需要学数学,因为工作中根本用不到。有那功夫,还不如认真把设计模式、计算机网络、操作系统等硬知识学好。” 这是很多人的观点,是的,作为程序员,你不需要任何数学知识,也能写代码。但是,往大了说,数学是一种思维模式,考验的是一个人归纳、总结和抽象的能力,放到程序员的世界,就是解决问题的能力。往小了说,不管是数据结构与算法,还是程序设计,其底层原理和思路大都源自数学。
“程序员不需要学数学,因为工作中根本用不到。有那功夫,还不如认真把 设计模式 、计算机网络、操作系统等硬知识学好。” 这是很多人的观点,是的,作为程序员,你不需要任何数学知识,也能写代码。
但是, 编程的世界不止条件和循环语句,程序员的人生应该是创造的舞台 ,只要想在这个领域持续深耕,学好数学就是充分必要条件,会决定一个 程序员 未来的发展潜力。
往大了说,数学是一种思维模式,考验的是一个人归纳、总结和抽象的能力,放到程序员的世界,就是解决问题的能力。往小了说,不管是数据结构与算法,还是程序设计,其底层原理和思路大都源自数学。
所以,很多大公司在招人时,都会 优先考虑数学专业的毕业生 ,因为数学基础好,编程会更容易上手。在大数据和智能化的时代,学好数学更是 门槛本身。
学习数学的正确姿势,听听他们怎么说?
Steve Yegge | 资深程序员
-
正确学习数学的方法是广度优先,而非深度优先。你要了解的是整个数学领域每个概念的名字,并知道它们要解决什么问题。
-
把数学当成文科来学,先不用重点看那些算法和证明,只需要了解数学概念的名字、作用、大致步骤、发明人、发明时间、局限等。
-
数学符号是关闭你通往另一个世界的符咒,如果你看到一堆自己不懂的数学符号,就把它的实现功能简单地当成一个原子操作好了,不要深究太多。
徐文浩 | bothub. ai 创始人
-
从工作相关的领域开始了解数学,可以随学随用,在工作中累计实操经验,更容易获得正反馈。
-
把正在学习的数学问题的解法,写一个算法程序实现出来,是非常有效的练习方式。
-
你可以选择追一门数学的在线课程,跟着老师的节奏系统理解数学,对学习有一个联系和反馈的过程,做到有始有终。
刘超 | 《趣谈网络协议》专栏作者
程序员是否需要学好数学?我在学数学分析、概率论和线性代数的时候,也没想过数学和写程序有啥关系,但随着研究的开源软件越来越多,我发现很多技术深入下去,本质就是数学。
程序员应该怎么学数学呢?我不建议你将大学的相关书籍拿出来啃一遍,耗费大量时间不说,关键是跟实际应用无法结合,结果往往是:该看的忽略了,不该看的费了半天劲还用不上,等过一阵字就又忘了。
我们在了解新技术时,通常会分成三个阶段,第一阶段是,怎么使用;第二阶段是,如何实现,原理是什么;第三阶段是,为什么这样实现。 学数学也是这样 ,也有这样三个阶段, 先用起来,了解原理,再知道为什么这么做。
用一句话总结,我们不能为了数学而学数学, 要和具体的应用结合在一起。
△内容选自极客时间 《程序员的数学基础课》 专栏
综合三位老师的观点,其中的共性就是:学习数学, “实用”优先 。因此,我绘制了一张“ 程序员的数学应用地图 ”,包含四个部分:数据结构、编程语句、通用算法和机器学习算法。
数据结构和编程语句,你肯定非常熟悉,这些基础的内容涵盖的数学思维毋庸置疑。例如,数组和链表就体现了迭代和递归的思想,判断语句使用了逻辑(布尔)代数。
架构在数据结构和编程语言之上的算法(为了将这些算法和机器学习的算法区分开,我称其为 通用算法 ),除了迭代和递归,也体现了排列、组合和动态规划等思想。
对于 机器学习的算法 ,我们更需要理解概率统计和线性代数的核心思想,包括什么是概率、贝叶斯定理、数据的统计分布、向量、矩阵、线性方程等。
在此,向大家推荐我在极客时间的专栏 《程序员的数学基础课》 。在专栏中,我会从数学的角度出发,逐步推进到这些知识在计算机中的应用。而在绘制这张应用地图时,我特意反其道而行, 从计算机编程的角度出发,为你展示程序员应该如何看待编程中的数学知识 ,告诉你计算机领域常用的数学思想有哪些。
我有充足的信心,通过学习这个专栏,你会加深对数学的理解,在分析问题时能追本溯源, 快、准、稳地找到解决方案 。这样,今后在面对系统框架设计、性能优化、准确率提升等难题时,你就会从更高更广的角度出发思考问题,而不只是以“熟练工”的视角增删改查。
专栏推荐 | 《程序员的数学基础课》
我是黄申,目前在 LinkedIn 从事数据科学的工作,主要负责全球领英的搜索引擎优化,算法和数据架构的搭建。过去几年,我曾先后在微软亚洲研究院、IBM 研究院、eBay 中国研发中心做机器学习方向的研究工作,还负责过大润发飞牛网和 1 号店这两家互联网公司的核心搜索和推荐项目,出版了《大数据架构商业之路》一书。
在《程序员的数学基础课》这个专栏中,所有内容我都会从基本概念入手,结合工作中的实际案例,为你精讲程序员真正用得上的数学知识。
通过学习专栏,你将获得:
-
工程师必备的数学思想剖析
-
常用概率统计与线性代数精讲
-
数学理论在编程中的实际应用
-
人工智能入门必修课
上线仅 2 个月,已有超过 1.5W 人加入学习,专栏正在限时拼团中,原价 ¥99,限时拼团 ¥79, 立即订阅 >>>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 程序员的数学书单
- 程序员的数学笔记(三):迭代法
- 从勾股定理到余弦相似度:程序员的数学基础
- 程序员怎样学数学:半路出家也能让编程是小菜一碟
- 一个野生程序员的真实自述:我是如何从数学专业学渣入坑程序员的
- 资料 | 1800页33章数学方法精要笔记 —深入数学建模, 机器学习和深度学习的数学基础
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Perl语言入门
[美] Randal L.Schwartz、Tom Phoenix / 李晓峰 / 中国电力出版社 / 2002-8 / 48.00元
本书第一版于1993年问世,并从此成为畅销书。本书由Perl社区最著名、最活跃的两位成员写成,是Perl程序设计语言的精髓指南。 Perl最初只是Unix系统管理员的一个工具,在工作日里被用在无数的小任务中。从那以后,它逐步发展成为一种全功能的程序设计语言,特别是在各种计算平台上,它被用作Web编程、数据库处理、XML处理以及系统管理——它能够完成所有这些工作,同时仍然是处理小的日常工作的完......一起来看看 《Perl语言入门》 这本书的介绍吧!