What I wish I knew when I started learning iOS development

1. Code Everyday

This is possibly the most important item on the list. You will become a better developer exponentially faster by doing this one thing. If you don’t do this, you’re going to waste a lot of time reviewing and relearning the things you’ve already done.

2. Objective-C

OK, technically this is part of learning iOS, but hear me out. For those of you who don’t know, Objective-C is Apples outgoing development language, and is being replaced by their all new language, Swift. We are at an odd time for iOS newbies in that Swift has been around for some time and has had enough time to mature into a production quality programming language, however, many companies still have a substantial Objective-C codebase. Learning both languages, Xcode and all of the libraries and classes built into the platform can be daunting for those just getting started in iOS (and even more so for those who have never programmed at all). In an attempt to quicken their pace, many fledgling Apple developers (myself included) attempt to bypass Objective-C all together. I think this is a mistake. While I would encourage newbies to start with and focus on Swift, you still need a passing familiarity with Objective-C, as it’s likely you’ll have to work with it.

3. Coding Is Better Together

If you’re attending some kind of bootcamp or mentorship program this will be built in for you. If not, it may be more difficult to find someone to code with, but if you can it makes all the difference. Even if you’re both beginners, the support, accountability and the added perspective will help move you along more efficiently. Obviously, coding with someone more experienced than you is ideal. In my apprenticeship program I would pair program a few times a week with a professional iOS developer. He would help break down the more complex concepts, show me alternative ways of doing the same thing and point out common pitfalls of newer developers.

4. Time Management

As previously stated theres a lot to learn, and it’s best to do it a little every day, so it’s important to establish a schedule or routine so that you can make sure that you code daily and that that time is free distractions and obligations.

5. Don’t Be A Jack Of All Trades

This one got me a lot, I knew I wanted to be an iOS developer, but that doesn’t mean thats the only thing I was interested in. I’d want to play with my new Raspberry Pi, check out Googles new series on machine learning or see what this whole Android thing was about. all that is great, and in this industry it’ important to be open to new things and to continuously learn new things, but when you’re just starting out and still trying to gain competency in your first specialty it’s not wise to spread yourself too thin.

6. Get Your Feet Wet

Books, screencasts and tutorials are all great, ad provide a good foundation, but can only take you so far. Applying that knowledge to something new is where you will see real growth. Don’t worry so much about what to build at first, your first app is not going to be the next Uber. It’s just important to be able to build something without being guided through every step. you can start by going one step beyond a tutorial, or by trying to clone an existing app (keep it simple). This is going to teach you how to learn, how to find answers and in general to be a better problem solver.