My 2c: stay away from any complex framework until you have a really good understanding of the language itself. Learn the DOM APIs with all it's drawbacks and bugs, DOM events, standalone browser APIs like Canvas, Audio, etc. Write simple node apps with express and modules whose sources you can read. Start using lightweight libraries like underscore / Backbone - you'll come to understand many of the issues that plague…
There should be a project euler for web devs. What better way to learn js than to do 1-day (1-hour?) projects with a clear and specific focus on one concept or one browser API? Example of first week complexity: make a choose-your-own-adventure player from a list of {id="sec01", text:"..", links:[{'Continue':'sec02'}, ]}s. Second week: Wrap the chrome speech API[1] to produce a "game editor" for the above format. Thir…
- http://www.codecademy.com/en/tracks/javascript
(I haven't used any of them, but these are the ones that I've heard about)