What does it take to become an iOS Developer? 👩‍💻📲

Caleb Stultz
devslopes
Published in
5 min readMay 18, 2018

At Devslopes, we get this question a lot. And I mean A LOT. What does it take to do X? How long does it take to become a Y? We’re going to focus specifically on iOS development since we’re asked that the most, but the principles in this article are applicable to literally any technology. I mean, except for the iOS specific stuff, but you get what I mean (hopefully).

While the amount of things you need to learn may seem overwhelming, there is one simple discipline that is absolutely essential when learning iOS development:

Code every day.

The code must go on!

I know that may seem pithy and just like a bit of “inspiration”, but consistency is key when learning something like a new programming language or technology. Dedicate an hour or more each day to learning, writing code, and building things. This is what makes the difference between who succeeds and fails. If iOS development is what you truly want to do, you will make the sacrifices to make it happen.

When learning, you might find yourself overwhelmed by all you need to learn and start to compare yourself to others… Maybe a YouTube developer you follow, maybe a friend you know, or maybe you just beat yourself up because you don’t feel smart enough. That is a huge lie and is preventing you from growing! “Imposter Syndrome” is what it’s called — where you attack yourself and feel as if you’re an imposter and that if someone really found out what you didn’t know they wouldn’t take you seriously as a developer. Don’t let this distract you from your goal — becoming a kick-butt iOS developer!

Compete against yourself to be better each day and you can’t lose. A quick (45 sec) video on that below:

Compete against yourself and you’ll always win. 💪

In addition to that discipline, there is a mindset that is crucial. A lot of people obsess over “should I learn X?” or “should I learn Y?” when in reality, the overarching principles of software design and programming can be learned in many ways — iOS development is just one way to learn key principles. So, if you’re worried about mobile apps becoming obsolete, you can rest easy knowing that you have a solid foundation in programming in general and can easily shift that knowledge to another technology. Have the growth mindset that you can apply general programming skills to other technologies.

On a specific level, here are (in order) the things I think you should tackle first:

1.) Learn To Code

Swift is the language most commonly used by iOS developers today. By learning to code in Swift, you know a programming language but there are a few other things you should learn.

Basics of Programming

Learn the basics like variables, constants, numbers, booleans & conditional logic, arrays, dictionaries, loops, functions, and optionals.

We have a blog series on exactly that :)

Object-Oriented Programming

While there are other paradigms used in iOS development, OOP (Object-Oriented Programming) is the most common. It’s been tried and tested over many years and is used with tons of other programming languages/technologies. You should also learn (and be able to clearly articulate) things like polymorphism & inheritance.

Data Structures

Learn different ways to work with data. Some common structures are the heap, stack, tree, binary search trees, linked lists, etc.

2.) Learn iOS / Cocoa

Once you know how the Swift language works, you’ll need to learn how to marry that with the iOS technologies that make apps possible. Here are some of the things I think are most essential for an iOS developer to know:

  • How to navigate Xcode & Interface Builder
  • Building to Devices
  • Uploading an App to the App Store
  • UIKit
  • Auto Layout
  • Understanding of Model-View-Controller & OOP
  • Debugging Apps in Xcode
  • Using the Instruments tool
  • Using / Combining XIB’s, UIStoryboard, Segues and various presentation/transition techniques
  • Persisting data with Core Data (Realm is a good option too, but not stock iOS)
  • All about UITableView
  • All about UICollectionView
  • Parsing JSON into usable data in apps
  • NotificationCenter & Notifications
  • Delegates & Protocols
  • Interacting with RESTful APIs
  • Git or another method of version control
  • Understanding of DRY Principle
  • Multi-Threading
  • Unit Testing with XCTest
  • Using AutoLayout Size Classes to build great experiences for both iPhone and iPad

That sounds like SO MANY THINGS I know, but don’t feel stressed and just tackle a bit at a time.

3.) Join a Community

Don’t get me wrong — learning iOS is hard. Learning iOS by yourself is way harder. Surround yourself with both other learners who are in a similar circumstance as you and those who are above you in experience that are willing to mentor and help you. That’s something that we’ve aimed to build at Devslopes – a community where you can learn to code, build amazing apps, and not feel stupid asking questions. At some places online *cough cough StackOverflow* asking a simple question is equatable to a war crime. We wanted to build a community of learners where you can ask questions and get the help you need. You might even possibly make some friends you can collaborate on projects with.

If you’ve read this all the way, thank you. And if you’d like a guided learning path for iOS development and access to the greatest learn-to-code community on the planet, check out Devslopes.com. We look forward to guiding you on your iOS journey.

--

--