I would try knuth's concrete mathematics if you already know some calculus before reading the knuth's 3 volumes. Or you could try Cormen and Riverest's book on algorithms. I have both of these book and will be trying to read them once I'm done with classes. Also when reading, I think it's important to not just understand, for example a proof, but how you would come up with it yourself.Are these books appropriate for a beginnger programmer? I've been programming for a few months now and I think I've got the basics down, and I'm going on to windows programming currently. Should I read these books?