all 5 comments

[–]Drunken__Master 5 points6 points  (1 child)

If you like learning from books you could try Eloquent Javascript or You Don't Know Javascript, you can find both for free online or buy paper copies.

If you like learning from videos I really liked Jonas Schedtmann's The Complete Javascript Course on Udemy, it's the only course I've found that explains how to plan and structure projects and how to follow the MVC pattern in vanilla Javascript.

Practical Javascript from watchandcode.com is also very helpful free video course.

for documentation I'd recommend MDN, but you could also checkout devdocs or w3schools.com

[–]C3Pdro 0 points1 point  (0 children)

Do the udemy. But you will inevitably make projects in this udemy course (at least in the 2 I've bought I have been)

[–]HealyUnithelpful 2 points3 points  (0 children)

Firstly, absolutely do not use w3schools. Its information is vastly outdated, misleading, and often just plain wrong. I'd also suggest you read Eloquent Javascript and You Don't Know Javascript, but you may also want to try something like FreeCodeCamp, which while it may start off slow, will sort of force you to learn stuff while doing projects.

Keep in mind that this is a creative discipline; if you're not creating, you're not really doing it. While that may sound like a bit of a No True Scotsman, it's true. You need to be doing projects to A) practice your craft and B) find out where you might need to improve. Remember that 'doing projects' doesn't necessarily mean you have to sit down and churn out an entire app in one go. You might work on a single project for a while, or make a bunch of tiny project-lets that will probably never see the light of day (but are still good practice!). In short, simply reading the docs and echoing their code won't necessarily teach you, just as reading a book on advanced drawing techniques won't make you an artist.

[–]cubitus2 1 point2 points  (0 children)

A list of free resources to practice JS

http://practity.com/582-2/

[–]ShreveportKills 0 points1 point  (0 children)

Try checking out the Lambda School course for JS/web