There are four preconditions to being able to program well, none of which requires mathematics.
- Symbolic Logic. This is not something which is only taught in Math. I received better instruction in Logic taking a Philosophy course than in my degree in Math.
- Giving directions. Remember - a computer is an idiot that will remember everything you tell it and do it as long as you want it. If you can't tell someone how to get from your house to the movie theater, you cannot program
- Abstract thought. You have to be able to think in meta-terms, at least if you want to have re-usable code. (Remember, re-usable means that it's not specific...)\
- Patience / perserverence. You will, on a weekly basis, encounter that bug that just won't be found or that design that just won't be finalized. If you cannot deal with that, you will have an ulcer before you're 25.
If you have those capabilities, then you have the capacity to be a good programmer. If you do not have those, then don't even think about a career in development. Period.
We are the carpenters and bricklayers of the Information Age.
The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6
Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.