Copyright Year: 2014
ISBN 13: 9781593275846
Publisher: No Starch Press
Conditions of Use
As stated earlier, this book is inconsistent in its skill level. Instructors can likely adapt to this (as I have) by picking and choosing which chapters or selections to assign to students. Another strategy for managing the inconsistency is by paying attention to the short, useful chapter summaries at the end of each chapter.
Each chapter is a consistent (and appropriate) length. Each chapter has consistent, well-organized subheadings. It's easy to assign chapters or sections to students.
The organization of the text obeys its own internal logic, even if it is not the logical series of topics that I use in my class. The book starts with values, operators, and variables, then functions, etc. HTML, web browsers, and HTTP isn't discussed until halfway through the book. This differs from my course, where I discuss the web at the beginning. As long as instructors are up-front about this editorial decision, it won't throw off students very much.
The web and print version of this book are both beautiful. The web version is readable and even elegant. The example interface works like a true browser console (even better, in fact), and is a valuable tool. The print version is sturdy; the weight is perfect and the paper stock is smooth but durable. As of this review, I have not seen the e-book version.
This book is well written with both beginners and intermediary programmers in mind. It does not assume any previous computer science or programming experience and gradually builds on core concepts with each new chapter. New concepts and skillsets are introduced through references to the real world, which is crucial for beginning coders. Any sections that focus on terms or "jargon" are left for the later units, and chapters in those sections still make an effort to draw connections back to previous subjects and examples.
The book does an excellent job of tying together examples and concepts across all units in the text.
The organization of material, concepts, and larger units are well thought out and presented.
The textbook, particularly the interactive web version, is well designed and includes interactive code blocks where readers can edit and run the code directly inline with the text.
No grammatical issues were found in either the written text or the code examples.
This book includes multiple translation options through its web version, providing a contemporary resource to web development for non-English speakers.
Every topic in the book is discussed accurately and appears error-free. Moreover, most of the code attached to the book is well-indented and contains comments that increase its readability. In addition to being accurate and well-formatted, the code can be executed without any issues. The book is primarily available in many digital formats and the author appears to be very active and attentive in regard to fixing inaccuracies. Moreover, the website associated with the book contains a section that lists the errata and corrections for previous (printed) editions.
The book introduces and explains concepts concisely albeit very clearly. In addition to the multiple examples given every time a new argument is presented, the author included images that help grasp topics, though a richer use of figures would help. The presence of scripts and code snippets for almost every topic discussed in the book helps understand the theory and provides the reader with a boilerplate that can be utilized to get started and tinker with the tangible application of each concept. Furthermore, the author included complete projects, which create a framework that help realize how all the pieces come together.
The modular organization of the book makes it easy to jump to a specific chapter and topic when needed, as topics have very little dependencies. Despite requiring knowledge of the basic aspects, every concept is designed as self-contained and, simultaneously, it is well-link to other arguments. As a result, the book is a great resource for the novice as well as for expert programmers.
The structure of the book is consistent with the way programming languages are typically taught, and the organization of the chapters helps the reader absorb concepts and use them as building blocks. Numerous internal references help readers navigate the content and jump to definitions, when needed.
The text is free of significant interface issues, including navigation problems, distortion of images/charts, and any other display features that may distract or confuse the reader. The book structure is clear and easy to navigate, and the text does not contain any interface issues or elements that might distract the reader. Images are relevant, clear, and well organized, though they could be organized better. The source code lacks syntax highlighting, which could improve code readability and, thus, increase the overall usability of the book. However, this is a minor flaw considering the abundance of online resources associated with the book.
I didn’t find any grammatical errors or typos in the book.
The textbook describes concepts in a clear, straight-forward manner. This text is very readable, and the language approachable for a beginning programming student. The examples that are given illustrate the programming concepts lucidly. For example, Chapter 14 on the Document Object Model (DOM), the author gives the Hypertext Markup Language (HTML) for a simple web page, and then presents a diagram depicting how the HTML content is represented by the DOM.
This textbook is consistent throughout in regards to terminology and general formatting. When multiple terms are used to describe the same concept, the author makes it clear that the two terms are interchangeable. This is helpful, and makes the terminology clearer for beginning students.
The text is logically organized, with the programming concepts building on one another like most standard software development textbooks. Each chapter is structured so that the exercises at the end of the chapter reinforce the chapter concepts. In addition, the author uses projects at intervals throughout the book to illustrate the concepts.
The table of contents is accurate and the hyperlinks work well to direct the reader to the correct chapter. The diagrams and code are easy to read and free of distortions.
I found no grammar errors in this textbook.
The book is written in standard English. The examples used to illustrate the coding concepts appear to be culturally neutral. The book seem like it would appeal to most readers, and the language was inoffensive.
The book is very accurate. The author's explanations and descriptions are thorough and correct.
This book was copyrighted in 2014 and is based on ECMAScript version 5. ECMAScript 6 was released in 2015 so the book is slightly out of date.
The writing is lucid and includes some nice humor. Concepts are broken down and explained clearly and in a way that is accessible to readers without prior programming experience.
The books parts, chapters and sub-sections are divided logically and while the topics build on one another each section is well organized and cohesive.
The book follows a fairly typical organization for a book on programming, stating with procedural concepts, then introducing functions, then objects. Chapter length projects are interspersed at regular intervals throughout the book to illustrate the concepts that have been presented.
The book has a detailed table of contents and index with accurate page numbers. Diagrams and illustrations are clear and well done.
I did not detect any grammar errors. The English is standard and does not reflect any regional dialect.
Table of Contents
Part 1: Language
- 1 Values, Types, and Operators
- 2 Program Structure
- 3 Functions
- 4 Data Structures: Object and Arrays
- 5 Higher-Order Functions
- 6 The Secret Life of Objects
- 7 Project: A Robot
- 8 Bugs and Errors
- 9 Regular Expressions
- 10 Modules
- 11 Asynchronous Programming
- 12 Project: A Programming Language
Part 2: Browser
- 14 The Document Object Model
- 15 Handling Events
- 16 Project: A Platform Game
- 17 Drawing on Canvas
- 18 HTTP and Forms
- 19 Project: A Pixel Art Editor
Part 3: Node
- 20 Node.js
- 21 Project: Skill-Sharing Website
- Exercise Hints
About the Book
About the Contributors