This article was peer reviewed by Tim Severien and Chris Perry. Thanks to all of SitePoint’s peer reviewers for making SitePoint content the best it can be!
One of the most surprisingly dangerous pieces of advice to JavaScript learners is to "just do projects."
To be 100% clear, projects are often a great way to learn any coding language. However, problems arise when people attempt certain projects before they know enough of the basics to judge what's reasonable.
This topic is important, because attempting a project too early is one of the most common reasons people give up on JavaScript entirely.
I'm not about to let that happen to you, so here's what we'll cover:
- the most common traps JavaScript learners fall into when attempting projects, and why
- specific examples of projects that frequently stop people from learning JavaScript
- how to avoid the common traps and learn more effectively
- when and how to start doing projects
- how to know which concepts to use once you start doing projects
The aim of this article is to give you confidence in moving forward, whether you're learning JavaScript or any other language.
The Common Phrase that Often Leads to Failure
One of the most common things I hear from people who want to learn JavaScript is, "I'll just make a quick slideshow."
They'll try to make the slideshow, and one of two things will usually happen:
-
It'll be too hard, and they tell themselves they'll "come back to it later" --- which often means giving up forever.
-
They'll succeed in creating the slideshow, but since they had to cover so much material at once, they won't be able to apply it afterwards. This leads to discouragement, which can mean, once again, giving up forever.
Why does this happen?
The Trap of Too Much, Too Soon
JavaScript learners often pick a slideshow as their first project because it sounds simple.
Once they attempt it, they discover it's harder than they thought. Making a slideshow might involve arrays, functions, loops, animation, timing, event listeners, DOM manipulation and more. This can be an overwhelming number of new concepts for someone who is starting out.
Suddenly, this project that was supposed to be easy is too difficult. That difference from the original expectation creates a nasty psychological effect. "If I can't do this easy thing," learners tell themselves, "then maybe I'm just not cut out for JavaScript."
Alternatively, some people will succeed in creating a slideshow, but it'll be cobbled together with a ton of help from tutorials and relatively little understanding of what's happening. In those cases, you frequently hear phrases like, "I was able to follow along with the tutorial, but then I couldn't apply any of it on my own."
Either way, the end result is often a feeling of discouragement that can stop people from learning JavaScript.
These scenarios happen not just with slideshows but other projects that learners will attempt too soon. For example, a to-do list sounds simple, but that can be a full-stack project if the data is to be saved outside the browser's local storage or cookies.
When someone is starting to learn JavaScript, it can be hard to identify the difficulty level of a project beforehand, and that's the source of the trouble.
Which Projects Often Hinder Learning?
In order to make this discussion more concrete, here are some specific, simple-sounding projects people often attempt too early, and the concepts that are actually involved.
Project | Concepts Involved |
---|---|
Quiz | Arrays, objects, functions, forms, event listeners |
To-do list | Arrays, objects, functions, some form of storage (front-end or back-end), DOM manipulation, event listeners |
A "little social network" | This is a full-stack project that, in addition to front-end JavaScript, involves back-end concepts including databases, authentication, security, user management, etc. |
What's the point?
The point of this section is not to scare you off from attempting new things. You can arrive at some of these projects faster than you'd expect as long as you don't start with them from the beginning.
All you need is a better approach.
Continue reading %Projects Can Sometimes Be the Worst Way to Learn JavaScript%
by Yaphi Berhanu via SitePoint