3.0 out of 5 stars
Lots of good info, but way too many mistakes, plus faulty grading!
Reviewed in the United States on 27 January 2019
* * * REVIEW BASED ON READING ENTIRE BOOK AND WORKING THROUGH ALL 37 ONLINE EXERCISES * * *
After learning half a dozen other programming languages, I wanted a quick introduction to JavaScript. This book hits the highlights and has interactive exercises on a companion website to reinforce the material. The concept is excellent, but I am sorry to say that the execution leaves a lot to be desired. My review describes the good and the bad, explains who will benefit from this book, and recommends some alternatives for learning JavaScript.
WHAT'S GOOD
There is some very worthwhile material in this book. Here are five things I especially appreciated:
1. I was really excited to learn that PDF files can contain JavaScript! This opens up a whole new world of possibilities for creating interactive documents. I already have a commercial application in mind for this technology.
2. It's handy to know that you can use the built-in developer tools in any web browser to open a JavaScript console. This lets you enter and run JavaScript code directly, which turns your web browser into an interactive laboratory. You can easily experiment with JavaScript to see how its language constructs behave.
3. The book includes some very instructive examples that show how small changes in the JavaScript code can cause very unexpected changes in the results. These examples drive home how much the little details matter.
4. JavaScript has lots of specialized operators, like calculate-and-assign operators, bitwise logical operators, bitwise shift operators, and an operator to compare both value and type. This stuff is like candy for your brain!
5. The book provides a quick introduction to advanced JavaScript topics, like the document object model (DOM), immediately invoked function expressions (IIFE), variable scope, hoisting, closures, event handling, objects, methods, constructors, and prototypes. These topics are the reason why I pushed through to the end of the book.
WHAT'S BAD
Getting through this material is far more difficult than it ought to be because of three things:
1. There are a lot of mistakes. These include some facts about JavaScript, as well as discrepancies between the book's questions and the website's questions, and worse yet, discrepancies between the website's questions and the website's answers.
2. Sometimes explanations in the book are worded unclearly. (I say that as both a computer science professor and a professional editor.) Whenever I encounter unclear material, I do some experiments in a JavaScript console to figure out what's going on, which definitely has educational value.
3. The website marks many correct answers as incorrect. For example, if the website's answer has unnecessary extra spaces and your correct answer doesn't have them, it will mark your answer wrong! The website doesn't grade intelligently, so you have to grade your own answer by comparing it to the solution provided.
The book covers all the essential topics for an introduction to programming, but some parts are aimed at beginners while other parts require prior programming experience to fully understand. Some material is redundant (very similar or repeated verbatim), and the information is sometimes presented out of order.
WHO WILL BENEFIT
If you stick with this book, you will probably need to do your own JavaScript experiments and consult other sources for clarification. That's a valid way to actively engage with the material and deepen your understanding, but it's not easy. Yes, in four days of intense study, I did get a solid introduction to JavaScript by using this book and the online exercises as a guide, but it was not an enjoyable experience. Battling the many mistakes in the book and website wasn't "fun."
If the author fixes all the mistakes and improves the clarity, this could be a good quick introduction to JavaScript for people who already know another programming language. As it now stands, many people will find it frustrating. You can still get a lot out of it if you're willing to work around its flaws and use them as learning opportunities. Some examples in this book are straight from W3Schools, so you could use that instead if you get frustrated with this.
If you're a beginner, I do not recommend this book and the online exercises in their current state. They both need considerable editing and correction. There are simply too many other good JavaScript courses for beginners to put up with a course that is hampered by so many mistakes.
ALTERNATIVES
Here are six other resources for learning JavaScript:
1. The Grasshopper mobile app is aimed at complete beginners.
2. The SoloLearn website and mobile app cover multiple programming languages.
3. Khan Academy has a nice collection of beginning to advanced material on JavaScript.
4. W3Schools is very clear, well organized, and covers JavaScript from basic through advanced topics.
5. This 400 page Kindle book by blogger Kirupa Chinnathambi covers a lot and explains things in detail:
JavaScript Absolute Beginner's Guide: No experience necessary!
6. This 700 page Kindle book helps you internalize JavaScript and see how the many pieces fit together:
Head First JavaScript Programming: A Brain-Friendly Guide
There are lots of good ways to learn JavaScript. So pick one, work through all the exercises, and have fun!
92 people found this helpful