Algorithm 一个人是否需要相对擅长数学才能成为一名像样的程序员?

Algorithm 一个人是否需要相对擅长数学才能成为一名像样的程序员?,algorithm,math,theory,Algorithm,Math,Theory,我想为这个问题的模糊性道歉,但请容忍我,我会尽量把它放在上下文中 我一直试图在互联网上找到一些好的练习,让我成为一名更好的程序员。我觉得我知道的语法足够多,但缺乏程序员的头脑。这些都是一般的编程练习,没什么特别的。然而,我注意到其中绝大多数都涉及数学问题(从非常基本的问题到我甚至不能用英语理解的问题,更不用说C了)。例如,有著名的Euler项目,但也有许多其他网站。此外,所有的算法(我的意思是,教授一般算法的书籍/教程)显然都是非常数学化的。所有这些日志(2n)等等 我真的很喜欢编程作为一种业余

我想为这个问题的模糊性道歉,但请容忍我,我会尽量把它放在上下文中

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

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

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

现在我不再年轻了,我承认我永远不会像一个真正的程序员那样理解编程的数学方面。所以我想问:数学对于完成非琐碎的任务真的很重要吗

例如,我想开发一些2D游戏。我会不会在没有真正理解的情况下,通过查找给定任务所需的任何三角函数来对付作弊?我会那样做吗


谢谢你,如果没有意义的话,我很抱歉。你能和我分享一下你的经历吗?也许能给我指出正确的方向。我觉得我在学习阅读时不知道字母表…

编程和数学是相关的,但又截然不同

对于一些编程问题,你需要做大量的数学运算。例如3d图形、物理、模拟,甚至金融软件包等

另一方面,尽管其他编程问题几乎不涉及数学。创建网页、调用web服务、设计用户界面等


这些都是很少涉及数学的问题,而且这些问题与数学密集型问题一样重要。

在“相关”网站栏中,有一半的问题非常相似,如果不是完全相同的话。毫无疑问,还有更多的(还有更多的)。并不是所有的问题都直接提到数学,因为你们的问题并非都是关于数学的。请做一些研究,这不仅节省了我们的时间,也节省了你的时间。这个问题似乎离题了,因为它是关于职业/教育建议的,而不是指南中定义的特定编程问题。这也是之前关于同一主题的至少六个问题的重复,例如,和。我不同意。相关站点栏中的问题要么太高级(即我应该知道数学的哪一部分?),要么不相关。我理解如果我的问题根本不属于这里,为此我说对不起,但我还没有发现一个问题像我的问题那样笼统。这不是职业建议,我的职业与编程无关。这基本上和“我应该学习X吗?”是同一个问题,这里有很多。这取决于你对一个“正派”程序员的期望。我见过许多程序员,他们只有基本的数学知识。你不会看到很多程序员对向量分析很了解。但根据我的经验,伟大的程序员会做很多数学工作。没有人愿意提交搜索查询并等待数天来处理。学习算法运行时分析(O(),T()),动态编程等,您的最终用户将感谢您的速度惊人的应用:)@Gleb我承认有关问题的说法“非常相似”。但它不需要一个涵盖这些确切主题的单一的一般性问题来帮助你。“我觉得我其实什么都不知道”的情绪非常普遍,已经被多次提及,如果其中一些人不跟你说话,我会被诅咒的。见例。