I'm asked regularly about books and online resources to get up to speed on JavaScript. Seems like everyone wants to get in on the JS action and with good reason; it's a great language to know if you're interested in exciting career opportunities. It's also pretty fun to play with.

With JavaScript's increased popularity, the number of books, blogs and tutorials about the language have grown exponentially and while I can't possibly know all of them, I've found some gems which I really like and would like to share those with you.

Books

Note that I'm only listing books that I've read and can recommend. There are a ton of books out there that you may find equally great and that's cool.

Professional JavaScript for Web Developers by Nicholas Zakas

This continues to be my most recommended book. It is the one that I tell any JavaScript developer (aspiring or expert) to get and keep on their shelves. Nicholas Zakas has written a fantastic book that does an excellent job of covering all major facets of the language. Want to know the basics? It's in there. Want to get into OOP in JS? It's in there. Want to know about the Document Object Model? Well you get the gist.

It's a complete reference written in a very accessible way that guides you from the basics to advanced JavaScript features. Hence why I recommend it to developers of all levels.

JavaScript Patterns by Stoyan Stefanov

Understanding the most common and useful JavaScript patterns and how they work is critical to properly managing and organizing your code. The pattern you choose in many cases becomes the basis for the foundation of your application and plays an important role in deciding how you'll architect your site.

Stoyan is one of the best JavaScript developers in the world, having worked on large-scale sites at Yahoo! and Facebook and was part of the team that managed the YUI framework. He knows his stuff and he's distilled his understanding of the most common patterns into an easy-to-read book.

Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries by Stoyan Stefanov

Oh JavaScript OOP, how you taunt me with your prototypes. Since JS isn't a traditional class-based object-oriented language, it can be a bit wonky to get your head around things like prototypal inheritance or mixins. Stoyan steps up again and does a great job of breaking the topic down. It starts off slow with some language basics to get your feet wet but quickly dives into how OOP works and how you should be taking advantage of the language's features to build reusable objects.

High Performance JavaScript by Nicholas Zakas

We all want our code to run fast so we tweak and refactor constantly. Learning by the school of hard knocks is cool but I prefer to have a resource based on someone's previous experiences to build from. This book aims to teach you about those tweaks that can help optimize the performance of your code. Whether it's improving loop performance or working with timers to improve UI responsiveness, this book covers it.

Effective JavaScript by David Herman

When I first read about this book, I wasn't 100% sure I wanted to get it. I figured it was a rehash of other books I've read but when I saw that Alex Russell of Dojo and Chrome Frame fame recommended it, I scooped it up. I'm really glad I did.

Dave is Mozilla's TC39 rep and an expert in the language both at an academic and pragmatic level. The book is great because it's not so much about the JS language as it is about using the language in the best way possible. It works to clarify how specific parts of the language work (e.g.: coercion, currying or automatic semicolon insertion) so that it doesn't bite you later on. This is definitely a book for those wanting to take their level of JS understanding to the next level.

Secrets of the JavaScript Ninja by John Resig and Bear Bibeault

No matter what you think of jQuery, John Resig deserves mad respect and kudos for building the most popular JavaScript library ever and highlighting the power and flexibility of JavaScript. This book took 4 years to finish but it was well worth the wait.

Freebies

I realize that many of us are on a tight budget and free is always a great choice. Luckily I found a site that can point you to free resources. The site, JSbooks, was created by Revolunet and offers placeholders to several quality online references such as:

And a whole lot more. And no, these aren't pilfered ebooks you find on scam sites. The icons simply point to established and publicly available resources acting as a directory instead of a host.

Blogs

There's so many people sharing great content and it's incredibly hard to filter out which ones to keep up with. As my experience has grown, I've worked to narrow down the blogs I read and I think these have really worked out well:

DailyJS

The name says it best. It's a combination of news and tutorials focusing both on front-end and server-side JavaScript code. It has a regular roundup of jQuery plugins as well.

Nicholas Zakas

I think by now it's obvious that I'm a fan of Nicholas. His blog is as great a resource as his books and tackles advanced JavaScript concepts that should be on every developer's mind.

David Walsh

I remember when he first hit the scene; a brash, in your face type of dude learning the ropes and building a name. Since then David has worked hard to become a great developer contributing to the MooTools and Dojo frameworks and now working at Mozilla. He produces great articles that are immediately usable.

Badass JavaScript

Another great news and tutorial site. Reminds me a lot of how Ajaxian used to be, in that it allows me to discover very cool libraries and new techniques to use.

JavaScript Weekly

This is the ONLY email newsletter that I keep in my inbox because every weekly issue is chock full of awesomeness. Seriously, I don't know how Peter Cooper does it but he manages to find so many great articles to read. Just be careful because it's a total productivity killer.

Addy Osmani

Addy is one of the most talented developers out there and in his blog he demonstrates his breadth of knowledge by covering everything from jQuery promises to AMD. His post on writing modular JavaScript is epic.

Peter van der Zee

He calls me old and says I use a cane but I still respect Peter's incredible knowledge of JavaScript. He's part of the younger generation that will be the future of web development. Get to know this guy.

Juriy Zaytsev AKA kangax

When you're ready to learn from the big boys, start by subscribing to Juriy's blog. He eats, drinks, and sleeps ECMAScript.

2ality

I've never met or spoken with Dr. Axel Rauschmayer but when I found his site I had a "holy crap this dude is sharp" moment. When you read his posts, you'll see why. They're DEEP, like into the bowels of ECMAScript deep. Really awesome stuff.

Nettuts

Yeah, yeah I'm biased but it seriously does have great stuff. You wouldn't be reading this if you didn't agree. :)

Taking a Class

When a book or blog won't do and you want to get your hands dirty, you now have a ton of courses, both offline and online, to get you up-to-speed:

Nettuts Premium JavaScript Course (Online)



Not only will you find courses on JavaScript fundamentals but on frameworks like Backbone and topics such as OOP.

(Online) Not only will you find courses on JavaScript fundamentals but on frameworks like Backbone and topics such as OOP. The JavaScript Master Class (Online)



I took this online course by Thomas Fuchs and Amy Hoy. So worth it, especially because the instructor is accessible for Q&A.

(Online) I took this online course by Thomas Fuchs and Amy Hoy. So worth it, especially because the instructor is accessible for Q&A. appendTo's Free JavaScript Training (Online)



A free set of eight video lessons to help you ramp up on JavaScript.

(Online) A free set of eight video lessons to help you ramp up on JavaScript. Bocoup Training (Online and Offline)



Bocoup has a great training program. They offer some online videos but the real value comes from attending their numerous training classes in person.

Getting Help

One of the hardest parts of learning any new programming language is getting support. You have questions and hope to be able to get answers.

JSMentors



I started JSMentors with Asen Bozhilov with the intention of providing a safe and helpful place for developers to come and ask questions about JavaScript. It came out of my experiences in other less desirable, not to be mentioned parts of the Internet which weren't exactly beginner friendly. We enlisted the help of a number of notable experts to help answer questions and the group is doing great.

I started JSMentors with Asen Bozhilov with the intention of providing a safe and helpful place for developers to come and ask questions about JavaScript. It came out of my experiences in other less desirable, not to be mentioned parts of the Internet which weren't exactly beginner friendly. We enlisted the help of a number of notable experts to help answer questions and the group is doing great. StackOverflow



I personally think this is such a great resource. The site helps developers resolve their issues daily and it has sections for JavaScript and related libraries like jQuery.

Conclusion

Hopefully I didn't overwhelm you with all of these listings. It's really great that we have so many options to learn JavaScript and I've only scratched the surface. Remember, pick and choose what's best for you and take your time. JavaScript is great language to use and it does take a little time to get all of the nuances. Thankfully, you have many methods for learning it and options to help you get your questions answered.