DEV Community

Cover image for Advanced iOS Programming Concepts – Are They Really “Advanced?”
⛩ Essential Developer

Advanced iOS Programming Concepts – Are They Really “Advanced?”

⛩ Caio Zullo
I love building robust, well-engineered, and beautiful iOS applications and coaching developers to achieve their best potential @
Originally published at on ・3 min read

In our experience, it’s very tricky to label topics as “Advanced” iOS Programming Concepts. “Basic,” “Intermediate,” and “Advanced iOS Programming Concepts,” should be judged by the reader, not the writer! We believe that, although it can be an effective marketing strategy, labeling content as advanced can be a mistake.

For example, at the beginning of my career, C was the language I used the most. The language C carries a lot of concepts that are considered “advanced” such as pointers, allocation and memory management. However, if you start coding in C as I did, it’s natural to understand such concepts in the early stages of the learning process. A junior C developer should be able to handle pointers and memory allocation effortlessly. Of course, there’ll be gaps in the junior C developers’ knowledge, but with time they can master it.

Now, it’s not uncommon to find mid to senior Swift developers that don’t have the same proficiency as junior C developers with pointers and memory allocation. The lack of experience with pointers is not a negative thing. The Swift language facilitates memory allocation and hides much of the pointer manipulation/complexity from the developers. This was intended by the creators of the Swift language to make it easier for the developers to create safer code.

Can we label topics as “Advanced iOS Programming Concepts?”

Sure we can, but when we label topics as advanced, we usually get two different types of responses:

  1. This is not advanced! I learned this at the beginning of my career.

  2. This is advanced! I never learned this.

When a newcomer starts programming, everything is somehow “advanced.” As we progress in our careers, some topics start to look more “basic.” If we start labeling things too much, a strange phenomenon might happen. The student might say “if this is advanced, I already know everything I can learn from this source.” This mindset can even discourage students from investing more in their education, because what comes after Advanced iOS Programming Concepts? It feels like the end of the journey. However, dedicated developers know that mastery is an endless journey.

Some common labeled “Advanced iOS Programming Concepts” we see out there are “OO,” “FP,” “Networking,” “Databases,” “Testing,” and “Architecture.” Interestingly enough those are all concepts that we teach to our beginner students at Essential Developer. And, at the same time, we also teach the same concepts to senior developers with 20+ years of experience, that lack or need to refresh their knowledge base.

It’s hard to judge what people already know or not regarding “Advanced” iOS Programming Concepts. In our courses, we focus on just teaching concepts. We try not to label concepts since it’s up to the student to decide if they sound like basic, intermediate, or advanced. If you are familiar with a topic already and it seems easy, great! We can move on and focus on the knowledge gaps that are preventing you from evolving.

How to find knowledge gaps in Advanced iOS Programming Concepts

We believe that every professional should do market research and skill self-assessment from time to time. Find out what is the most valuable skills in the market. Decide if acquiring such skills is feasible and interesting in the short and long-term. Finally, invest in your education. Education is an investment in yourself and, when done right, will increase your value in the market.

As explained before, for us, Advanced iOS Programming Concepts are concepts you might not be familiar with yet. Learning these unfamiliar topics is all about you fixing gaps in your knowledge and increasing your value.

Prosperous developers strive to keep up with the industry demands and stay in the path of mastery. Mastery for a software developer is an endless goal of continuous improvement. By staying sharp with their skills and hunger to learn, developers can provide tremendous value to the industry. In return, dedicated developers can get a significant pay/salary/bonus/perks compensation.

Originally published at

We’ve been helping dedicated developers to get from low paying jobs to high tier roles – sometimes in a matter of weeks! To do so, we continuously run and share free market researches on how to improve your skills with Empathy, Integrity, and Economics in mind. If you want to step up in your career, access now our latest research for free.

Let’s connect

If you enjoyed this article, visit us at and get more in-depth tailored content like this.

Follow us on: YouTubeTwitterFacebookGitHub

Discussion (1)

aramy23 profile image
Ahmed Ramy

That’s great, but that takes us to next question, what makes one, jr, mid, or senior?