I went to school for Computer Programming where I learned C++ but that was over fifteen years ago. Could I learn a new software language now? I got very used to programming for the web using Perl and PHP but those are fairly easy scripting languages, no knowledge of memory management is needed and they are not very object oriented.
The first place I started was Head First iPhone Development. This was the perfect place to begin. The O’Reilly Head First series of books have been good for me in the past when I was working on my PMP. The way they use visual queues really helps the retention of the concept of the material. I also liked how they wrapped up every chapter with a quiz that tested how much you remembered. The book came with a CD that had all of the code for the tutorial programs in the lessons. It was useful a couple of times when I couldn’t get it to compile my way, then referring to a working program helped. I read though the book twice and I was starting to get it, but I needed more instruction.
I had heard about Stanford University putting courses online and checked it out on iTunesU. In the Spring of 2009 they had a course named CS193 iPhone Application Programming taught by instructors Evan Doll (later Co-Founded Flipbook) and Alan Cannistraro. What better way to learn Objective-C then from actual programmers from Apple who helped make the platform and SDK. It was a very long course including 40 lessons that were roughly an hour each. It’s pretty amazing that you can watch all of these lessons for FREE in perfect video. You’re getting a Stanford course and learning Objective-C from the best for no cost! The only difference from me and a Stanford student was they get a credit for it and I only get the knowledge. I think that’s even more valuable as it’s been the basis of my new career as an iOS Developer. At the time the SDK that was covered was 3.0. There is a newer version of the course available now, iPad and iPhone Application Development from Winter (2012-13) instructed by Paul Hegarty.
Stay on Target
After reading a book and taking a course for iOS I was ready to start developing. The best way to learn is to start building your own app. You probably have tons of ideas but start with one that is fairly small with only a couple of views. If you’ve seen the documentary “Indie Game” you’ll know who Tommy Refenes is. If you haven’t, it’s definitely worth watching if you’re a developer. Tommy recently wrote a great article How do I get started programming games???. The greatest takeaway from it is staying motivated. You have to be obsessed about the app you’re building, you have to want to work on it whenever you have free time. The other key tip, you should breakdown your project into small manageable parts that you can develop at a time. If you think of it as a full game you’ll get overwhelmed, but if you build it one feature at a time you will see that you are making progress and feel an accomplishment during the process instead of just at the end.
Below is a list of some of my favourite places to find iOS Development tips and tutorials:
- Stack Overflow
- iPhone Dev SDK
- Ray Wenderlich iPhone Tutorials
- Cocoanetics Blog
As with anything, practice makes perfect. The more code you write, the better you’ll get and build up a useful library of code that you can reuse in all of your future apps.