Top positive review
Reviewed in the United States on October 25, 2017
For the last two years, I have been struggling with learning to code. This was due to a mix of having a busy schedule that hasn't always been conducive to learning code in my spare time, along with having cobbled together a number of tutorials online and never coming out of any of them feeling like I truly understood the concepts.
I had ignored this book for a while now despite seeing it recommended now and again. It seemed juvenile in its approach. Instead I attempted to jump straight into more advanced books, always having to stop reading them after a few chapters because concepts weren't sinking in. Finally, after putting down code for half a year and realizing I'd forgotten nearly everything, I decided to pick up this book.
I honestly wish I had purchased this two years ago. This book does a wonderful job at explaining concepts as simple as how to assign a variable and as advanced as closures and object prototypes. The conversational approach to this book means that when you're first starting out, you don't have to waste time attempting to interpret an extremely technical explanation of concepts, as I found with this book I understood almost straight away in most cases.
The book's difficulty level does ramp up around the time the Battleship game is built in chapter 8. (By the way, this chapter does a great job of introducing MVCs without actually having you use one that's pre-built.) Therefore I would even recommend this book to intermediate learners if they have had trouble truly understanding advanced object construction, closures, how to use prototypes - essentially everything chapter 8 onward.
The exercises in this book also give good practice to solidify what you're learning.
What this book doesn't cover, or only lightly touches upon:
(1) Writing complex algorithms. The book's focus is on getting a good understanding of concepts, not on working through challenges that require much algorithmic thinking. (Unless you want to build Battleship on your own in chapter 8.) A supplemental resource would be necessary for this.
(3) Making API calls.
(5) Anything else that is seen in chapter 14 ("Top 10 Topics We Didn't Cover").
Overall I strongly recommend this book. Like any resource, it should not be the only thing you use to teach yourself to code. However, it is a great starting resource for beginners as well as a supplemental resource for anyone who has the basics down but needs to clarify some of the more complex concepts later in the book.