Why people fail to learn complex skills like coding

Diana Vilé
8 min readSep 1, 2021


Job security. Higher pay. Remote work. The Tech world is full of promising jobs. The astonishing amount of Bootcamps, Tech schools, online tutorials, webinars and courses both online and in-person, that has arisen in the last decade make us believe anyone is able to learn to code easily. We hear and read about the success stories of well-paid developers and what extraordinary lives they live and start to think that we want to become a software engineer too, as coding seems easy and well rewarded. Yet, how come we do not hear of the failure part? Is it really that easy to get a great job in the tech industry? How hard can learning to code be?

Do all people acquire a job after their University or Bootcamp that easily? And if not, why do people fail to learn complex skills and what can you learn from it? In this article, Code Sherpas investigates the primary reasons for failures in learning to code and how to get around them.

Source: Photo by Liza Summer from Pexels (2021)

Practice (not always) makes perfect

“Practice makes perfect” is how the saying goes: the more hours you put into your work, the better you will become. But does the amount of effort put in always lead to a guaranteed outcome of success? Of course not, you can still fail.

In fact, most people fail in learning to code. So, what if you keep on practicing and yet keep on failing? In that case, the idea of “if you practice, you get better” will not be too helpful.

The different stages of coding

Learning to code is not a linear path. The practice of learning how to code is far more complex than that. In fact, while learning a complex skill, like coding, you constantly switch between different stages of an emotional rollercoaster before you are really job-ready.

Source: Learning to Code 2020

11 Reasons to fail and quit coding

In order to be able to avoid future failure,we need to understand why people fail to learn to code in the first place. It is not because they are not smart enough, as many smart people fail to code. There are in fact many reasons why people fail to learn a complex skill like coding and therefore quit. At Code Sherpas, we put the main reasons to fail and quit coding together.

1: Confusion

Starting to Code is easy, stay Coding is hard. After a relatively easy start, you start to realize “Learning a complex skill like coding is very challenging”. You will often get confused. That is what learning is about. If you are not getting confused, you are not learning. Instead, you just replay in your mind what you already knew. So, in order to learn complex things, confusion is a good thing. However, in order to manage the amount of confusion, you should limit the scope of the skill you are learning, to not let the confusion take the overhand. One of the most important things to do when learning a complex, new skill, is narrow the learning scope. To take one small step after the other, until you really understand what you need to do and why. So, confusion is oké, but only in chunkable bits. You can always expand the learning scope later, when the lesson is learned and understanding has taken over.

2: Frustration

You are starting to understand a bit of coding, so you continue learning and you are leveling up by picking something that is even harder to practice. Coding becomes harder and you´ll get frustrated again. But, that is also how it is supposed to be when learning a complex skill. Practicing to code is supposed to frustrate you. The idea of practicing and keeping on practicing is not only to get enough practice, but also to reduce frustration. It´s along the way of constant practice and frustration, as part of the process, that you will become better. Sometimes if the frustration gets too much, give yourself a break but always make sure to come back later, as coding is hard to learn and easy to forget.

3: Boredom

After learning yourself to code for a few years in a row, learning can also become a bit boring. If the skill you are learning is too complex and you do not have a broader goal in mind, it is easy to get bored when learning how to code. The software engineering field is an extremely challenging field with lots of boring aspects that need to be assimilated, before you will be able to make any fun coding project. So start with the end in mind. And motivate yourself to reach that end goal. If I learn how to do asynchronous functions, I will be able to create my own Weather Application. Coding can be hard, but if you know why you are doing it and what you want to achieve or which fun projects you want to build for yourself, the boring parts will be easier to take in, as you know the reward will come.

While these are the primary reasons that people fail to code, the list goes on, as it is not only the coding practice itself, but mostly the coding environment that makes people fail. Let’s continue explaining why people fail and quit coding.

4: Promising lies

Become a professional developer in 8 weeks, Join our Bootcamp to Learn to Code on your free weekend and a Tech job is guaranteed, or Learn JavaScript in a Weekend.” The promises Bootcamp and online courses make sound great, but they are just impossible to realize in reality. In other words: they just sell promising lies to you.

Although you can learn the very basics of code quickly, that doesn’t make you a professional. First of all, everyone learns at a different pace. Secondly, most people have many other things going on in their lives. Thirdly, Software development is a true craftsmanship that requires many years of practice.

It is just not possible to learn how to code in a short period of time, without any deep understanding that makes you successful in the workplace. If you don’t want to put in all the hard work, you should probably find yourself another hobby, for coding is not easy and it takes years to become a professional developer.

5: Humans learn in different ways

Coding can be highly challenging and very complex. In order to really understand what you are doing, starting with abstraction and complexity is not the best way. Instead you should start easily and level up bit by bit. So, it is better to ignore the advice of the experienced programmers to start at a complex level. Instead, start simple and you will be more likely to succeed by adding up your level bit by bit at your own pace.

6: You learn how to code instead of coding

If you learn coding by focussing on syntax and details and not by focussing on how to solve problems, you are learning how to code instead of coding. If you want to learn how to, you should go beyond the theory and create a practical project in which you apply all the learned theory. In coding, theory is not enough, it takes constant practice to truly assimilate what you are learning. Building projects is where your real learning takes place.

7: The wrong mindset

There are two kinds of mindsets people can have when learning how to code: the fixed mindset or the growth mindset. In order to learn to code well, you need a growth mindset. In this mindset you focus on how much better you are getting in something in a few days, instead of how good you currently are (fixed mindset).

8: Coding is a teamsport

Although the myth exists that engineering is a place for loners, the opposite is the truth. When coding, you are part of a team. Even if you learn to code, you will be part of a team that helps and supports you to learn to code. You need people in your team to support you both on technical skills to get a second pair of eyes and on emotional support to help each other keep on going and improving yourselves. You need their encouragement, coffee and care. Their support is critical to your success. Even as a freelancer, you need like minded people to help you out when you are stuck. Coding communities, stack overflow, reddit, and open course universities are all great places to keep like minded individuals.

9: Stuck in tutorial hell

You are stuck in “tutorial hell”, going from one tutorial to another, without being able to code on your own, when you get discouraged and feel like it is too hard to learn. You are not going to get closer to mastery, until you write your first lines of code without any help. Practice sites like CodeWars will help you get this practice to code on your own, because that is where the learning starts.

People often feel like they are dom, as after watching hours and hours of coding tutorials they can´t make the easiest challenges on Codewars or creating their own projects from scratch. You are still on level 0 in code years, until you start writing code on your own.

9: Coding is not for everyone

“Anyone should learn how to code.” Although it comes in handy to be digitally literate, if you don’t like to code, stop it. Life is short and Coding is not for everyone. You need to be truly passionate about it or you will always be behind. The tech world changes rapidly and there is just too much relearning for you to hold on if you do not like what you are doing.

10: Specialize

If you still like to code, specialize. Companies are generally hiring you to solve a business need. If you can’t solve that, they are going to have to train you from scratch. So, you know the foundation of programming, but if you can’t solve the problem from day 1 and someone else can, then why should they hire you? Programming as a whole is way too broad. You need to focus on one specific skill and learn to keep going deeper and choose a specific niche stack to build projects in.

Any company that uses the tech stack you specialized in, might become interested. Be very specific about your tech stack and niche to become a more valuable developer. You should be so good at coding in the tech stack of your choice that you can deliver code from day one. Companies can not waste their time or money on you, so you will only become valuable to them if you can produce code from day one and solve their problems directly.

Don´t quit

Now you know the main reasons to fail and quit learning to code. If coding is what you want to do in your professional life, avoid these pitfalls. In fact, there is just one piece of advice to keep in mind:

“You will learn, If you don’t quit”.



Diana Vilé

A Senior Digital Marketing Communication Consultant @XploreDigital/ Google Women Tech Maker Ambassador (WTM)