top of page

How Self-Doubt Can Kill Your Programming Career

Updated: Nov 13, 2022

You are your worst enemy

It makes me sad to see how many junior developers abandon their dream of a programming career.

I know that programming is not for everybody. Similar to other professions, it requires particular skills and character traits. You need to think logically, be okay with sitting all day in front of the computer, and have lots of patience.

But it's also a great field. You can learn it at home for free, the salaries are incredible, you will learn so much, and most companies don't require formal education from their employees.

So why do so many people get discouraged and stop learning to code? I blame self-doubt. I've seen so many promising juniors fail just because they didn't feel good enough in some respect.

It's time to fix it.

Here are the four most common ways self-doubt kills our dreams of a new life and how you can constructively approach these bad thoughts.

I am not smart enough

The truth is you probably are. Programming is not magic; in a meaningful way learning to use programming languages is similar to learning to use natural languages. So if you can follow an average programming article, the chances are you are smart enough.

In case you think I'm exaggerating — even children can learn to code. They usually use some simplified languages like Scratch, but the 10-year-olds are more than capable of doing some coding. If they can do it, you can do it too.

The above doesn't mean learning to code is easy. It is not. It's one thing to have enough mental abilities to do it and another actually to do it. Some programming concepts are layered and complex, and learning to code is generally tricky. Again it's similar to learning a foreign language — it's not something you can reasonably achieve in a few months if you don't have an extensive background.

The feeling of inadequacy often happens when juniors are struggling with something. But struggling is the only way to progress. If learning feels hard, it means you're doing it the right way — you're challenging yourself.

Instead of letting dark thoughts control you, use them. Embrace the effort, and be proud of yourself. You are trying when thousands of others gave up. Also, have some perspective — you will never know everything. And that's okay. All you need to do is strive to code as well as you can and become a little bit better as a programmer daily.

I don't have the skills / It's too hard

Indeed, you don't have the skills. That's the point — you're learning the skills. Nobody is born with knowledge; learning is your job.

It's also true that programming is complex. And your learning experience may feel even more difficult than it should be. When you take advice from social media, you can find dozens of stories of people claiming they learned to code in three months and now are working for Google or another Amazon. There are dozens of unrealistic "roadmaps" to becoming a software developer in a month or two. And many YouTube videos promise to teach you any programming language in 10 minutes or less.

It's nonsense.

Learning to code takes hundreds of hours. And the hours need to be spent mostly writing and reading the code, not watching tutorials and courses. All these "success stories" do, is set unrealistic expectations just for the sake of click-bait.

But even though learning to code is hard, it's also doable. I don't know anyone who got their first job within three months of starting learning, but I know dozens of people who spent a year on two learning and now got a job. I'm one of them.

Let's go even further. I'd say it's good that programming is hard. If it were easy, nobody would pay big money for doing it. Fortunately, it's not so you can earn a lot. Even better, if it were easy, you would have to compete with many people who want to do it. But it's hard, so you compete only with those ready to play the long game and stick to it for years.

It will take lots of time

That's correct. Probably it will take even more time than you anticipate. Finding materials, reading them, coding. You expect to understand something in a few days only to discover you don't get it after weeks.

Some people learn faster, some slower, but you need to be willing to devote time to programming if you want to pursue a career as a software developer.

But is it a real problem?

Time will pass anyway

The only thing you can do is decide what you will do with your time. You can watch Netflix or play video games, and that's fine. But to move on with your career, whatever career it is, you need to put in some work. And it isn't easy to find any