Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to improve my math skills to become a better programmer [closed]

Tags:

math

Even though I consider myself one of the better programmers on my CompSci course, I am fascinated by people who are really good at math. I have to say whenever I had a math-type assignment or exam my approach has been very formulaic, i.e. if I encounter a problem that looks like A I must use method B and the result should look like C, or else I made a mistake. I only really know how to solve the problems I revised.

I'd really like to devote some time this summer to understand mathematical problems and their solutions better in order to dive deeper into fields of algorithmics and computational complexity.

Any tips?

like image 995
Leonard Ehrenfried Avatar asked May 14 '09 11:05

Leonard Ehrenfried


People also ask

How can I improve my maths in programming?

A really great resource is a book called Competitive Programming 3 the book is great overall, and most importantly the Math chapter in it. The authors have really gathered a lot of Math-related problems and if you solve just a few you will definitely improve your Math and Problem Solving skills.

Can I be a programmer if I'm not good at math?

Being good at math is important for certain types of programming, like designing games and inventing complex algorithms. But for many other types of programming, such as developing business or web applications, you can become a successful programmer without having to study advanced math.


2 Answers

It sounds like you have decent math skills -- you understand the mechanics and maybe a little bit of the intuition behind what you've learned -- but that you're a little short on good problem-solving skills, especially since you say "I only really know how to solve the problems I [previously encountered]".

To fix that, I'd take a look at Project Euler. There is definitely no prescribed way to solve these problems, and they often require a synthesis of multiple knowledge areas to tackle each one successfully. You'll have your cake and eat it too -- becoming a better programmer/mathematician and a better general problem-solver, by seeing how to bring many things to bear against a particular problem. And you'll gain deeper insights into how things that seem completely different can actually fit together in a unified whole. (This is particularly true of many areas of math.)

Finally, kudos to you for your desire to become a better practitioner of your craft! If everyone displayed the same level of ambition, I can't help thinking that software in general would be a lot better.

like image 50
John Feminella Avatar answered Sep 28 '22 06:09

John Feminella


Ultimately, you need to "spend some time in the saddle" and pick something of interest and then learn how to use it. I was interested in game programming math and picked up the New Riders book on the subject - don't remember the name at the moment. It had concepts and exercises and as I progressed through it, I felt that not only did I understand the concepts and theory but how to put it into practice.

You might take a look at some of these related questions. There are some good answers there. They might not all be applicable in your case, but some will be.

How can I learn the math necessary for working with computer vision?

How to learn mathematical notation?

https://stackoverflow.com/questions/651865/basic-math-book-for-a-programmer

Learning Applied Statistics with a focus on R

https://stackoverflow.com/questions/568899/user-friendly-math-textbooks

https://stackoverflow.com/questions/509488/recommendations-for-discrete-math-resources

https://stackoverflow.com/questions/488502/best-language-to-program-some-math-free-fast-easy-cool-etc

Learning game programming (part 2) (math)

Math Resources for C/C++ Programmers

https://stackoverflow.com/questions/420500/helpful-math-classes-for-programmers

Math, programming, and learning

like image 24
itsmatt Avatar answered Sep 28 '22 06:09

itsmatt