As a first step, I've bought Discrete Mathematics book and reading it for last two months.
What should I move on to once I understand Discrete Maths? Straight to algorithms? How do I approach algorithms?
I also learned some from "C++ Components and Algorithms" by Scott Robert Ladd (http://www.amazon.com/Components-Algorithms-Scott-Robert-Lad...). This is old - it's what I first picked up when I was 15 and playing with MUDs - and a little basic, but it got me started.
Cormen also has a lot on data structures, but the level of presentation is pretty high. It may be easier to combine it with another source.
Also, the C2 Wiki has some great pages on data structures and algorithms: http://c2.com/cgi/wiki?DataStructures
I mean should I understand every proof written in Cormen's book? I'm confused as to how should I approach this.
When you've got that, take a look at some of the more advanced data structures in there, like binomial and fibonacci heaps, skip-lists, B-trees, etc. And somehow make time for graph algorithms, they come in handy.
What other math books should I be reading?
Karel Hrbacek and Thomas Jech, Introduction to Set Theory. ISBN-13: 978-0824779153.
Herbert Enderton, A Mathematical Introduction to Logic. ISBN-13: 978-0122384523.
Hope this helps. :-)