是否需要相对擅长数学才能成为一名优秀的程序员?

时间:2014-02-24 23:41:19

标签: algorithm math theory

我想为这个问题的模糊性道歉,但请耐心等待我,我会尽力将其置于背景之中。

我一直试图在互联网上找到一些好的练习,让我成为一个更好的程序员。我觉得我知道足够的语法,但缺乏程序员的想法。这些是一般的编程练习,没什么特别的。然而,我注意到他们中的绝大多数涉及数学问题(从非常基本的问题到我用英语甚至不能理解的问题,更不用说C)了。例如,有着名的Project Euler,但也有许多其他网站。此外,所有的算法(我的意思是,教授一般算法的书籍/教程)显然是非常数学的。所有这些记录(2n)等。

我真的很喜欢编程作为一种爱好,并且通常可以理解我正在学习的任何语言的基本细节。我已经做了很多年了,只是为了我自己的乐趣。我可以在编程/语言方面解决上述问题,利用“暴力”解决方案,在纸上写下所有内容,使用计算器等。

问题在于,我完全清醒地意识到,我根本没有必要的数学理解来理解这些问题背后的“真正”解决方案。我觉得我在作弊。我根本没有精神能力来解决欧拉大多数问题的这些聪明的算法解决方案,也没有必要的数学背景。当他们自己的解决方案文件解释说你可以更好地以更聪明的方式做到这个解决方案时,我会立刻迷失方向。这是我从未去过CS学校的原因之一,因为在我的国家,你需要对代数和物理学有一个非常非常透彻的理解才能融入其中。我有点直接跳到实际编程中,因此它成了我的爱好,而不是我的职业。

现在我不再年轻了,并且已经开始承认我永远不会理解编程的数学方面作为一个真正的程序员应该。所以我想问一下:数学对于完成非平凡的任务真的很重要吗?

例如,我想开发一些2D游戏。通过查找给定任务所需的三角函数,而不是真正了解它,我是否可以通过作弊来解决问题?我会以这样的方式完成任何事情吗?

如果没有意义,谢谢你,对不起。能否请您分享您的经验,并指出我正确的方向。我觉得我在不知道字母表的情况下学习阅读......

1 个答案:

答案 0 :(得分:2)

编程和数学是相关但却截然不同的事情。

对于某些编程问题,您需要做很多数学运算。例如,3D图形,物理,模拟,甚至财务包等等。

另一方面,虽然其他编程问题几乎没有涉及数学。创建网页,调用Web服务,设计用户界面等

这些都涉及到很少的数学问题 - 而且这些问题与数学密集程度更高的问题同样重要。