Project ideas to master JavaScript
If you want to learn about JavaScript with the intent of understanding the language itself and Node.js, you should not do anything that has do to with a browser. That will just force you to focus on quirks and silly DOM-things. Even jQuery would be wrong in my opinion as it is a framework for working with the browser.
Write a good old regular command-line program. Write a Blackjack game. If you like maths, solve some Project Euler problems. If you want to do some asynchronous and web-like things, scrape a website for info and print it in the terminal. Or make a tiny website using Node.js as a server.
Really, just do anything, but stay away from browser scripting (unless that is what you want to learn) :)
I learned jQuery a lot by making a sort of website builder (drag and drop, etc), without knowing a bit of JavaScript (other than getElementById
and innerHTML
). I wasn't happy with performance (jQuery 1.1.x after all) and I started to learn and apply various optimization tips. After few months I realized that I know JavaScript at a satisfactory level (I was like Neo: I know Kung Fu!)
As a book, I'd recommend that you read Professional JavaScript. It covers a lot of topics, starting from basic stuff, going to advanced stuff.