Letter to friends on becoming iOS Engineer
This post is live art and will be updated as more questions come in.
Friends has been messaging me over years asking for advise to get started on iOS.
I compiled my list of actions and materials that one may take in order to achieve the goal. I included requirements that one may need for engineering.
What novices take long time to understand is that in “iOS Engineering”, engineering comes first, iOS second. Unless you write simple 2 buttons apps, you have to acquire strong problem-solving and coding skills. Those skills usually translate well across every platform. For example, C++ and Swift can be used on iOS, Android or server.
Only then go platform-specific skills. They nicely stack on top. For iOS that includes framework (UIKit, Foundation, etc.) knowledge, more sophisticated understanding of Objective-C, Swift.
Making a great iOS engineering requires some product and UX skills (in my opinion), which means you have to know when to push back the design team. Or you own thinking. Being familiar with things like Apple HIG is essential.
Solving Problems & Coding
You should be able to solve easy (beginners) and some medium (novices) coding platform-agnostic problems without much difficulty on resources like leetcode.
This area ramps you up on being able to (1) tackle the problem and then (2) translate your thoughts into the code. These both are of enourmous importance. If you can solve the problem but can’t translate it into the code and vice versa - work on it. You will feel the weaker area in a few weeks.
Solving App Design Problems
This now gets more iOS-specific. TBA.