Skip to main content

Command Palette

Search for a command to run...

10,000 hours? Nope. Learn something new in 20!

Published
0 min read
10,000 hours? Nope. Learn something new in 20!

Posted on emTr0.dev.

I recently watched this TEDx Talk. It was really inspiring. I'm learning JavaScript right now and I'm 9 hours into the JavaScript Core Language path at Pluralsight, which is about 14 hours long. One of the key things mentioned by Josh Kaufman (@joshkaufman on Twitter) was those 20 hours need to include consistent practice, which just going through a video course won't do since it's not always super involved. I know there are course files to download but it's not necessarily the same, which is why after I'm done with the Pluralsight path, I'll most likely focus on completing freeCodeCamp certifications and other practical, real-world exercises/projects. I'm also thinking of recommitting to a fresh #100DaysOfCode.

  1. Break down a skill into its components. The first thing you need to do is to decide what you want to learn, and then break it down into smaller, manageable pieces. Let’s say you want to bake your own bread. It’s a multi-step process that includes making dough, letting it rise, punching it down, shaping it into a loaf, and baking it in the oven. You’ll start by identifying the different tools and skills behind each step. Or, if you choose yoga as your new hobby, begin at home with a video that shows you the basic poses and breathing techniques — and then go try a class.

  2. Learn enough to know when you’re making a mistake. “Get three to five resources about what it is you’re trying to learn,” says Kaufman. “It could be books, it could be DVDs, it could be anything, but don’t use those as a way to procrastinate.” After all, you won’t learn how to bake bread or do yoga unless you break out the flour or yoga mat and do something. Set a limit on the number of resources you’re consulting — there’s no need to buy every book or watch every YouTube video on the subject; there’s time to do that later — and jump in.

  3. Remove any and all barriers to practice. This may require stowing away your electronic devices while you tackle your hobby. Or get creative and combine your favorite distraction with your new activity. In a TEDxPenn talk, behavioral scientist Katherine Milkman advocates a technique called “temptation bundling”: pairing something you know you love to do with something you’re trying to get yourself to do. Turn on your favorite podcast while you bake, or you could turn your weekly coffee with a friend into a weekly at-home yoga session with the two of you.

  4. Practice for at least 20 hours. To overcome what Kaufman calls the “frustration barrier” — that period in the beginning when you’re painfully incompetent and you know it — you must commit to sticking with your new activity for at least 20 hours. By that point, he says, “you will be astounded at how good you are.”

Full article:

Some questions:

  • Do you think this concept of learning can apply to learning a programming language?
  • How did you learn?
  • Is 20 hours based on the above steps enough to start (for example) contributing to an open source project or starting your own?
  • Would anyone be taken seriously after only 20 hours of practice in this field, even if you're proficient?

Thanks!

T
Todd5y ago

I agree with Mario Giambanco and Emil Moe here. Learning language syntax is only a tiny fraction of being a modern-day developer.

Let's say that I believe that you actually learned the entire language of JavaScript in 20 hours total. By the way, this would never happen, but let's just say it did.

Even then, as an interviewer, I would be wondering:

1.) Does this person know their way around version control systems like Git, SVN, GitHub, GitLab, etc...

2.) Can this person present their ideas well to others?

3.) Can this person adhere to deadlines and are they an efficient worker?

4.) Is this person passionate about the subject or just trying to collect a paycheck?

Newbies often underestimate the amount that the "non-coding" skills matter. Do you know software build systems like maven, cargo, autotools, CMake, make, etc...? Do you know how to properly configure an IDE and write unit tests? Are you comfortable getting up and leading a meeting or discussion?

There are SO many things to being a good software developer that matter and that hiring managers are looking for, that even if you were able to learn an entire language in just 20 hours, you would still need much more time to learn.

That all being said, you can learn 1 subject in a language in 20 hours and maybe mediocre at best. I guarantee you if you spent all week learning about pointers in C this week, in 1 year from now, you would still learn something you didnt know about pointers even after a week of study.

All that being said, yes, I agree that 20 hours of time per subject is enough time to get your feet wet and start using that construct when programing.

Cheers, Todd

2
A

If you are trying to learn the javascript language then you need to know some of the best writing tips which may be helpful for many useful software in the future. I have checked most of the students get the writing tips that recommended you read the information here for any writing content.

M

Everyone's capacity to pick up a new skill is going to be different. IMO 20 hours is not enough to be proficient in any language, let alone JS. I would completely ignore a resume that said anything like 20 hours of education.

Learning / getting good at a programming language is a life style. You don't need to live and breath it, but you need to work at learning it day in day out. This is why it tends to be easier to learn things on the job. You have a built in 40 hours / week commitment to learn it.

Further - learning a language doesn't mean you're good at it. Anyone can rattle off methods and functions built into a language. What makes a good programmer is the ability to take those things you learned and build stuff or talk intelligently about it. When the boss asks "how would you approach X problem" the difference between answers from someone with 20 hours and 10,000 hours of experience will be night and day.

Good programmers bring their years of experience with them to a problem / job and 20 or 100 hours just won't cut it. Being a problem solver is so much more important than memorizing the syntax for a language.

6
E
Emil Moe5y ago

Practice for at least 20 hours. To overcome what Kaufman calls the “frustration barrier” — that period in the beginning when you’re painfully incompetent and you know it — you must commit to sticking with your new activity for at least 20 hours. By that point, he says, “you will be astounded at how good you are.”

And what he basically says is that every skill takes 20 hours. So to understand if-then-else expect 20 hours, to understand public / private expect another 20 hours. So I agree with you and 500 of these sums up to 10,000 hours which is, by the way, researched by Malcom Gladwell and a well argumented in The Tipping Point.