Learning iOS from scratch, where to start?

OK, we got our idea for an iOS app, so how do we start implementing it? Well, we’ll need to gather some knowledge first. It’s like learning a foreign language, you don’t start speaking it until you learn a couple of words and a few grammar rules (my Spanish textbook is looking at me right now with a skeptical-creepy-smirking face :D)

So, where to start learning the super cool iOS programming? There’re thousands of sources out there, some are outdated, some are poorly explained, some are actually good, but how to choose among them and not to waste much time? Personally I’m inclined to start with lectures by decent universities, because they provide a solid background to build your knowledge castle. Also documentations are a great way to sum up what you read here and there and get a profound understanding of how things work (I know they’re boring, but sooner or later you can’t avoid them :D).

Luckily iOS learners have fantastic choice for both types of sources. Here’s what I suggest for the beginners:

  1. Coursera.org — this is always the first place to search for courses on any new skills I want to master. There’s a good iOS specialization there by University of Toronto. If you just want to watch the lectures and complete quizzes there’s not even a need to buy the whole specialization, you can enroll on individual courses for free and start watching.
  2. Developing iOS 10 Apps with Swift course by Stanford University, a (not surprisingly) awesome course that covers pretty much everything you’ll need for building any iOS app. You can watch the lectures either on iTunes or Youtube, but iTunes is nicer because it provides the slides and assignments of the course, and you can keep track of your progress as well.
  3. Swift language guide — this is a great source to get into the swing of the language (and it’s actually the reading assignment of the Stanford course mentioned above). Nothing like a boring documentation, very well explained and concise guide that covers all aspects of the language.
  4. And finally my favorite — raywenderlich.com tutorials for iOS, a comprehensive set of tutorials that explains some of the advanced things in a really funny way. And what’s also important the authors are periodically updating the articles so it’s likely that you’ll get the most up to date version of the topic.

These are all great sources to start with, but the actual learning will take place whenever you start building an app from scratch and completely by yourself. Just look around, find something you’ll be excited about to improve, and go ahead and start implementing it. You don’t need to change the world with your app (at least for now), you don’t need to revolutionize an industry, don’t feel the pressure to create something perfect, just have fun with it and learn, learn, learn... It’s fun, it’s not too hard (always keep saying this when you’re stuck somewhere :D), and it’s cool. Happy coding!