What is the prerequisite knowledge for learning discrete math? To become a better computer programmer I would like to take the time to learn discrete mathematics, but I am positive that I do not have the required existing knowledge to do so. So I would like to hear from the experts about what I really need to know to be able to take a discrete math class or to even be able to pick up a book and learn it on my own. 
The extent of my math knowledge now is basic algebra. Probably not even high school senior level. Where should I start? I am guessing I should start with college algebra(or possibly even a remedial algebra), but I don't know where to go from there. Do I need trigonometry? The calculus? Calc II? 
I wish I had worked harder in high school, but I didn't. Thanks for your answers.

You do need to be reasonably comfortable with basic algebra, if only so that you don’t worry about it; you do not need trigonometry or calculus. (If I had my way, high schools would replace most of their calculus courses with discrete math and elementary statistics.) What you chiefly need is the ability to follow logical arguments. Oh, and you need to be aware that you’ll often be dealing with exercises that are much less routine in nature than those in the math courses that you’ve had so far. Most of the mathematical tools that you’ll use in an introductory discrete math course are pretty simple; the trick is generally figuring out which ones to use on a particular problem and how to use them.
