15 Awesome And Free JavaScript Books
JavaScript is eating the world! With it we can build web apps, desktop apps, mobile apps, games, robots, backends and more. Lots of software supports JS as an extension language for writing addons or manipulating data.
Even though it has its quirks, JavaScript is here to stay, and now is a good time to learn it! This is why we've collected for you our 15 favorite free books that will help you learn and sharpen your skills.
Basics
If you are novice programmer, or if you have never dealt with JavaScript before, these books are for you. You might also want to look at Codecademy's great JavaScript course to get a bit of a hands on experience.
1. JavaScript For Cats
A great introduction to JavaScript. It shows you how to write code in the browser console and teaches you the basic language constructs. An essential book for teaching your cat (or yourself, if a cat is reading this) how to write JavaScript.
2. Learn JavaScript
This book is for beginners only as it covers the very basics of JavaScript. Its format is really simple with a short passage on every subject, followed by an example and an exercise. A nice quick resource for becoming acquainted with the language. After finishing this book, we recommend reading through Mozilla's reintroduction to JavaScript tutorial.
3. Eloquent JavaScript
This is the second edition of the great book which teaches you how to write precise, elegant and practical code. It starts off with the basics of programming but as you go deeper you'll get into topics like object-oriented JS and higher-order functions. After you've learned all that, the book will show you how to build an HTML game and some example apps with Node.js.
4. JavaScript Garden
A vast collection of examples for the most quirky parts of the language, which are the most likely cause of bugs. This book/guide explains bad practices, issues and other JS gotchas that don't work as people usually expect them to.
5. JavaScript Allongé
JavaScript Allongé is a book about programming that covers everything from the basics, with values and expressions, to more complex concepts such as types, identity, functions, closures, scopes, and many more subjects up to working with classes and instances. This book is suitable for developers from all skill ranges, as it takes care to explain exactly how things work and what to do when you encounter a problem.
Advanced
Knowing how to code is one thing, but knowing how to design software is another. The books listed in this section will teach you how to write beautiful code.
6. Learning JavaScript Design Patterns
An in depth look at both classical and modern design patterns that help us structure our code in the most optimal way. This book is targeted mostly at professional developers as it looks at advanced JS concepts like closures and prototypal inheritance, that require a certain level of basic prior knowledge and understanding of the language.
7. Understanding ECMAScript 6
The JavaScript community is obsessed over the cool new features that we will see in ES6, the next version of the language. This book studies closely the differences between ECMAScript 5 and 6, the new additions and how to make the best use of them. Understanding ECMAScript 6 is aimed at intermediate-to-advanced JavaScript developers.
8. Human JavaScript
Code is run by machines, by written by humans. This book covers how to write simple and maintainable code. It discusses routing, views and templates, event handling, configuration, testing and more. If you wish to write modular and bug free code with your team, give this one a read.
9. Speaking JavaScript
A book targeted at people who are already familiar with other programming languages and want to learn JavaScript. If you know Java, PHP, C++, Python or any other mainstream language, consider this your quick start guide to the wonderful world of JS.
10. Programming JavaScript Applications
A book for JavaScript programmers with experience. It's full of practical design patterns and architecture that will help you write more flexible and reusable code. If you have a large JavaScript code base, there is a good chance you'll find valuable insight in this book.
11. JavaScript Spessore
JavaScript Spessore is a book focused on a technique for developing JavaScript apps using objects and metaobjects. Only experienced JavaScript devs should approach this book. It builds upon the techniques which were covered in this author's other book, JavaScript Allongé.
Frameworks and libraries
Writing complex applications is difficult, which is why the community has created a growing number of robust frameworks and libraries. Here are a few books that will make developing with frameworks easier.
12. HTML 5 Shoot 'em Up in an Afternoon
A book that guides readers through the process of making a shoot-em-up game similar to the classic video game 1942 using Phaser. Although this workshop is totally doable with the mighty copy & paste technique, we advise people going into this book to be prepared with some knowledge of JavaScript and basic trigonometry.
13. Developing Backbone.js Applications
A great guide for creating JavaScript MVC applications using Backbone.js. Start with the fundamentals, work your way through the exercises, and learn how to build an application that is both cleanly organized and maintainable. This book is targeted at novice to intermediate developers wishing to learn how to better structure their client-side code.
14. Your First Meteor Application
A book on Meteor.js, full of practical examples, suitable for beginners. It won't make you a full-fledged developer by the final page but you will, however, understand the core concepts that will make your future education in Meteor a lot more approachable. Readers should consider acquiring basic JavaScript and database skills before going into this book or Meteor.
15. jQuery Trickshots
This is our very own jQuery book! It is full of practical advice and techniques about jQuery. You will learn neat tricks, find out about awesome plugins, and discover how to use (and abuse) our favorite library to your advantage. It is remarkable how much jQuery has done to simplify client-side development.
It's reading time!
We hope that you enjoy our little collection of books. Did we miss your favorite? Tell us in the comment section.
Bootstrap Studio
The revolutionary web design tool for creating responsive websites and apps.
Learn more
Nice collection!
Awesome post! And there are more JS books in this site: http://devfreebooks.org
Thanks! This is a great resource.
Hi, we move DevFreeBooks to new addres: https://devfreebooks.github.io
And take a look at DevFreeCasts too: https://devfreecasts.github.io
Thanks!
Thanks for sharing!
Great I enjoyed reading. This post added little more to my knowledge about js. Thanks mate.
You can also add this great resource youdontknowjs.com
https://github.com/getify/You-Dont-Know-JS/blob/master/README.md#you-dont-know-js-book-series
+1
What's missing in you collection is a book about object-oriented app development with PLAIN JavaScript. My book Building Front-End Web Apps with Plain JavaScript explains all important concepts: constraint validation, enumerations, associations, and subtyping/inheritance.
Gerd I downloaded your code and went through you tutorial and will definatly purchase your book. One question Gerd. So, have you given all the input regarding buliding front-end web apps with plain Js in these book or not. Or, shall we have to wait for next edition.
Regards,
Prem
Prem, sorry for my late reply, but I was not notified about your post. I'm contnuously updating the book (e.g., most recently I added three practice projects, each with a data model and sample/test data tables, for all six parts, which means 18 data models and sample/test databases), and all buyers can for ever get all updated versions of the book (that's also a gumroad policy). So, there is no need for waiting for a next edition.
Here is another great list of free JavaScript books and resources:
http://www.deluxeblogtips.com/2015/12/118-free-resources-to-learn-javascript.html
Great list but You Don't Know JS series by Kyle Simpson is missing. https://github.com/getify/You-Dont-Know-JS
Super useful!!