This week's giveaway is in the Android forum. We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line! See this thread for details.

On a more serious note, I found differentiation and maxima / minima helped solve a problem recently. The problem was reduced to an equation and the equation's minima gave the answer

Probably one of the most famous books with regard to this subject is Introduction to Algorithms. I had a course with that book at university a long time ago.

Note that a video lecture of this course is available from MIT.

In my opinion, every serious programmer should know something about algorithms, and should know the basics of analysis of algorithms and big O notation.

Jesper Young wrote:
In my opinion, every serious programmer should know something about algorithms.

I agree with you. But I started with Introduction to Algorithms and found it tough. So I thought I should learn mathematics first. I almost forgot everything in maths. It will be helpful if you can suggest some good tutorials and books.

@Jesper: thanks for the link to the MIT OpenCourseWare page! I'll surely attend some lectures there.

I have also my problems with math. We were able to "deselect" it at high school. And, taking the path of least resistance, i did. Now i regret it. So i simply never learned the symbols of higher mathematics. I'm sure it would be much easier to understand if they use java code.
cb

Any serious study of algorithms needs at least some level of calculus and a bit of probability. If you watch the MIT Open Courseware lectures, you will see that they assume a fair amount of college level math. Then it is MIT, so they know that their students have the background.

Of course, you need calculus and some probability to be any kind of Engineer.

Pat Farrell wrote:Any serious study of algorithms needs at least some level of calculus and....

Personally, in over 20 years as a developer, I had to use calculus only once... I had to use this algorithm to control the number of VmWare members in the grid to process work (with a fluctuating load).

Basic junior high school math and algebra probably covers more than 90% of the cases. I also used geometry, trigonometry, and statistics too -- but these are dependent on what I was working on.

Pat Farrell wrote:Any serious study of algorithms needs at least some level of calculus and....

Personally, in over 20 years as a developer, I had to use calculus only once...

For sure, the study of algorithms needs a bit of calculus, but in the real world, you rarely need to prove that your algorithm is O(n^2)

I do think that academic study is important in practice, so that you know that using a O(N^4) algorithm is a really bad thing if N is greater than about 5.

I have managed folks with MS in Computer Science that didn't fully grok this. Its like seven way RDBMS joins, sure, they work in theory, but they are way bad in practice.