优秀程序员的基本数学?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

我只是想知道作为一个程序员的数学。我确实使用了一些数学,主要是矢量数学和偶尔三角学,当我做游戏编程。

我的问题是:作为一个程序员,你是否认为要成为一名成功的(也是令人敬畏的)程序员,就必须知道什么是必要的数学?主要是我发现编程只是逻辑,但有时聪明的数学(不是具体的算法)可以用来解决常见的问题。

提问于
用户回答回答于

我认为它可以比简单的“本质数学”更微妙。我做了相当多的图形编码--2D和3D,主要是非游戏,大量基于分形的--而且我在大学里接受过的数学很好,还有我所需要的任何东西的自我教育(我想我和大多数程序员一样,我对数学相当在行)--所以通常的线性代数、逻辑、基本计算等等--我从来没有感觉到我对我所知道或能教自己的东西有特别的限制。

然而,有一次,我有机会和一个年轻人合作,他刚刚完成了一个数学/计算学位,开发了一个大气引擎(一个模拟光衰变和其他大气/光相互作用的引擎)。让我印象深刻的是他的熟悉性由于数学函数的范围比“正常”编码器广泛得多,因此,当需要某种特定行为时,他就能够找到一个正确的数学函数,并实现它来解决手头的问题。他使用的数学实际上没有那么复杂--我可以很好地理解它--而是因为他知道数学词汇的深度和广度,他能够在需要的时候毫不费力地去寻找它,而不是像我们大多数人那样费力地寻找它。

因此,我怀疑,在某些问题领域,可能有比显而易见更广泛的选择,对数学的熟悉程度超过常识,将导致更好的算法的实现。我们可能只会在工具箱中看到一个工具方面的问题,而没有真正意识到我们缺少了我们没有的东西。

用户回答回答于

我认为这主要取决于项目域。

这就是为什么游戏编程通常需要线性代数、四元数等方面的知识。

编程只是达到某一目的的一种手段,如果你需要知道多少数学,就和你需要了解健康产业的程度完全一样。如果这是你的项目领域的话。

从历史上看,计算机科学是应用数学的一个分支,我认为这就是为什么数学和编程之间有着如此紧密的联系的原因。我认为一个数学头脑是一个好的程序员,但我不确定数学知识是在所有领域。

扫码关注云+社区