First, I love programming. I live everything about it. But getting good isn't easy. If you've never programmed before I recommend "Learn Python the Hard Way". It's a free download (actually free, not pirated free). This will get you into many core concepts in computer science and programming ( loops, control structures, etc. ). From there move onto Java for object oriented programming concepts ( use Eclipse as your IDE ). I actively hate Java, but this will get your feet wet on OOP. I don't like C++ for a first pass at OOP because of issues involving memory management and pointers you don't have to deal with in Java.
Speaking of which, at this point pick up a copy of K&R and learn C. Especially pointers, structs, and memory management. Also, learn GDB, it will be your best friend. Now you are ready for C++, C#, or Objective-C. A professor of mine said that "objective-c is what C++ should have been". The Hillegass books are amazing for Cocoa libraries and Obj-C. iTunes U has some great stuff for iPhone programming.
Mathematically, you will need linear algebra. It will make your life easier (as will C).
Is this a lot? Yes. Computer programming isn't easy and isn't even why software engineers make the big money. It's because they can do algorithms. Find a good algorithms book ( at least two inches thick ) and read it. Twice.
Hi,
Interesting post, you haven't written much but there's actually a lot of content there, so appreciate that. I'm away for 6 weeks but I'll check back in with the content/ advice you give in this post when I'm back in front of a laptop (I couldn't take my MBP with me). I may get back to you for advice/ futher pointers on here if you're around when I'm back.
Thanks