I've been dusting off the old programming skills lately, or what's left of it, and have been trying to get into the Mac / iOS programming game, and while I know the basics of programming (I've done a little bit of BASIC, C, Java, etc), I'm going head first into "Learn Objective-C on the Mac" by Mark Dalrymple and Scott Knaster. Most of the topics have been straight forward, and I've got my head around OOP thanks to Java, but there are a few sections that I've read over 4-5 times, and my head still hurts. Those being: * Memory management * Properties * Categories * Protocols With the introduction of iOS 5, I've read in a few places that garbage collection will be coming to into play. Does that mean that I can not worry so much about retaining and releasing objects? Is it like Java where I could just abandon an object and it'd be automatically released? (If it's not as simple as I'm hoping it'd be, to what extent do I need to focus on this?) I guess my other question is, in terms of beginning iOS programming, how important is it that I master properties, categories, and protocols? Obviously I could write an app where you push a button and it says "hey you pushed the button", but how far could I get into writing apps before I'm stuck because I haven't mastered those topics? I'm thinking maybe I can slowly start on books about iOS programming, but if the consensus is that these topics are absolutely necessary, I'd rather drill it into my head until I finally got it before moving on. Any advice/opinions/motivational speeches would be gladly appreciated.