If you are getting started with programming, start with C. Java handles the memory management all by itself and you won't be able to understand how the memory is being managed in Obj-C if you study Java only. Get a good book on C, learn all you can about pointers, memory management, pass by reference, pass by value etc. and then deep dive into Obj-C. If you have sufficient inclination, I would suggest the following learning path: C -> C++ (OOP basics) -> Obj-C
By using them yourself and trying to change the words to get different results. No, if you want a first glimsp into programming, you should either use the language you want to use later or a simple language. Java is overbloated, you will need to type a lot of unneeded stuff. I think this is the complete false route. At the beginning you are not motivated by puzzling around with syntax and with memory management. And why should C++ teach me oop basics? You are motivated by visible results. So just stay at Obj-C and do some UIKit stuff for the beginning. It helped me a lot to make a goal list and then work them off one-by-one so. First goal could be: Install XCode and run the default template app on your Device. Second: Add a popup opening button on it.
Because I have lots of time and have no real goal when this is going to be done by (hoping to have good knowledge in a year or so), I'm going to do the Stanford course on Java to just get into programming, then do the harder one on C++ and OOP, then the iOS one. I feel like by then I should have a decent idea. Thanks for everyone's help so far. You guys have all been great.
IMO, memory management is something that every developer needs to be intimately familiar with. Its true that visible results motivate but it would be dumb to ignore the basics just in order to get quick beautiful results.