How long does it actually take to learn to code?

Software is changing the world and people coding software are at the very forefront of it all. There has never been a better time to learn coding – either to expand your skills or to change your career to develop software.

But how long does it actually take to properly learn to code? By properly I mean being able to create a website or mobile app from scratch. Being able to get a job full time as a software engineer – and to work with others on more complex and more interesting software.

Turns out it takes a long time. How long? Eric Wise who runs a startup teaching people how to code says this:

If you have a good mentor/feedback I’m very confident in saying 500-700 hours. (…) On your own… your mileage will greatly vary. I’d wager doing it solo takes at least three times as long (1500+ hours).

Eric is pretty spot on. Based on my experience, it really does take about that much time until you can go from zero to a pretty confident coder.

Learning French vs learning to code

So it takes somewhere between 500 to 1,500 hours to learn to code fluently. The interesting thing? There’s something else that takes about this much effort to learn from scratch: a second language. As Gruff Davies, co-founder of a language learning app puts it:

Learning a language isn’t hard. It’s just LONG. (…) I think of learning a language a bit like climbing a mountain (a large but easy mountain, the sort that anyone can climb so long as they keep going).Here’s what most teachers won’t tell you: It takes 600+ hours of study & practice to reach fluency in French (unless you already speak another latin-based language – a so-called romance language).

There are a couple of striking similarities between learning to code and learning a second language.

First, learning to code isn’t hard. Anyone can get started in as little as an hour. However it is very much like climbing a mountain – it takes a long time and has plenty of highs and lows.

Second, the time to learn to code fluently is roughly the same as learning French. After these similarities it should’t be a shocker that a couple of US states are considering replacing the foreign language requirement with learning to code instead.

Does it take short months – or long years?

Similarities with language learning don’t just end at the time required either, but the intensity to get the best results. Gruff says this about learning French:

Memory fades unless it’s used. Low-intensity studies (i.e. school French) are ineffective because their intensity is so low that you end up forgetting a large percentage of what you learn. So, try to learn as intensely as time will permit you to.

The same thing applies with learning to code. If you code regularly for more hours every day, you end up picking up more and forgetting less. Think about this. If you spend 2 hours per week learning coding, then in a year you’ll do 100 hours. It will take you 6 years at that rate to become fluent at coding – actually, probably longer because you will have forgotten a lot of the stuff from your earlier sessions.

However you can rack up 40 hours a week when at it full time – and it will take 3 months to get fluent. This is actually exactly the model that many of the code schools follow and why they have pretty good success rates. Of course you probably won’t have 3 months to give up to go full speed studying, but the idea is the same: the more intense you will study, the better the results will be.

Learning to code isn’t hard. You just need to get started.

While getting to a fluent level of coding definitely takes a lot of time, getting started has never been easier. There are tons of innovative startups like Khan Academy, CodeAcademy and many others who’s mission is to make getting started learning coding easier.

And after getting started, when feeling lost and confused during learning – remember you’re not alone. Everyone learning to code feels this way. And according to Gruff, even those learning French go through the same phase:

Expect a lot of fog and confusion for the first few hundred hours. It’s completely normal and you’re not stupid. EVERYONE feels this way, even the people who seem really gifted at languages. The difference is, anyone who’s already been through that and reached the sunlight expects this stage, and it doesn’t phase them because they know they’ll get there eventually. So, if you catch yourself saying things like, “I’m rubbish at French” or “I’m stupid” just stop for a moment and remind yourself that you’re neither and you will get it if you persevere.

Anyone can learn a new language. And anyone can learn how to code.

2 Responses to How long does it actually take to learn to code?
  1. Iris Classon

    I agree. I personally got of to a good start, learned fast and spent pretty much 24/7 coding. However, even a few years down the road the code I wrote (even if it compiled) wasn’t great to be honest. Some things take time, and you can’t rush them in any way.

    Asking early (one year in or so) for blunt feedback and learning to listen, as well as interning at different companies to work on different types of projects at different levels of complexity, helps you take your skills further and get that understanding faster.

    Make sure you write down your journey and what you learn along the way, whenever you feel stupid or overwhelmed take a look at your diary/log and give yourself some cred for how far you have gotten. It’s easy to forget…

    And don’t skip theory, algorithms and data structures. Besides opening up a bigger and more beautiful world of code, it also is quite common with interview questions related to that.

    Best of luck to all beginners and beyond, and welcome :)

  2. Marcus

    Good post, thanks.

    “Learn to code” in terms of getting to know a language and the framework on which your app will most likely run, that’s a good thing. I agree that most people can do it.

    Then, learning how to write maintainable code, how to collaborate, how to read and deal with other peoples code, how to write code that others can read and deal with, that’s the real journey, a journey quite a few people who code for a living seem to not take.

    Programming, like many other things, has this great property of being easy to learn and hard to master. I guess that’s why I love it.