In 2011, Malcolm Gladwell wrote a book in which he maintained that achieving world-class status in any field takes 10,000 hours of practice. If you practice a craft for 40 hours a week, that maps up to 250 weeks. If you assume each year has 52 weeks (it’s a bit messier with things like leap years, so we’re making rough estimates here), that would be around 4.8 years (basically 5 years).

That means if you have what it takes to be an outlier and one of the most skilled practitioners in the world, it only takes around 5 years of practice. Examples of people of this caliber are: Tom Brady, Elon Musk, Bill Gates, Mozart, and Ryan Seacrest. Only a fraction of a percent of the people who work in the field will ever achieve this status.

Josh Kaufman, in an AMAZING TED TALK, points out that this idea has been abused by the media, which has taken the idea that it takes 10,000 hours to master a skill and be the best in the world at something, and misinterpreted it by contending that it takes 10,000 hours of practice to be any good at something.

Here are the facts. You probably aren’t one of the best programmers in the world (one of the top 5-10 best programmers out of 18.2 million developers in the world1). I know I’m not. And I have spent 10,000 hours (5 years) working as a programmer in the industry. Having said that, I’d like to believe I’m pretty good at programming.

But programmers like Aaron Patterson, Linus Torvalds, and Jose Valim on the other hand are building the platforms (think: programming languages, operating systems, frameworks) that millions of people code with everyday.

Getting into the top 10%, 5%, or even 1% is achievable. People who are just in the top 50% of programmers achieve awesome success. But on the flip side, having 5 years of relevant practice before starting a career just isn’t feasible, and it doesn’t map up to how the world actually works.

Here’s why.

There is a massive disconnect between what is taught in universities and what is done on a daily basis at startups.

This is true in any and all fields. Take the field of marketing. If you work in marketing, your day-to-day responsibilities would involve:

  • Email marketing (using a tool like MailChimp, or Aweber)
  • Analytics (using tools like Google Analytics or MixPanel) and funnel analysis
  • Copywriting
  • Google AdWords
  • Facebook Advertising

Yet, none of these topics are taught in most universities. Someone with years of experience in marketing will be well-versed in these skills, but someone who just graduated university likely has zero experience with these tools (much less 10,000 hours!) and instead of being experts, they’ll need to learn the tools of the trade on the job.

The same is true of Computer Science graduates, who are looking for entry-level positions. While they’ve spent time programming and working on theoretical concepts, the code that they have written is pretty far removed from what is practical in the real world today.

For developers at startups, the day-to-day responsibilities would involve things like:

  • Using Ruby and Rails to add features and fix bugs
  • Using JavaScript to add features and fix bugs
  • Working with RSpec
  • Working with databases
  • Working with a team on a single codebase
  • Communicating with other developers

And most Computer Science graduates don’t have experience with any of these things. For entry-level positions, 10,000 hours isn’t a requirement.

So, how long does it take to become an entry-level developer? 10,000 hours? 5,000? 2,000? 1,000? 500? It’s messier than that…

The answer will be different for everyone, but your goal shouldn’t be to attain expert status and have all the answers. As a beginner, you’ll face challenges that you can’t figure out on your own. You’ll see error messages that you won’t understand, and you’ll need help.

Instead of counting the hours and believing that something will magically change after a certain number of them, focus on what actually matters…

Eventually in the process, you’ll realize that everything is figure-outable. You’ll master the art of Google searches, and realize that most people have faced similar problems. You’ll understand enough to be able to teach yourself new concepts on the fly. Learning enough about coding to self-correct and get yourself back on track when problems arise is a difficult feat, but is not something that will take 10,000 hours.

Instead, think about that 10,000 hours as the minimum programming experience that Linus Torvalds had before he wrote the Linux kernel that is used on around half of mobile devices and many of the servers powering the web2.

You’ll find you’re ready to meet the Expectations of a Junior Developer very shortly after you become a Self-Sufficient Developer who is able to build things on their own. Don’t count the hours – they don’t matter.

1 India to Overtake U.S. by number of developers in 2017
2 Usage share of Operating Systems

Do you know someone who’s working hard at watching the clock? Save them 10,000 hours by sharing this article with them!

AuthorKen Mazaika

Ken Mazaika is the CTO and co-founder at Firehose. Previously, he was a tech lead at WHERE.com (acquired by PayPal) and a member of the PayPal/eBay development team in Boston.

2 replies on “Does it really take 10,000 hours to learn to code?

  1. I guess bottom line is that 10,000 hours should be treated as “at least 5 years of real, quality practce”. Don’t know why people so often take it THAT seriously that it is the actual number of hours that counts.

    After 23 years of gradually more conscious coding, I have realized that process which works for me doesn’t really depend on hours, but on iterating through two modes:

    1. Tinkering, experimenting, allowing myself to fail, reinventing the wheel;
    2. Refactoring, formalizing, learning best existing solutions, etc.

    The first step broadens my horizons and the second deepens knowledge and experience.

Leave a Reply

Your email address will not be published. Required fields are marked *