I was having an interesting conversation about a month ago with a good friend who just entered the world of programming. Like me, he was set on learning iOS and asked for my recommendations. What follows is a no-frills, ordered and to the absolute point list of how I would suggest a newcomer learn iOS development with the goal of getting an entry level job.
A few things to note on my inherent bias towards some of the selections:
- I prefer to learn a complex topic via reading over it, seeing someone else do it and then viewing an example at my own pace. Then, I do it.
- These examples assume the prospective iOS developer already knows a thing or two about programming — perhaps they are a year or two into their education.
- I feel good about this list because it’s how I learned, verbatim. And it’s served me well.
- …and last, I’ve seen many amazing developers learn iOS doing the absolute opposite of this list.
Cool? Let’s do it:
- Read “Programming in Objective-C” by Stephen Kochan. Complete every exercise.
The Frameworks and Swift
- Read “iOS Programming | Big Nerd Ranch” by Christian Keur and Aaron Hillegass. Complete every exercise.
The Hands On
- Build a barebones MVP of some app idea within a week or two. Here, it’s crucial that one gets stumped several times. Getting comfortable with visiting Apple’s documentation as their first stop to seek answers to their questions will aid them well in their iOS journey.
- This step is in many ways the most important. During entry level interviews, it’s likely they want to see two things. One — that the dev clearly wants to learn and has humility. Two — that the dev has busted out a few apps of their own, no matter how small. What were the challenges, what were the most exhilarating and rewarding parts?
The First Day of the Rest of Your Life
- Now that the new developer has a simple understanding of iOS — they are well suited to start comprehending heavier, more advanced (but extremely relevant) topics. They should find a learning source(s) that resonates well with them. Be it this blog, Pluralsight or Lynda videos or something else — the key is to keep learning and growing.
The Random Essential
- I also believe watching WWDC videos is an import part of being an iOS developer. They’ve taught me a great deal, and the learnings come straight from the horse’s mouth.
- Also, download some of Apple’s sample code every now and then to learn a new framework. Just this last week, I had to use NSProgress for an app. From their NSProgress sample code, I was able to learn how to use the NSProgressReporting protocol correctly, the differences between explicit and implicit composition and more.
Other Random Notes
From my findings, new iOS developers try to learn Cocoa Touch before knowing anything of Objective-C or Swift. I believe that’s a huge mistake, and while more experienced developers may excel with this approach — this list isn’t honed towards experienced developers. It’s geared towards new ones.
Also, I still encourage new devs to expose themselves to Objective-C beforeSwift. For a green developer, becoming comfortable with Objective-C feels like a grand accomplishment, almost as if you just got your wings. Learning Swift after that feels like a breeze, while the opposite isn’t as true.
We also cannot ignore the fact that every iOS developer will, sooner or later, face Objective-C. We’ve all heard “Should I learn Objective-C or Swift?” a few times. Learn both — that’s just the best answer I can give.
Lastly — you will learn more at your just first job than you ever thought possible.
I love iOS development. It’s truly inspiring to learn how we all got here. Some were completely self taught from the beginning — programming and all. I took a more traditional route, going to school and cutting my teeth on Microsoft technologies (I still miss C# to this day). But - with that foundation I was able to teach myself iOS development. I still have my Programming in Objective-C (3rd edition) sitting on my desk to this day.
There is never a beaten path towards learning a craft. It just so happens, this list did it for me, and I think it can for others, too.