首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数学对于编程来说是必要的吗?

数学对于编程来说是必要的吗?
EN

Stack Overflow用户
提问于 2008-10-01 12:35:38
回答 71查看 166.7K关注 0票数 117

在大学期间,我碰巧和一位朋友讨论过,高级数学是否对任何资深程序员来说都是必要的。他曾经强烈反对这一点。他说,程序员只需要高中或大学一年级数学的基本数学知识,不多也不少,几乎所有的编程任务都可以完成,甚至不需要高级数学。然而,他认为,算法是程序员的基础和必备资产。

我的立场是,所有计算机科学的进步几乎完全依赖于数学进步,因此,当程序员处理现实世界中具有挑战性的问题时,透彻的数学知识将对他们有很大的帮助。

我仍然不能确定争论的哪一方是正确的。你能根据你自己的经验告诉我们你的立场吗?

EN

回答 71

Stack Overflow用户

回答已采纳

发布于 2008-10-05 05:28:16

要回答你提出的问题,我不得不说,“不,编程不需要数学”。然而,正如其他人在这篇文章中所建议的那样,我相信理解数学和能够“用算法思考”之间存在关联。也就是说,能够抽象地思考数量、过程、关系和证明。

我在大约9岁的时候就开始编程了,要说到那个阶段我已经学到了很多数学知识,那就有点牵强了。然而,通过一些努力,我能够理解变量,循环,goto语句(请原谅,我是Vic 20 BASIC,我还没有读过任何Dijkstra )和基本的坐标几何将图形放到屏幕上。

我最终完成了纯数学的荣誉学位,辅修了计算机科学。虽然我主要专注于分析,但我也学习了相当多的离散数学,数论,逻辑和可计算性理论。除了能够将统计学、概率论、向量分析和线性代数中的一些想法应用于编程之外,我在本科期间学习的数学很少直接适用于我的编程,以及后来我所做的商业和研究编程。

然而,我坚信数学需要的正式思维方法-仔细推理,寻找反例,建立公理基础,找出概念之间的联系-在我处理大型和复杂的编程项目时有很大的帮助。

想想运动员为他们的运动训练的方式。例如,足球运动员无疑会把大量的训练时间花在基本的足球技能上。然而,为了提高他们的整体体能,他们可能还会花时间在健身房里骑自行车或划船,做举重等。

学习数学可以比作举重训练或交叉训练,以提高你的脑力和编程耐力。练习你的基本编程技能是绝对必要的,但学习数学是一种难以置信的脑力锻炼,可以提高你的核心分析能力。

票数 111
EN

Stack Overflow用户

发布于 2008-10-01 12:40:01

虽然高级数学可能不是编程所必需的(除非您正在编程高级数学能力),但是编程和数学的思维过程非常相似。你从一个已知的东西(公理,以前证明过的理论)的基础开始,并试图到达某个新的地方。您不能跳过步骤。如果您确实跳过步骤,则需要填写空白处。这是一个批判性的思维过程,使两者非常相似。

此外,数学家和程序员都以抽象的方式进行批判性思考。现实世界的事物是由对象和变量来表示的。从具体到抽象的转换能力也将这两个领域联系在一起。

如果你擅长其中一个,你很可能也会擅长另一个。

票数 56
EN

Stack Overflow用户

发布于 2008-10-01 12:37:59

计算机科学!=编程

好吧,说真的,我认识的程序员有好有坏,他们都是英语和心理学专业的,还有一些是计算机科学专业的。作为开发人员,我很欣赏一些非常有名的人,他们没有CS背景。例如,Larry Wall(Perl)就是一位语言学家。另一方面,了解您正在处理的领域的一些信息会有所帮助,因为这样您至少可以了解您的数据是否有意义,并帮助您的客户/用户深入了解他们真正想要的内容。是的,还有计算复杂性、有效的数据结构和程序正确性的问题。这是你在计算机科学中学到的东西,在几乎任何领域都很有用,但这既不必要,也不充分。

票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/157354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档