in reply to Programming and math
2. Some may disagree, but I say a CS degree has nothing to do with it. It may have something to do with how far you can get in your career, but most probably how fast you can get there. But as for what you can accomplish in the end, it has no bearing at all. Either you have it in you, or you haven't. In my opinion, CS educations, just like any chef school or whatever, is completely wasted unless you already has it in you. If you are fit for the task, you may benefit (but you will not learn anything you can't get from another place). If you aren't cut for it, you can go to any amount of schools and you will still suck.
3. Again, mathematical doesn't have as much to do with it as logical has IMO. And again, I think that either you got it or you don't. Some languages are easier to learn, and of course there might be differences according to what background you have. But it all boils down to if you are a "born" programmer or not, when push comes to shove. On one hand, people with no talent at all can do working programs in Visual Basic or some lame games in flash, but it takes a programmer to go from there.
You are asking tough questions, but I think that no matter what language, platform or area you choose, there are no real shortcuts. To be good, it will always take hard work and at least some natural grasp of the task at hand.
You have moved into a dark place.
It is pitch black. You are likely to be eaten by a grue.