Skip to main content Accessibility Feedback

How to really learn JavaScript

In a word: gradually.

Newsletter subscriber Daniele Manca recently wrote to me about the challenges of really learning JavaScript. Republished here with permission.

My biggest challenge in web development so far has been to learn javascript to a degree where I feel confident to code and debug by myself,

For instance I have pretty strong basics in javascript but I have not yet been able to find the right projects to step up the game, being a UI developer who mostly focuses on the visual side of things…

And my response. #

ABSOLUTELY!! That was me, 100%, about three years ago.

I started as a (mediocre) designer who fumbled my way through CSS and HTML for a while. Once I got good at those, I realized I really liked development, BUT… my JavaScript skills were terrible and holding me back from the career I really wanted.

Here’s what I did to change that:

  1. I picked a thing I wanted to build. In my case, a little expand/collapse widget seemed like it would be easy.
  2. I literally wrote down on paper what needed to happen to do it. For example,
    • Detect when the link is clicked.
    • Find the content that goes with the link.
    • If it’s closed open it. If it’s opened, close it.
  3. Then, I googled how to do each part of that.
  4. I tossed it up on GitHub.
  5. I picked another project and repeated the process.
  6. I eventually started adding features, more learning.
  7. I started emailing authors of JS articles I liked, or bugging them on Twitter, with questions.
  8. Eventually, Todd Motto and I started talking regularly. At the time, he was all about vanilla JavaScript.
  9. Todd started ripping apart my work. I learned a ton.
  10. People started issues pull requests for my projects to add features or fix stupid bugs. More learning.

That brings me to today. There’s still so much I don’t know. ES6 arrow functions still confuse the hell out of me. I suck at prototypal coding (I prefer what’s called functional programming). And on and on.

The thing that had the biggest impact on my career, though, was open sourcing all of my pet projects. They started small, grew over time, and getting feedback, questions, and feature requests pushed me to learn even more. I’d recommend that to anyone.

Having someone more seasoned rip apart you code is a great way to learn, too. The Slack channel access that comes with my pocket guides is awesome for that.

Wow, sorry this was so long!


🚀 I just relaunched my Vanilla JS Pocket Guides with new code examples and real projects to help tie everything you’ll learn together. Check it out.

Have any questions or comments about this post? Email me at chris@gomakethings.com or contact me on Twitter at @ChrisFerdinandi.

Get Daily Developer Tips