I've been learning about computer programming since I was in high school. One thing that I do remember is that when I was in school, I wasn't paying too much attention to my math class. When I got to college, I had to do calculus in order to go to the University. Once again, I was just learning the technique on how to do something and wasn't interested in the "Why" are we doing it this way...
I've often had discussion with my buddies about why we were learning calculus and linear algebra. I mean, we were able to program software and we didn't require high level of math...
Well, this was true until I got to the University. I learned that, like I was told before, being a good programmer is not about writing code. It is about taking a problem, breaking it into smaller problems and finding a solution to each of those. However, not all problems are trivial. Some of them depends on logic and others, on complex equation.
Because we are programmer, we are by definition "Lazy". We don't like to do useless stuff, and sometimes reinventing the wheel is not what we want. Of course, we can argue that by building stuff by yourself, you understand every bit of the problem/solution... But sometimes you should not need to take this path to understand it.
So because we are lazy, we can search on the Internet for existing solutions that can solve some of our problems. You search the web, and suddenly, you discover an article about a subject that meet your needs. You start reading it... The abstract part is pretty easy... and then you get to the flesh and bones of the technique they used. It implies lot of "Integration", "Statistics" and "Linear Algebra". And they are not kidding... The problem here is far from finding the average of the grade for a student X.
So now, you start to realize that math is everywhere. Of course, building most of the non-complex software might not require high level of math... But if you want to do some R&D or simply try the new techniques out there and maybe optimize them, you need to understand how they did it and, more importantly, WHY they chose this method instead of that one...
Don't forget, it's never to late to learn new stuff and it's not a shame to not know something.
As a reference, I found this website not long time ago. The work of this guy is really impressive and if you want to learn/refresh some math subject, it is a pretty good place:
Code: Select all
http://www.khanacademy.org/
Code: Select all
http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation