My opinion on how to start programming
Language: C/C++ are by far the most important languages in the world. However, they are very messy and pointer-based, which means actually thinking about allocated memory for things. Blah. Don't start with that or you'll probably hate it quickly.
Python - Beautiful, simple language, but is really too high a level to do because it is designed, like Ruby (a fav of mine), for scripting and stuff that is very quick to write. You need to learn how to program and get a feel for things. So don't start here either.
My suggestion: go with Java. Objective-C is too C-based, in that you're going to see pointers (little astricks *) and structs and classes and stuff. You don't see those in Java, but you will be forced to learn programming techniques and terms. Your very first program is going to have terms like 'static' and 'void' and 'public' and whatnot...these things you need to learn, but the learning curve isn't too high. With java you can also make GUIs, i.e. little cute windows that pop up, with ease and it can be very rewarding. I support starting with Java 100%.
As for books, I have the Deitel & Deitel book and I think it is good as well. Right off the bat they are gonna tell you what every line means in your very first program. Another beautiful thing is that, within the first 2 or 3 chapters, they will be showing how to make those GUIs (windows) as well as Applets, which are Java programs which can run in web pages. They don't want 10 chapters for you to know programming pretty well. You will be excited about seeing your own windows popping up instead of just reading text at some command line. Very good book. Find it on ebay/amazon/half.com for cheap.
As far as how to start programming, I know XCode and Eclipse and what not seem popular and interesting, but don't do it. It's WAY too complicated for starting. If you don't use Java, just use a simple text editor and the command line. If you do use Java, check out something called DrJava:
http://www.drjava.org
It is easy to use and simple. A window comes up where you can create new text files and whatever without having to go through all this, start a new project, blah blah junk. You don't need that. To compile things, you just click the `Compile All' button at the top. It will show at the bottom if there were any errors and where they are. If it does compile correctly, you just have to type `java HelloWorld' if HelloWorld.java is your file and poof, it runs your program right in front of you. Nothing complicated. It is simple, and so I HIGHLY recommend it.
That's just my opinion. If you have any questions, feel free to ask. No dumb questions...I still ask plenty of them, hehe.