Top Tech Book

Eloquent JavaScript: A Modern Introduction to Programming

By Marijn Haverbeke

~50 reviews

JavaScript lies at the heart of almost every modern web application, from social apps to the newest browser-based games. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.

Eloquent JavaScript, 2nd Edition dives deep into the JavaScript language to show you how to write beautiful, effective code. Author Marijn Haverbeke immerses you in example code from the start, while exercises and full-chapter projects give you hands-on experience with writing your own programs. As you build projects such as an artificial life simulation, a simple programming language, and a paint program, you’ll learn:

  • The essential elements of programming, including syntax, control, and data
  • How to organize and clarify your code with object-oriented and functional programming techniques
  • How to script the browser and make basic web applications
  • How to use the DOM effectively to interact with browsers
  • How to harness Node.js to build servers and utilities

This edition is thoroughly revised and modernized to reflect the current state of Java­Script and web browsers, with brand-new material, such as a chapter on code performance in Java­Script, and expanded coverage of recursion and closures. All source code is available online in an inter­active sandbox, where you can edit the code, run it, and see its output instantly.

Isn’t it time you became fluent in the language of the Web?


  • Teaches you concept that you can extend to other programming languages
  • Book is written such that it feels like the author is talking to you
  • Digital version of the book is available to you for free in the Eloquent JavaScript site


  • Not for beginners
  • Examples may require several run-thru to understand
  • Learning curve is steep after chapter 3

Top Tech Book Review

Not recommended for beginners. This book not only teaches you JavaScript but programming concepts you can extend to other languages. In addition, the book is written in such a way that it feels like the author is talking to you directly, while hand holding you throughout the examples in the chapters. Some of the more complex examples, it might require you several run-thru to understand.

After chapter 3, the book picks up quite a bit. This can be a steep learning curve for some, especially if you are a beginner.

Overall, I recommend this book to intermediate developers and above.