Frankly, you can be a perfectly adequate programmer in a lot of fields without a fundamentally very strong knowledge of mathematics. You may not be very capable when it comes to game engines or network routing optimization, but truth be told, lots of business applications are fairly simple. However, I would encourage you to keep hope alive and not yet give up on the math.
There's a world of difference between the math you take at a lower level and the math you take at a higher level. It's a very different thing to say that you're bad at Calculus (I was - I failed Calc I the first time I took it) than it is to say that you're bad at Graph Theory. As you advance through mathematics, the focus is not on simple problem solving that is frankly fairly boring and repetitive and might as well be done by your graphing calculator. Instead, the focus is on logical thinking skills: constructing proofs is frankly a lot like writing software.
The best math class I ever had was what I considered to be my first "real" math class: basically an introduction to proofs class that covered a range of areas from Graph Theory to Number Theory. The text we used was great (Mathematical Thinking: Problem Solving and Proofs by D'Angelo and West.) You may find it useful just to work through that book to get some ideas of attacking proofs.
Overall, did I really need any of the math I took in college? No, probably not. But having some formal background gave me better critical thinking skills, a better imagination (there are typically many ways to solve a problem, sometimes good, sometimes bad, but a unique idea can be helpful) and confidence in problem solving.