Book Review: Head First HTML5 Programming

You can’t read about modern web development without hearing something about HTML5. It is a term that covers not only the next version of the HTML markup language, but a broad array of facilities exposed as JavaScript API’s. Eric Freeman and Elisabeth Robson’s new book Head First HTML5 Programming approaches HTML5 from this point of view, and uses the friendly, pictorial style of their highly successful Head First Design Patterns.

You’ll need an understanding of HTML and CSS before you dive in. This book assumes that you have those technologies under your belt, and starts right in with JavaScript. The first four chapters of the book are a good introduction to JavaScript, the web browser Document Object Model (DOM), event handling and objects. This ensures that you’ll have the level of JavaScript knowledge necessary for the chapters to come. And you will need it. In the remaining six chapters, the book covers the use of Geolocation, AJAX with JSON, including JSONP, the Canvas tag, the video tag, the various Web Storage API’s, and Web Workers. Each chapter teaches you about its subject material by building a decent size application in JavaScript. I think that seeing how an application will use a feature is the best way to really learn about it.   

If you’ve been wondering about the new features in HTML5, this book is a good introduction. The authors have stuck to the parts of HTML5 that are pretty well defined, and stayed away from those parts of the standard that are still changing. The Head First style presents you with the material from many different angles, which helps to make sure that your brain holds onto it.

One of my daughters is interested in web programming. She needs just a little more CSS learning and then she’ll be ready to step up to dynamic HTML / HTML5. When she is, I’ll be handing her a copy of this book.

Disclosure: Both the authors of Head First HTML5 are friends, and Eric Freeman used to be my boss at Disney.

Leave a Reply

Your email address will not be published. Required fields are marked *