java 想提高编程的数学技能

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2060024/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-29 19:11:38  来源:igfitidea点击:

Want to improve math skills for programming

javamath

提问by Chiko

I have just started programming with Java and noticed I might need to improve my math skills if i'm to do anything worthwhile with it. I just noticed that some of the exercises should be easy for someone with a solid understanding in math as there seems to be some math formulae running the show. I finished high school two years ago and did not get any opportunity to do math at the highest level there. I'm deeply worried by this and so i'm looking for pointers from more experienced and knowledgeable people on what I should study to get a basic grasp of mathematics before indulging in deep waters.

我刚刚开始用 Java 编程,并注意到如果我要用它做任何有价值的事情,我可能需要提高我的数学技能。我只是注意到一些练习对于对数学有深刻理解的人应该很容易,因为似乎有一些数学公式在运行。我两年前高中毕业,没有机会在那里学习最高水平的数学。我对此深感担忧,因此我正在寻找更有经验和知识渊博的人的指导,以了解我应该学习什么才能在沉迷于深水之前获得对数学的基本掌握。

I was generally a sharp student in math and I have got a real quick mind. My goal is to become a certified and well-experienced Java programmer by the end of the year. I know people will say experience takes time and effort but i'm willing to sacrifice whatever that I have towards fulfilment of this goal. I have programmed with PHP and MySQL a bit before and got a general understanding but Java gave me a real kick when I read about it. If you know any other stuff that may help me in this endeavour, please let me know.

我通常是一个数学敏锐的学生,而且我的头脑非常敏捷。我的目标是在年底成为一名经过认证且经验丰富的 Java 程序员。我知道人们会说经验需要时间和精力,但我愿意为实现这一目标而牺牲我所拥有的一切。我之前已经使用 PHP 和 MySQL 进行了编程并获得了一般的理解,但是当我阅读 Java 时,它给了我一个真正的启发。如果您知道任何其他可以帮助我进行这项工作的东西,请告诉我。

Thanks.

谢谢。

回答by jason

I strongly encourage you to read Steve Yegge's Math for Programmers.

我强烈建议您阅读 Steve Yegge 的Math for Programmers

If you're looking for some books, I recommend Concrete Mathematicsand The Art of Computer Programming.

如果您正在寻找一些书籍,我推荐Concrete MathematicsThe Art of Computer Programming

If you're looking for some problems to practice with, check out Project Euler.

如果您正在寻找一些问题来练习,请查看Project Euler

Do not be discouraged by challenging problems. It's is only through overcoming challenges that you will grow. The community here is quite willing to give you assistance and nudges when you reach a roadblock.

不要因挑战性问题而气馁。只有克服挑战,你才能成长。当您遇到障碍时,这里的社区非常愿意为您提供帮助和推动。

Let's also not forget the famous quote:

让我们也不要忘记那句名言:

Whatever your difficulties in mathematics, I can assure you mine are far greater.---Albert Einstein

My goal is to become a certified and well-experienced Java programmer by the end of the year.

无论你在数学上有什么困难,我都可以向你保证,我的困难要大得多。---阿尔伯特·爱因斯坦

我的目标是在年底成为一名经过认证且经验丰富的 Java 程序员。

Finally, the onlyway to become well-experienced is to write code, and lots of it.

最后,成为经验丰富的唯一方法是编写代码,以及大量代码。

回答by Zombies

Discrete Mathematicsis what you are most likely needing. Understanding base 2 (binary) base 16 (hex) number systems is helpfula must. You don't have to get bogged down in discrete mathematics as some of that is way too deep and makes math majors cringe. Look over basics such as sets and logic.

离散数学是您最有可能需要的。理解基座2(二进制)基16(十六进制)数系统是有帮助的必须的。你不必陷入离散数学的泥潭,因为其中一些太深了,让数学专业的学生畏缩不前。查看基础知识,例如集合和逻辑。

As for trig/calculus... I have taken all these in college and have never relied on these extensively... or well, at all.

至于三角/微积分……我在大学里学过所有这些,从来没有广泛依赖这些……或者,完全没有。

回答by Paul Sasik

Mathematical aptitude is not necessarily a prerequisite for being a good programmer. There is a strong association though in that good programmers tend to be good at math. That doesn't mean that learning more math will necessarily make you a better programmer. To become a better programmer usually takes a lot of coding. So with that in mind:

数学能力不一定是成为一名优秀程序员的先决条件。尽管优秀的程序员往往擅长数学,但有很强的关联。这并不意味着学习更多的数学一定会让你成为更好的程序员。要成为更好的程序员通常需要大量的编码。所以考虑到这一点:

  • Code much and often and with best practices, try not to "cheat"
  • Challenge yourself
  • Try working through some problems on Project Euler
  • Trying doing advanced Sudoku in your head to practice deduction and to warm up
  • 经常编写代码并使用最佳实践,尽量不要“作弊”
  • 挑战自己
  • 尝试解决Project Euler上的一些问题
  • 尝试在头脑中进行高级数独练习演绎和热身

回答by Asklepius M.D.

Linear equations, matrix algebra, Base 2, 8 ,18, and 10 conversions, logarithms, and set theory (intersections, unions, etc) will give you a basic foundation. If your algebra is sound, look into discrete mathematics, precalculus, and trig. Once you've gotten that far, you should have no trouble continuing if you wish.

线性方程、矩阵代数、基数为 2、8、18 和 10 的转换、对数和集合论(交集、并集等)将为您提供基本的基础。如果您的代数是可靠的,请研究离散数学、微积分和三角函数。一旦你走到那一步,如果你愿意,你应该没有问题继续。

Honestly, it may be worth your time to take a placement test at a local community college to get an honest evaluation of your skills. From there, you have the choice of enrolling in a class or learning their curriculums through self-instruction.

老实说,花时间在当地社区大学参加分班考试以对您的技能进行诚实的评估可能是值得的。从那里,您可以选择参加课程或通过自学学习他们的课程。

回答by Hamish Grubijan

Go through http://www.khanacademy.org/math section. Most people graduate high school with only Calculus I under their belt.

浏览http://www.khanacademy.org/数学部分。大多数人高中毕业时只学了微积分 I。

If you go through all math here, you will have almost satisfied math requirements for a bachelors in CS. What remains is discrete math, algorithms, finite automata.

如果您在这里完成所有数学,您将几乎满足 CS 学士学位的数学要求。剩下的是离散数学、算法、有限自动机。

Check out MIT Open Courseware for that as well.

也可以查看 MIT 开放课件。

回答by D.C.

IF you have any free time left after all these great suggestions, I might throw Head First Statistics on your reading list as well. http://www.amazon.ca/Head-First-Statistics-Dawn-Griffiths/dp/0596527586

如果您在完成所有这些伟大的建议后还有空闲时间,我可能也会将 Head First Statistics 放在您的阅读清单上。 http://www.amazon.ca/Head-First-Statistics-Dawn-Griffiths/dp/0596527586

While not directly related to core Java programming, statistics finds many uses in some areas of computer science. For example, i"ve found this book very useful in some of the data mining projects I've been a part of.

虽然与核心 Java 编程没有直接关系,但统计学在计算机科学的某些领域有很多用途。例如,我发现这本书在我参与的一些数据挖掘项目中非常有用。

I recommend this book because it is very easy and fun read, and serves as a good intro to statistics without bogging you down. This is that "before bead" reading you can do with minimal effort.

我推荐这本书,因为它读起来非常容易和有趣,并且可以很好地介绍统计数据,而不会让您陷入困境。这是您可以用最少的努力完成的“珠子前”阅读。

回答by user246091

This isn't recommendations so much as general encouragement; I learn by doing. Reading books on mathematics, out of the context of some problem to solve, is boring, dry and generally not conducive to learning. I find if I set myself a programming challenge, one that is above my current level of competency, I will learn a lot and open up new areas of knowledge as a consequence of solving the problem. Perhaps it's harder/slower this way, but I find it gives me a solid, practical grounding in a subject. For example, back in the days I learned a lot about modulo mathematics by trying to find the simplest way to do human Vs computer rock-paper-scissors game.... My two cents.

这与其说是建议,不如说是一般鼓励;我边做边学。阅读数学书籍,脱离一些需要解决的问题的背景,枯燥乏味,通常不利于学习。我发现如果我给自己设定一个编程挑战,一个高于我目前能力水平的挑战,我会学到很多东西,并通过解决问题开辟新的知识领域。也许这种方式更难/更慢,但我发现它为我提供了一个坚实、实用的主题基础。例如,在过去,我试图找到最简单的方法来进行人类与计算机的石头剪刀布游戏,从而学到了很多关于模数学的知识......我的两分钱。

回答by Pete Kirkham

I've quite often tried working through books, and have a good selection of partly read maths books. I gained a lot doing a second-year Open University pure maths course (M208) a couple of years ago - it's well structured, you have to do all the exercises, and it was both wide enough to introduce a few things I wouldn't have looked at off my own bat, but deep enough to be satisfying.

我经常尝试通过书籍工作,并且有很多部分阅读的数学书籍。几年前,我在参加开放大学二年级纯数学课程 ( M208) 中获益良多——它的结构很好,你必须做所有的练习,而且它的宽度足以介绍一些我不会的东西已经看过了我自己的蝙蝠,但深度足以令人满意。

回答by JB King

"Concrete Mathematics" would be a book suggestion on this topic.

具体数学”将是有关该主题的书籍建议。