A good roadmap for becoming an Apple Developer
I thought I would share some research with my community on one good path to becoming a proficient Apple developer.
My background is programming. I started programming at an early age and I learned C shortly after I started at IBM long ago because I wanted to branch out from mainframe code to OS/2 code. (OS/2 was a great OS that was a collaboration between IBM and Microsoft that died a horrible death.) Anyway, I digress.
The first thing you need is an Apple machine. You can’t program iOS without one. You can learn C and Objective-C with any hardware, as Objective-C is opensource.
But if you want to target the Apple ecosystem, get a Mac. I’ve got a MacBook Air 13″ and a Mid-2010 Mac Pro. If money is tight, get a Mac mini. You can plug your own brand of keyboard, mouse and monitor into it and it allows you to start off cheap. All of the Apple devices maintain a decent resale value, so you can buy one now and usually resell it on eBay after 6mos to a year and get back a decent % of your funds to apply to your next, bigger Mac.
The next level would be a decent Macbook Air. The 11″ is great for portability, but I prefer the bigger screen of the 13″. Get the newest 4th Gen (or newer if you are reading this a few years from now)
11″ -> 13″ ->
Or, go for the Mac Pro if you’ve got the dough. You won’t be displeased!
The first thing to becoming a talented iOS/OSX programmer is a good grounding in the C language. A great book I used long ago that is just as valid today as it was back then is “The C Programming Language” by Kernighan and Ritchie. It’s easy to follow and it takes you through the concepts that make up C.
Next, it’s helpful to understand C structures. Well, it’s beyond helpful, it’s downright mandatory! The best book I’ve found on that topic is “Reusable Data Structures for C” by Sessions. Sessions also has another great book on Class Construction in C and C++ that is worth reading. This book will build on the knowledge you learned in the first C book.
Reusable Data Structures for C (Prentice-Hall Software Series)
and
And now a few words about C++ and Objective-C. Both languages were started in the late 70s as solutions to a new concept called object oriented programming. C++ had a roughly 2 year headstart and was backed by AT&T. It included backwards compatibility with existing C programming. Objective-C was a new way of thinking and was based on Smalltalk, which was one, if not the, first object-oriented programming languages. The syntax and strict adherence to the Model/View/Controller was different than the flexibility allowed in C++. Anyway, if you don’t know C++ and your goal is Objective-C, don’t clog your mind with C++ right now. Focus on Objective-C and get good at it, then learn C++ later on. Plenty of gamers use C++ in iOS apps because it is evidently easier and results in faster execution of the gaming algorithms. That, and the C++ code can be cross-platform between iOS/Android/Windows/etc.
Xcode can work great with C++, and the new version 5 has added a great deal of support for the new C++ 2011 standard.
OK. So, now you have mastered C. It’s time to get to the next step.
Go get an Apple Developer Account for iOS. It’s $99/year and the resources you get more than pay for themselves.
First, you should get to know the folks over at Big Nerd Ranch. BNR was founded by Aaron Hillegass, who was one of the original employees at NeXT, where Objective-C was first commercialized. When Apple bought NeXT, OS9 went out to pasture and NeXTStep became OSX. And Aaron was living and breathing and teaching this stuff during this time period. He knows his stuff!
So, the first book you should pick up on Objective-C is Aaron’s most excellent book. There is no better book to walk you through, in non-insulting baby-steps, to learn the basics of the language. And make sure you type in and run every single line of code he tells you to type in. You learn by doing. Learn how to use github and push your code and changes to github. This will get you used to working with a team when the time comes.
After mastering this book, there are two other books that are worth reading before you get to the Cocoa books. They dive deeper into the language and explain the philosophy behind the architecture choices. The first book, which Aaron personally recommends, is Cocoa Design Patterns by Buck and Yacktman. This book dives into the design patterns that every Cocoa programmer with his/her salt should master. The second book is Effective Objective-C 2.0 by Galloway. This is an excellent book that builds on the basic Objective-C knowledge and sheds additional light on how to make programming choices that will save your bacon later on!
Now we get back to iOS… Back to BNR books. Another excellent book, and as with Aaron’s book, make sure you type in all of the code. Have you purchased an iPhone, iPad or iPad mini yet to test your code? You should!
Finally, to make sure all of this information sinks in and to give you some additional perspective and challenge, take this FREE Stanford class on iPhone & iPad programming that is available on iTunes.