Anyhow, that was the preamble as to the sources of information I am about to lay on you.
You can expect to need a 4 year degree at the minimum. Your best bet is to get your masters with multiple code classes under your belt. Regardless, you will need the 4 years of school, and 1-3 year(s) experience to have a great resume to float around.
The actual programming can be learned via book at wal-mart at your library, but in order to land a job for a serious company, you will need the above achieved.
As for the general education, see the first answer.
As for math, I think it dips well past calc 2 and analyitical geometry. You will need to know copious amounts of math. That's one of the barriers for me at the moment, because I am stuck in intermediate algebra (lol). I got a B in HS calculus, but the college placement test (CPT) put me there.
he World of Warcraft community always will welcome new programmers into the private sector of wow addons. You can make a good 500 dollars a month off of donations if your work is excellent, but it also requires good art and photoshop skills.
All I can give you is that generic "everyone is always hiring the right person."
The best advice in those whole post that I can give you is to chase your dreams. Never chase the dollar. You will lose a lot of years of your life doing that, and mostly to no avail. If you are unhappy with your social-economical bracket, the best way to go about changing that is to thicken your bloodline.
Marry the same race, have a gang of kids, and teach them right. If you do good, and your wife doesn't smoke crack while they are in the womb, you will be successful. That or have a higher chance of getting a pro nursing home when you're 80 and drooling into a cup.