关于数学和编程之间的关系,以及一个是否是另一个的子集等,已经在本网站上进行了讨论.
在我最近的编程研究中,我发现自己越来越希望自己在数学方面做得更好.你们都知道编程书籍开始用数学方式概括某些东西时的情景("因此,我们可以说这一点
,
").在这种情况下,我的眼睛茫然.我知道这主要是因为我很愚蠢,但似乎如果我能提高自己更高的数学技能,也许我可以从这些事情中获得更多.
主要问题:数学确实是一个可以"变得更好"的东西,或者你的大脑是否适合或不接受?
重要的后续问题:如果上述答案是肯定的,那么有什么方法可以解决这个问题?
我想任何人都可以在数学上变得更好.你必须有决心和练习.
部分问题在于数学书籍往往是数学家写的,他们几十年前就不再是数学新手了.你想要的是适合你的水平的书籍,其中包含你可以使用的材料.
一些建议:
如果你能找到一份副本,就可以获得Mathematica和一本好书(Schaum的大纲实际上非常好而便宜).我一直用它来形象化.
作为程序员,您可能希望更多地针对离散数学而不是微积分.
其他地方提到的具体数学书很棒.
大多数介绍性的离散数学文本都很好地涵盖了逻辑,集合,组合,概率,图论等等.我的学校使用了我喜欢的罗森的文本.
如果要进行3D图形编程,线性代数非常有用.大多数工程师的介绍文本将教你如何知道.线性代数完成右边可能是"真实"线性代数中最好的,如果你想要更理论化的东西.
寻找马丁加德纳的书籍并玩弄他的谜题.他是一位出色的作家和老师.
请记住,数学不会改变那么多.你可以在亚马逊和二手书店买到便宜的旧书.我购买课本时总是寻找n-1版本.
当你第一次开始学习英语时,所有那些"符号"(字母)对你来说都是胡言乱语.我相信你在某些时候对你缺乏理解感到沮丧.但慢慢地,渐渐地你开始了解它们.
最终,您可以使用这些符号构建自己的单词和句子.在对其结构和语法进行多年修正后,您现在可以掌握该语言.
数学就是这样.你的眼睛茫然,因为你还没有学过语言.也许在学校你并不特别喜欢数学,因为你没有看到任何实际应用.当然,我们向学生传授数学的方式是残暴的,所以难怪为什么许多人在没有精通的情况下通过学校(为了进一步阅读,请查看数学家的悲叹,其中讨论了我们目前的数学教学方法是多么可怕) .
但是,要达到一定程度的熟练程度,这将使您能够阅读许多学术计算机科学着作,这永远不会太晚.晚上在当地社区大学开始使用Pre-Calculus(以便了解您忘记的所有内容).然后转到微积分,然后进行离散数学运算.老实说,这是99.99%的时间你需要的所有数学.在不到2-3个学期的时间里,你可以完全陷入困境,在阅读具有一些数学根源的东西时,你不再会睁大眼睛.
我可以分享一下我的经历......
从小学开始我就一直害怕数学.讨厌它,没有得到重点,没有追求它.
相比之下,我一直对电脑着迷.我从"需要知道"开始学习编程 - 我无法理解从最低到最高级别的计算机和编程.我几乎完全是自学成才,并且拥有程序员/建筑师的职业生涯.
去年,在我妻子的催促下,我开始回到大学.我报名参加了一个补习代数课,知道这将是一个痛苦.事实并非如此.
不知何故,通过多年来学习开发OO软件,我似乎已经欺骗自己学习如何数学思考.这些概念不再困难了.可能是我学会了考虑由较小,不太复杂的想法组成的复杂系统.
我现在正在研究游戏开发,这是一些严肃的数学编程.比我迄今为止所做的业务发展还要多.但是,我并不觉得它如此令人生畏,因为它是应用了数学的.努力解决实际问题似乎使研究变得不那么乏味,而且更有趣.我发现维基百科和Wolfram的Mathworld很有帮助.如果您已经知道如何编程,那么您将领先于游戏学习数学.
我说这肯定是任何人都能做得更好的事情.这需要时间和耐心,并且有些文本在涉及的符号方面是密集的,但如果你愿意花时间,我认为它不应该太可怕.
我会查看维基百科的数学符号列表,并在看到大量符号弹出时保持附近.一次一个地翻译它们,并以对你最有意义的方式将它们组合在一起(或者问我们几次,直到你掌握它为止).
都是。你会在数学上变得更好。但是,您的大脑中的特定连线确实也确实限制/赋予了您。这意味着您最有可能提高当前的数学技能。但是,由于您的心理硬件的限制,您可能永远不会发现一个新的定理。
关于改进,我认为实践是一如既往的方法。阅读数学文献,尝试解决数学问题,并最终发展出一个展望,使您能够习惯性地打破在数学上陷入困境之前遇到的现实难题。
至于编程与数学的关系,我认为有一个很强的关系。实际上,人们可能会争辩说,程序不过是定理的证明,需求文档就是证明的所有输入。