There’s no shortage of JavaScript books available, these days. Nearly every tech publisher has a book covering just about every aspect of the language, the latest frameworks and the tools that you need to be looking at for the future. But this massive list of books can be quite overwhelming to sift through and find the jewels that you need.
So, I wanted to give you a short list of books that have greatly influenced me – things that I consider somewhat modern-classics. Some of them may be a bit out-dated – especially with ES2016 and beyond – but these are books that are still worth reading for anyone that wants to move from “JavaScript Junior” to “ECMAScript Expert”.
My Short List
There are a lot of books that I want to recommend, but I have to start by recommending 3 that I consider must-have books for every JavaScript developer.
The first book I recommend, in spite of it’s age (both in years and in code), is Stoyan Stefanov’s “JavaScript Patterns”.
This book made such a tremendous difference in my career as JavaScript developer, due in part to both it’s brevity and it’s simplicity. At only 236 pages, it is small by comparison to most JavaScript books, but it covers a wide range of topics at the same time. And while you won’t find anything ES6 in here, you will find a better understand of where the JavaScript world came from and why the patterns we see in ES6 are valid and valuable. Understanding your history is a tremendously important aspect of your job as a developer, and there’s no better way to understand it than to learn the foundations and patterns that build today’s modern JavaScript.
Second on my list is “High Performance JavaScript” from Nicolas Zakas.
I bought this book originally because I wanted to learn how to write JavaScript that performed better. By the time I was done reading it, though, I knew that this book was meant to be on the shelf of every JavaScript developer, for the depth of knowledge and experience that it imparts. If “JavaScript Patterns” gave me a flashlight to find my way through the dark, then High Performance JavaScript gave me a light switch that really helped me see the value of the patterns that I had learned in Stefanov’s book. What’s more, this is the only book I’ve ever read that has a chapter on regular expressions, which I found to be valuable. This book, again, is small compared to some at 231 page. It’s pages are packed with great tips on how to write fast and clean code, though.
Last on my short list is another book by Zakas – “Maintainable JavaScript”.
If you’re a JavaScript tinkerer, someone that is trying to make a new career in this language, or if you need some tips on how to effectively work on a team with a large application, this is a book you need. At 242 pages – a third short book in a short list – this is one that will show you how to move from code cowboy to team player, and beyond. The first portion of the book covers things like coding style, formatting and other bits that may seem dull off-hand. When it comes down to getting work done on a team, however, these are critical topics to help keep the team working smoothly. From there, I found real value in the practices espoused in this book for writing clean, tested, easy to understand code. It may not cover the latest tools and frameworks, but there is an undeniable longevity in the style is espouses of small files, simple code and working as a team.
The Longer List
There are many other books that I want to mention, but I want to try and keep the list reasonable and focused. Here, then, are some of my other favorites that are worth reading when you need more specific information.
You Don’t Know JS, by Kyle Simpson – an amazing series covering nearly every aspect of JavaScript. For beginners and professionals / experts alike, you will learn more about the language than you thought possible.
Learning JavaScript Patterns, by Addy Osmani – if you’ve ever hear of the “Gang of Four” Patterns book, this is the equivalent in JavaScript. While it’s not a 1-to-1 translation, it covers a great deal of very useful patterns (oh, and I wrote the section on the Mediator pattern…)
Speaking JavaScript, by Dr Axel Rauschmayer – if you want the condenses version of the YDKJS series, this is it. I find myself continuously using this book as a reference for learning JavaScript APIs.
Exploring ES6, by Dr Axel Rauschmayer – this is the “what’s new in ES6” update to the Speaking JavaScript book. Again, I find myself continuously referring to this book, when I need to know what the latest syntax is.
Learning JavaScript Robotics, by Kassandra Perch – I can’t list JavaScript books without talking about hardware and robotics… and there’s no better book to get, if you want to get started! This is honestly the book I wish I had when I was first learning JavaScript and robots.
My Books
I do want to mention my own books, briefly, though. I publish books through LeanPub, which I highly recommend if you want to publish your own book. Most of these are short and focused, but all of them are worth their weight in gold.
(Dis?)Honorable Mention
Lastly, no list would be complete without this book – one that I don’t want to list, but I know will be asked about if I don’t. JavaScript: The Good Parts.
This is a book I own… and have tried to read. several times throughout my career. I understand the JavaScript community as a whole owes a lot to this book, regarding good coding practices and dangerous parts of the language to avoid. However, I cannot recommend this book as a resource for most JavaScript developers.
If you want an esoteric look into the language, from a writing perspective that fits better in academia while still trying to provide real-world relevancy, go ahead and pick it up.
This book may be a good reference for JavaScript developers that want a solid opinion on where the language went wrong, but “JavaScript: The Good Parts” is not “the good read”. It is quite difficult to read and does a poor job of educating developers beyond “use this syntax, not that”.
And So Many More …
There are so many more books that could be mentioned, and I would love to continue doing so… but I also want to keep this list reasonable.
What are your favorite JavaScript books? Write up a quick list and post it on your blog, in a gist or on twitter so others can benefit from your reading experience.