最近,我到处走走,就程序员是否真的需要数学,如果需要,又有多少数学见到了各种各样的意见。 我将尝试总结所有内容并进行总结。
首先,应该指出,数学几乎存在于我们生活中的任何地方。 没有数学的物理学是不可想象的-我认为这里的一切都很清楚,不需要解释。 化学也是。 在生物学中,数学的影响明显较小,但也存在于生物学中(例如,植物结构,其中许多是准分形的)。
音乐可以用数学形式表示。 没有数学,设计是不可想象的-几何必然存在-数学的一个分支。 那里有什么-即使历史学家也需要数学(如果仅是为了计算日期)。
的确,有一个“但是”:数学一般是什么? 这个问题绝不是闲着,因为“你需要多少数学知识”这个问题很模糊。 数学是一门复杂的科学:基础本身就是算术,然后是代数,基本几何,矩阵。 分析,解析几何。 它的较高部分是离散数学,布尔代数,拓扑,数论(高级算术)和许多其他部分,以及概率论和统计学。 现在出现了一个更清晰的问题:程序员需要从中学到什么?
第一点没有讨论-当然,所有人都必须知道算术。 没有它,就不可能组成最简单的程序,没有它,实际上没有科学是不可想象的。
但是随后一切都变得有些复杂-程序员需要的数学部分由他所写内容的规范决定。 如果您需要在la Cubase开设音乐工作室,则必须了解声音的物理原理以及与此相关的数学部分。 如果我们谈论的是图形工作室,那么您应该专业地了解几何(如果工作室是三维的,那么拓扑和矩阵代数也应如此)。 而且,如果我们正在谈论三维游戏,那么我们需要了解矢量代数以及牛顿力学。
由于编程主要是算法,因此任何程序员都应该非常了解算法理论,图论,布尔代数和离散数学,以便不仅编写有效的程序,而且编写良好的程序。 或更好:效果很好。
她真的需要吗?
我通常会这样说:如果说,在远古时代,编程已经存在,那时候的程序员不仅会很好地了解数学。 这样的“程序员”也将能够装箱,击剑,安排骑马,导航,修补,说八种外语,撰写河豚鱼和德卡车,他知道六边形是什么,他画了(强调A)的图片等等。 。 有时他同时进行,速度如此之快,以至于任何现代的“英特尔核心”都悄悄地在场外抽烟。