Eventually, all new JS book authors will take ES6 for granted, and then the JS book world will return to normal. I’ll list my recommendations roughly in learning order.
As with my other book posts, the Amazon links are affiliate links, and a portion of the money you spend will be used to fight homelessness with JSHomes.
Enough talk. Bring out the books!
True to the title, this book is a whimsical exploration of very basic programming concepts, but don’t let that fool you. Books for kids aren’t just for kids. If you have never touched code before, this is a good place to start, even if you’re all grown up. Diving in the deep end before you learn how to swim can be a frustrating experience. It’s better to start your practice with some easy wins.
This book is a work of art. It walks you through the essential concepts with a clear roadmap using clear language. It’s masterfully composed and edited, and unlike most programming books, it’s full of exercises for you to practice. If I were teaching the basics of programming in high school or college, I would use this as a text book.
7. “You Don’t Know JS” by Kyle Simpson
This one is really a series of books — all of them similar in style and scope, some of them bigger than others, and all of them very good.
That said, it tries not to be overly prescriptive or opinionated. To borrow from the introduction:
9. “Professor Frisby’s Mostly Adequate Guide to Functional Programming” by Brian Lonsdorf
This book is unfinished. Read it anyway.
No, you’re not stupid. It’s hard to learn functional programming. I’ve been slowly learning over the course of many years, and I feel like I’ve barely scratched the surface (I’ve accepted that this feeling never really goes away). Luckily, Professor Frisby is a wonderful guide.
The world of functional programming is full of terms from lambda calculus, algebra, and category theory. In this jungle of academic lingo, it’s very easy to get lost and feel stuck. Professor Frisby’s tone is energetic and entertaining. Here’s a sample from the related video series:
If only all programming books were so much fun to read while they’re beating new, challenging concepts into our thick skulls. This is a book you may want to read many times, and unlike many other challenging books on computer science topics, you’ll actually enjoy doing it.
10. “Node.js in Action” by by Mike Cantelon, Marc Harter, TJ Holowaychuk, and Nathan Rajlich
“Node.js in Action” is a great introduction to basic Node application development covering essential topics like HTTP/HTTPS, Connect/Express middleware, realtime messaging with Socket.IO, using databases, and so on. If you’re new to Node, this is a great place to start.
11. “High Performance Browser Networking” by Ilya Grigorik
It is difficult to overstate the importance of great application performance. Shaving milliseconds off of page load times and reducing UI jank deliver investment returns that can only be rivaled by a great user interface design overhaul.
This book covers high-impact performance considerations such as HTTP2, data streaming, WebSockets, WebRTC, DataChannel, and so on.
In other words, this book is the definitive guide to building a more successful application by optimizing its performance profile.
12. “Web Audio API” by Boris Smus
This book is on my list primarily because I love music and audio engineering. The web audio API is actually a system of related APIs for generating and manipulating sound using web platform standards. You can use it in browsers and in Node.
To use the web audio API, you manipulate nodes in a graph. Normally, I’d just refer you to a handy reference, but unless you’re an audio engineer, you might feel a bit overwhelmed. This book guides you through the various types of audio nodes and teaches you how to weave them together, work with the timing API to precisely schedule sounds, manipulate parameters over time, apply audio effects, and even create audio visualizations.
In other words, it’s a whole lot of fun.
He spends most of his time in the San Francisco Bay Area with the most beautiful woman in the world.