Why iOS Developers Feel Stuck In Their Careers & What To Do

Mike Apostolakis
May 28 · 8 min read

We have been receiving messages and questions from iOS developers of all levels asking for advice on how to evolve professionally and financially.

The messages usually start with “I feel stuck,” followed by questions like “Should I learn Android/Backend Development?” This pattern indicates that iOS developers are looking to progress in their careers, which is fantastic! But they end up finding suboptimal solutions, such as deciding to become more “generalized” developers (constantly jumping to new technologies & frameworks). When, in fact, we’ve learned that “specialized” developers (mastering specific technologies & foundational concepts) achieve much better outcomes.

In this article, we have gathered some essential findings from our research and discussions we had with iOS developers to help you progress faster in your career and achieve your professional and financial goals. You’ll learn insights on the following key topics:

  • How unrealistic expectations prevent iOS developers from progressing professionally.

1. Beware of setting unrealistic expectations

One of the biggest problems we see that many developers face is setting unrealistic expectations regarding the time needed for achieving their goal.

It is imperative to understand the timeframe required to cultivate a particular skill. Also, realize that everyone learns at a different speed.

In many cases, developers expect to learn a skill faster than the actual time required. Since their expectations aren’t met, they end up dropping the learning process and subsequently stop evolving.

As discussed in the video “#1 Reason Why You Don’t Improve As a Software Developer,” the main reason that developers can’t seamlessly progress in their career is that they prematurely stop the learning process. They stop before the “a-ha!” moments. Before the learning occurs.

Why is this happening? One key reason is setting unrealistic expectations.

For example, we’ve talked to many folks that expected to improve their skills by just reading a book, watching some videos or even, in some cases, by being promoted to a more senior role and taking on more responsibility. That’s rarely the case.

Technical excellence comes through continuous learning, practice, and execution.

It’s imperative to understand that improvement takes time and comes in multiple forms. For instance, if your goal is to learn Test-Driven-Development (TDD), you need to recognize that the learning process itself is a crucial element contributing to your improvement.

Improving your learning i.e., enduring longer learning sessions, learning faster, finding better sources, becoming more consistent, deliberate practice, and applying what you’ve learned, are catalysts for achieving your goals. Although such practices may not refer to TDD directly, they all facilitate the underlying path you need to take to reach the goal of getting better at TDD or any other skill. They refer to learning as a process.

In other words, you can learn how to learn better (& faster).

Another reason why iOS developers stop the learning process is the perception of not having enough spare time currently.

If the time allocated for learning — an essential component in increasing your professional value and financial returns — is perceived as spare, it’s natural to become eager to stop. That’s because spare denotes a surplus or a nice to have. However, in this case, developers are actually dealing with a deficit in their expected value or a must have. Learning needs are a must have because they are identified aspects of your professional skill set that can be improved to generate better outcomes (and rewards!).

In the graph above, you can see how we have highlighted the dip of the green line also labeled “Uncomfortable zone.” That’s the stage where students go through materials, ideas, principles, etc. that are unknown to them. That’s also the stage where growth and productivity seems to fall drastically, so many quit before the breakthrough (green line peak).

It’s common and natural to feel stuck when learning something new. It may even be appealing to stop learning because of the unknown return on investment. “What if I’m just wasting time?” “Will this pay off?”

The good news is that you are not alone or on “uncharted territory.” Advanced topics, such as TDD and Modular Architecture, have been mastered by many developers in the industry. So when in doubt about the return on investment when learning such skills, you can study their careers, articles, books, talks, and see if it was worth it. Also, of course, feel free to ask their opinion if you can!

We often see iOS developers who want better skills and being capable of better results (and rewards!); however, they aren’t aware of how to achieve it. iOS Developers really want a remarkable career, so complacency is not the issue. The lack of investment in learning happens because many times, we just aren’t incentivized enough to justify learning as a rational investment. The immediate short-term happiness and utility we get from allocating our resources to more comfortable or familiar options seem like a better investment (with potential huge long-term loss).

“Learning XYZ is hard. Maybe I should be spending my time doing something more entertaining.”

If you experience such thoughts, don’t feel bad. We can assure you that’s natural. Even the most accomplished students face these kinds of thoughts. They just get extremely good at ignoring them. They actually get enormous satisfaction and happiness by shutting those thoughts down as they’re getting closer and closer to achieving their ambitious goals! These students are experiencing a fulfilling and enriching life.

2. Feeling stuck

We have received dozens of emails and comments from developers feeling stuck in their careers. They come from all seniority levels and a lot of different educational backgrounds, including self-taught programmers, CS degree graduates, and boot camp graduates.

The most prevalent challenges include the following issues:

  • Ineffective cross-team communication with other developers and business/product folks.

Many developers don’t anticipate to face those issues, nor are they trained to deal with them.

On the other hand, when we asked them to discuss their goals and aspirations, these are the most popular answers we’ve received:

  • Working with teams of more knowledgeable professionals (mentors) that can teach them how to effectively create and maintain a high-quality codebase (short & long-term).

We can deeply understand and relate to these problems and aspirations as we have experienced many of them throughout our careers. Many of these items are not related directly to the discipline of programming; rather, they have to do with communication and economics. Programming is just a single activity of the daily multi-disciplined operations in the life of a professional iOS developer.

The way we understand the underlying challenges iOS developers face in their careers is outlined through the following three-layered realization:

  1. “My goal is to build a profitable career building remarkable apps.” (aspiration)

The faster you go through those phases, the faster you’ll achieve a prosperous and fulfilling career.

3. Getting unstuck: combining technical excellence with real-life business challenges

The common pattern for many iOS developer careers is an initial struggle to get an opportunity in the iOS market, followed by a fairly quick career (& salary) progression, then stagnation as a mid/senior developer.

Many iOS developers are experiencing frustration in their day-to-day professional life, and they feel stuck. They don’t know what to do or where to search to get through these challenges. Most importantly, these are not only technical challenges.

Software development is a social activity, and it comes with social challenges too. In a job market with increasingly more participants and more significant challenges, developers that can collaborate well and lead with Empathy, Integrity, Economics in mind will thrive.

We recognized this phenomenon in the professional lives of iOS developers and founded the Essential Developer Academy to provide a solution and accelerate the career growth rate of iOS developers around the world. By continuously studying our most successful students, we have concluded that iOS Developers need two essential elements:

  1. Exceptionally well-thought education integrating technical excellence and leadership to tackle real-life business challenges.

Transforming your challenges into opportunities

The demand for Technical Excellence and Leadership skills in the iOS market is skyrocketing. However, only a few are mastering the skills to tackle those challenges effectively. Ignoring such market needs will lead to stagnation and a massive amount of money left on the table.

When you develop the skills to tackle business challenges and market yourself accordingly efficiently, you become a vital asset to any company striving to adapt and overcome the never-ending opportunities of the business world.

As mentors, educators, and iOS developers, we have been helping many iOS developers break free of salary/market caps and achieve professional and financial independence, with integrity. However, an enriching and fulfilling career doesn’t come easy. It requires dedication, and we’ve learned that, not every iOS developer will do what it takes to achieve their dreams.

To maximize and accelerate your career growth, we recommend you to find mentors that understand what makes successful iOS developers thrive and can help you achieve your best potential. Then, learn, practice, and execute continuously!

Originally published at https://www.essentialdeveloper.com.

Let’s connect

If you enjoyed this article, visit us at https://essentialdeveloper.com and get more in-depth tailored content like this.

Follow us on: YouTubeTwitterFacebookGitHub

Essential Developer — iOS

Skilled, disciplined and professional iOS software development resources tailored for you. Join us https://essentialdeveloper.com

Mike Apostolakis

Written by

Enabling iOS developers and companies to practice valuable techniques and build powerful and durable systems at https://essentialdeveloper.com.

Essential Developer — iOS

Skilled, disciplined and professional iOS software development resources tailored for you. Join us https://essentialdeveloper.com