DEV Community

Cover image for 7 reasons people quit learning to code (& how to avoid them)
Hunter Johnson for Educative

Posted on

7 reasons people quit learning to code (& how to avoid them)

I'm Fahim, a software developer turned tech founder. This article is part of my series: The Developer’s Launchpad. I'll share my top lessons, hacks, and best practices for learning how to code and launching a new career — things I wish I would've known earlier in my journey. If you're starting out your own coding journey, this series is for you.

So you decide to learn to code… and inevitably, you encounter an obstacle along the way.

It happens to the best of developers. I had a fair share myself. But for many aspiring coders, an obstacle can be so discouraging and frustrating that they quit pursuing their goal of becoming a coder.

Learning to code is not easy: challenges are a normal part of the journey. In an ideal world, the only reason an aspiring coder would quit is because they realized coding isn't aligned with their interests. But that's not realistic. In fact, many people quit learning due to obstacles that can indeed be overcome.

Today, I'll share some of the top reasons people quit learning to code — and some tips or perspectives for overcoming them.

Top 7 reasons people quit learning to code

1. Impatience

Image description
Many people quit learning to code because they get impatient. If you're not patient, you'll have a difficult time tolerating the inevitable moments when you get stuck.

Learning to code is a marathon, not a sprint. It takes time, effort, and discipline. It's important to realize this and be realistic when you're in your learning process.

If it's taking a while for you to master something, it's because it should take time — it's not because your brain isn't wired a certain way.

To help manage impatience, level your expectations and set realistic goals and deadlines. Break those goals into small steps, and celebrate any progress you make (no matter how small).

2. Fear of failure

If you're a bit of a perfectionist, and you're starting your learning to code journey, it's a great time to work on developing a healthy relationship with making mistakes.

The road to coding success is lined with mistakes — and there's no room for fear of failure along the way. While mistakes can be frustrating, they are really just learning opportunities. Both new and experienced coders can make trivial mistakes, but it doesn't reflect on their ability to be great developers.

In fact, I would argue that the opposite is true: great developers make mistakes all the time, in no small part due to the fact that they are challenging themselves, taking risks, and learning through experience.

To help you stay resilient and persistent in your learning journey, you'll want to develop a growth mindset, in which you embrace little failures as opportunities for growth.

In my book, the only real failure is quitting learning to code just because of a mistake you made.

Check out my recent post where I go deeper into why mastering programming requires failing.

3. Imposter syndrome

Imposter syndrome is more common than many realize — and it affects experienced and aspiring developers alike.

Imposter syndrome is characterized by a debilitating doubt of one's skills and abilities. This doubt is so severe that people often feel like an "imposter" or a "fake" (no matter how successful they are).

To overcome imposter syndrome, you'll need to make a point to track your accomplishments, and engage in positive self-talk. It can also help to connect with like-minded individuals and beginners (but you should also be careful not to compare yourself to your peers).

4. Lack of a structured learning plan

Image description

I've seen many enthusiastic learners run out of steam simply because a lack of structured learning left them feeling aimless, without a clear perception of the gradual progress they were in fact making. A structured learning plan can help us eliminate stress and feel more confident and in control of our coding goals.

This risk is particularly pertinent to self-taught coders, who — unlike those in bootcamps or university programs — bear the added weight of guiding themselves through learning topics, resources, and activities. Until they find their preferred learning resources, self-taught coders may also find themselves spending significant time browsing resources and tutorials which may lead to wasted time and (information overload.

If you're a self-taught coder, seek out courses or platforms that offer a clear, step-by-step curriculum — or, create a structured curriculum plan for yourself. It's important that a learning plan builds upon each concept progressively. For example, you shouldn't dive into a programming language without a good basis in logical thinking and problem-solving.

Looking for online learning resources? Check out Educative’s Learn to Code courses and structured Skill Paths, created by PhDs and industry experts to teach you exactly what you need to know, in the right order.

5. Coding anxiety

There are many reasons why people may have an anxious reaction toward learning to code. It's not easy to deal with anxiety, and when you don't find a way around it, you may feel you have no other choice but to give up.

Coding anxiety is common among many coders. There are various different roots to coding anxieties, ranging from overwhelm about how much there is to learn to performance anxiety. Once you know what your particular anxieties are, you can take steps to address them and find tools to manage them — you weren’t the first person to have that anxiety, and you won’t be the last!

Check out my recent blog post for an overview of common coding anxieties.

6. Misaligned learning methods

We're lucky that we have so many methods for learning to code today. However, whether it's a professor, a bootcamp, or an online course, not every resource will help students equally.

Many students quit learning to code because they're fighting an uphill battle with learning resources that don't suit their learning styles and needs. An audiovisual learner will struggle to grasp concepts from a textbook, while a kinetic learner will not solidify concepts until they have the opportunity to get hands-on with them. Similarly, a given lecturer's teaching style may not suit every one of their students.

If you're experiencing a lull with your learning, don't give up. Check in with your learning needs and see how you can incorporate them into your coding journey. It's possible that you may need to explore other learning resources, or use a mix of resources to optimize your learning experience.

Keep in mind that getting hands-on experience with coding is going to be essential — without it, you won't internalize any concepts or get the chance to learn from your mistakes!

7. Burnout

Sometimes we're so set on a goal that we're ready to fire all engines to achieve it. That passion is wonderful, but you can end up overexerting yourself to the point of burnout (i.e., blowing out an engine).

The risks of burnout are real. You can develop cynicism, anxiety, and negative associations toward something you once were excited about — and it can take quite some time to recover from it.

To avoid burnout, you'll need to pace yourself and learn to take breaks. Learning to code is a long and arduous climb — you will feel out of breath sometimes, and that's ok. But with clear goals and realistic milestones, you will reach the summit.

Staying on course

Image description
If you've decided to learn to code and you're struggling, know that you're in good company.

There are many skilled coders who have contemplated quitting at some point in their learning journey. The only defining qualities of those successful developers is that they persisted.

Everyone faces a unique set of circumstances, and I surely haven't covered all the reasons that people quit learning to code today. Whatever your obstacles are, understanding them is the first step to finding strategies to overcome them.

As a reminder, you can find online courses, Skill Paths, and projects specifically for beginners on Educative. Our hands-on Learn to Code resources help you learn everything you need to go from your first line of code to your first job.

Good luck, and happy learning.

More from The Developer's Launchpad

Top comments (5)

riyanswat profile image

All of them are true for me as well. Plus, another big reason is the fear of AI taking over the jobs.... I've been writing code for over 4 years now but stopped writing for the last several months because AI can do everything now. I know it's not going to replace all the tech jobs now but it definitely will at some point. And that's what's stopping me from learning... :/

stainlessray profile image

You just described a choice and said "that's what's keeping me from learning".

Really, what it should say is "that's why I refuse to learn it".

And you did this after explaining, rightly, that "not all jobs in tech are going away". In fact, few are yet. And the ones which will exist ongoing will require your knowledge of how code works. You can't guide an AI if you can't vet its replies.

Learn coding principals and foundations. Learn to use at least one language before you give up.

rushiljalal profile image
Rushil Jalal

I believe you're partially wrong. AI will *never * replace all tech jobs.
AI combined with developers helps increase developer productivity and accelerate software development but it cannot be done by AI alone.
Let's hope I'm right🤞

christian_go3 profile image
Christian GO

Thank you for sharing this @huntereducative. Indeed, I'm afflicted by all of these reasons to some degree, yet I'm willing to persevere despite these challenges. But the most significant reason currently to make me want to throw in the towel is the extreme lack of true entry-level and junior web dev jobs, especially for self-taught devs without any type of technical college degree.

codelikesean profile image
Sean Mhike

This was super helpful. As somebody just recently starting to learn web development this gave me hope that persistence is key. Thank you for this