Book Review: Head First HTML5 Programming 90
Michael J. Ross writes "Web designers and developers alike are increasingly enthused about the capabilities offered by HTML5, which is generally considered the combination of the latest version of the Web's primary markup language and its related technologies. Consequently, publishers have rushed to market a wide variety of books that purport to explore the inner mysteries of HTML5, even as the standards — and how browsers implement them — are still in flux. In characteristic fashion, O'Reilly Media took the time to wait for some of the dust to settle, and attempted to create a resource more approachable and solid than those thrown together quickly. The final result is Head First HTML5 Programming." Read on for the rest of Michael's review.
The release of this book is quite timely, given the current developments in web technologies. As one of the underpinning components, HyperText Markup Language (HTML) has undergone tremendous change during its two-decade history — with new element names and attributes being added to try to keep up with the latest multimedia formats, design techniques, and other factors in the Internet's evolution. Even though this newest major revision, HTML5, is still not completely supported by most browsers, much of its capabilities are already available, to one extent or another. Also, forward-thinking designers and developers are not waiting for the final blessing by the W3C to begin learning what they can do with it now and in the future.
Head First HTML5 Programming | |
author | Eric Freeman and Elisabeth Robson |
pages | 608 pages |
publisher | O'Reilly Media |
rating | 7/10 |
reviewer | Michael J. Ross |
ISBN | 978-1449390549 |
summary | A heavily-illustrated introduction to building web pages and web apps with HTML5. |
This book was written by Eric Freeman and Elisabeth Robson, both of whom possess a lot of experience with the subject matter. This title was released on 18 October 2011, under the ISBN 978-1449390549. Its considerable size, 608 pages, is partly due to the extensive use of humorous pictures, actors, scenarios, clever drawings, and a generous use of whitespace — characteristic of other titles in the Head First series. At first glance, these elements might seem like cartoonish gimmicks, meant only to boost the page count or keep graphics employees busy. Actually, these methods are intended to help readers retain the new knowledge, and make the learning process more pleasant. This approach is covered in more detail in the book's introduction.
The material is organized into ten chapters, followed by an appendix. The only technical prerequisite, for prospective readers to get the most out of the book, is a solid understanding of HTML and CSS. Some JavaScript knowledge would be helpful, but is not necessary. On the publisher's page, visitors will find more details about the book, a couple reader reviews, some brief author bios, links to purchase the print and electronic versions (PDF is the only format), and the reported errata (of which there are eight, as of this writing). The example code and other files for the book can be obtained from WickedlySmart.
The first chapter introduces HTML5, at a high level and a fast pace, focusing on the new features that it offers, such as the new JavaScript APIs: embedded video and audio (without the use of plug-ins), client-side data storage, off-line web apps and caching, geolocation, canvases, sockets, Web Workers, and advanced capabilities for forms and drag-and-drop. JavaScript is also introduced, with some simple example code. Much more detail is presented in the subsequent chapter. The only confusing point is, on page 53, when the authors state that there are three different ways to add JavaScript code to a web page, but the figure shows four permutations. The third chapter explains how to work with events and handlers, using a simple music playlist app to illustrate the ideas. In the subsequent chapter, functions and objects are explored in much greater detail, and the presentation is quite methodical and comprehensible.
With Chapter 5, "Geolocation," the authors shift from establishing a foundation of basic JavaScript knowledge, to showing how to apply it for constructing web applications. In the case of geolocation, readers are stepped through the process of building a simple web app that detects the user's current position, displays it on a Google map, and tracks any changes in the position. The next chapter shows how to make one's code work with web services, using the JavaScript communication APIs, and why JSONP bypasses the problems with XMLHttpRequest requests being blocked for security reasons by the JavaScript same-origin policy. The presentation is solid, except for the claim on page 257 that the callback receives an object, when actually it receives an array of objects. Chapter 7 explicates the new canvas element, which offers capabilities encroaching upon the realm of Adobe's Flash. The next chapter, titled "Video," is a logical continuation of the discussion on the canvas element, because the latter allows one to do a lot more with the video API. The authors demonstrate how to do that, after discussing the different video formats and techniques for writing robust HTML to accommodate as many brands and versions of browsers as possible.
HTML5 has taken the venerable browser cookie, and extended its storage capacity tremendously, in the form of the local storage API (a.k.a. "Web Storage"), which is addressed in the penultimate chapter. Sadly, no troubleshooting information is provided in case the reader finds that the example code does not work in Firefox, even when using a web server (i.e., "http://" instead of "file://") — and instead fails quietly with an error message "localStorage is null" in the JavaScript error console. (For those who are interested, one source of the problem is when the Firefox configuration preference "dom.storage.enabled" has somehow been set to "false.") The tenth and final chapter, "Web Workers," shows how to utilize multithreading in JavaScript code to improve its performance, when possible. Readers using Firefox 8.0 (the latest version as of this writing) will likely find that the example code does not work on a localhost, throwing a "Could not get domain" error message, as a result of a known bug. The appendix briefly covers ten additional topics not discussed in the chapters, including Modernizr, the audio element, jQuery, XHTML, SVG, and more.
With a book this size, it is inevitable that it will contain various blemishes. Some of them are a result of the book production process: In the text, JavaScript tokens are not distinguished from English words in any manner (such as a monospace font or bolding), which can trip up the reader. On some of the two-page spreads, the portions of the images and arrows get lost in the book's gutter. In the many illustrations involving one or more persons saying something, their statements are shown in thought bubbles, which is mildly but invariably disconcerting. Other flaws are results of the writing and/or editing: Commas are oftentimes used where semicolons or periods were called for, or just missing altogether — especially in the mock interviews. Sometimes the conversational style — characteristic of the Head First series — becomes a bit too casual, and in some places the authors are trying too hard, such as the repeated use of "skool."
The example code is generally of good quality, but not always consistent; for instance, is employed in some places, but elsewhere — leaving the reader to wonder why. Also, there's at least one case of (incorrect) curly quotes in the code (page 454). It is helpful to have the example code available for download, although it would have been decidedly better had the root directory of the archive file contain an index.html pointing to all of the included apps, so readers could bookmark that single starting point, rather than having to modify their browser's URL each time. In addition, it is oftentimes not obvious as to which chapter subdirectory corresponds to any given location in the book.
However, the main problem with this book is the sloppy editing, evidenced by the notably high number of errata: "pin point" (page xiv), "test editor" (xxii; should read "text editor"), "iPhone" (xxv; should read "HTML5" or something similar), "folks that" (xxxi; should read "folks who"), "get [a] sense" (1), "on the page 2" (3), "can you get a long way" (21), "assign it [the] empty" (26), "you can also thrown in" (40), "its got" (46), "Your job is the act like" (57), "lets concentrate" (58), "get [the] length" (68), "Go ahead an open up" (90), "What you can" (129; should read "What can you"), "a object" (142), "an new object" (147), "to to" (158), "you [are] saying" (158), "users location" (166), "south" (167), "three properties" (177; should read "four properties"), "google" (186), "including [the] last two methods" (192), "give it a try it" (218), "will use" (220; should read "we'll use"), "take a 90 milliseconds" (221), "the this code" (249), "with out with" (268), "HTML =" (271; should read "HTML5 ="), and "an drawable region" (285). These are just the errata found in the first half of the book. Fortunately, they are in the narrative, and not the example code, which would have had a much more negative impact upon the reader.
This book is definitely an introductory tutorial, and by no means a reference. Not all of the new HTML5 elements are covered, nor is CSS3 provided full coverage. The repetition of concepts may aggravate experienced or impatient programmers: For people with some experience with these technologies, and for people who readily glean information from technical books upon first exposure to the given concept, the frequent repetition in this book would border on tiresome, if it weren't presented so pleasantly, oftentimes with humor. On the other hand, the Head First books are predicated on the approach of presenting information in different formats, to maximize learning. Any newbie should appreciate this volume's clear explanations, even if they are presented multiple times, but differently. Also, there is plenty of testing of one's knowledge, to reinforce what has been learned.
Head First HTML5 Programming is an entertaining yet instructive and compelling tutorial on how beginners can learn to use many of the advanced new techniques in HTML, CSS, and JavaScript.
Michael J. Ross is a freelance web developer and writer.
You can purchase Head First HTML5 Programming from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Honest question (Score:4, Interesting)
How many people here still purchase physical computer programming books? I can understand doing so for high-level concepts, where you'd expect to read the book from beginning to end, but for tutorials or reference material, why wouldn't you just look it up online for free? I can't really picture myself sitting down and reading a physical book about HTML5.
Re:Honest question (Score:5, Insightful)
Probably not for something like HTML, no. But for a new language, I'll pick up a book. Books will often be better constructed than online tutorials. YMMV of course.
I've always liked The Head First series in particular for some things. Especially for exposing someone who is new to a language or concept. The series is very novel and always reminded me of the "hers's how to do something fun" approach that the BASIC programming books I cut my teeth on had.
Is it any good for an experienced Java Programmer who wants to pick up C# or Objective C quickly? No. But they absolutely have their place.
Re: (Score:2)
Re: (Score:2, Troll)
Re: (Score:1)
Well you should not. Always read the fucking manual, even if it has 800 pages. If you are really experienced, as you says you are, you should have about one deep insight about programming per quality book that you almost know all the material. If the topics is further from your usual domains, evidently you will learn more.
To select a good tech book, use your experience to evaluate it's usefulness by looking table of content on amazon.
Re:Honest question (Score:5, Interesting)
I forgot to explain why reading offline is better than reading the same material on a computer. It is a better way because it forces single-tasking and we all should know by now that the brain is pathetic at context switch. To learn more about why multitasking is bad, I recommend this blog post [writingfordigital.com]and the linked studies at the bottom.
Re: (Score:2)
i went to go read about this and before I could change context from slashdot a youtube caught my attention ... and is that a shiny thing?
Re: (Score:1)
I have to second that, and I've found myself almost instinctually spreading myself across multiple tasks whenever I'm on a computer. I have a few kindle books that have a viewer for on my computer, and I find the habit of doing other things while on the console gets in the way...
I'm reverting back to books.
Re: (Score:2)
I wouldn't say that. If anything, HeadFirst books are awesome for experienced programmers learning something that's outside their usual comfort zone, because they trick you into reading useful things that you'd otherwise be inclined to yawn and skip over (missing something important in the process).
I don't know about you, but when I get home from work on most days, I'm fairly burnt and fried. I need a certain degree of entertainment and engagement, and a dry textbook about some programming (or other) topic
Re: (Score:2)
I will try one of them then, I was put off by the Head first on design pattern that collect dust in my gf bookcase but I it is in my comfort zone as I could write a boring book, an assured commercial flop, on the over usage of those patterns in at wrong place by the cargo-cult programmers.
A sad day (Score:2)
I'm off books completely. I just use people's code snippets and tutorials. I understand programming at this point so all I'm really picking up is syntax and idiosyncracies.
“You don't have to burn books to destroy a culture. Just get people to stop reading them.” Ray Bradbury
Re: (Score:2, Informative)
How many people here still purchase physical computer programming books?
I don't know how many people here buy them, but College students do buy those kind of books. At least, me and a lot of my classmates bought some books. You can read them in the train, in bed, etc... and although I never write in my books, I know of some people that make lots of comments in them...
When I was in College people didn't have tablets, but even so, a tablet can get stolen on a train really easy. I highly doubt that someone would steal a book.
Re: (Score:1)
**AA begs to differ
Re:Honest question (Score:5, Insightful)
I still have my physical tech book addiction because I'm not online 24/7 like most others. Hell, I don't even have an internet connection at home, which means a lot of "online learning" is right out the window. Furthermore, I can lounge read a lot of books, while sitting on the can, lounging on the couch, or laying in bed. While I might not be "typing in code" examples, I can definitely read through references, APIs, code examples and what not and file that away mentally for later. Not to mention, dog-ears, writing out notes in margins, highlighting, etc, are MUCH easier on my physical books than anything I've found digitally. I'm not 100% attached, however, as tablet technology is getting closer to what I want in an e-learning experience, but we're still a couple gens out from a "I would use this" standpoint. YMMV.
As for "why wouldn't you just look it up online for free?" Jesus christ, there's a ton of absolute SHIT sites out there with shitty code that may or may not work. While books aren't immune to it, I would think with an actual editoral process and some peer review, this is much less of an issue than some of the shit out there that is waved around as some sort of best practices of morons.
Re: (Score:2)
I don't even have an internet connection at home
Well unless your workplace is a lot more liberal than mine, you must miss out on a huge amount of the fun stuff then.
Quality available online or off (Score:2)
While books aren't immune to it, I would think with an actual editoral process and some peer review, this is much less of an issue than some of the shit out there that is waved around as some sort of best practices of morons.
I've seen some pretty shockingly written and edited books. If you don't take the time to find quality material, you get random rubbish. That is as true of books as online content. The real advantage to the online content is chances are you're not the first to run into a bug, and chances are the book was written before that bug was discovered. Searching for errors is well worth it. And for pity sake get online. It's not 1980. Internet shouldn't be considered optional for a programmer.
Re: (Score:1)
Re: (Score:2)
Does it count as physical if it's an e-book? I just bought a Javascript book for the Kindle app. It's nice to have a complete reference in one place.
Re: (Score:1)
Obviously not, since the delineating factor of physical is not being digital.
Re: (Score:2)
But the way he stated sounded more like just a book, in any form, as opposed to finding stuff on blogs or web pages.
Re: (Score:2)
I like having books by authors of libraries, languages, and applications that are open source. They are good for reference and at the same time help support projects.
Re: (Score:1)
Re: (Score:1)
Barnes & Noble is to Borders as Amazon is to Blockbuster...
Re: (Score:2)
I would not buy this book for myself but I can think of a couple of persons for whom it might be a good Christmas present. These are persons who have told me they are interested in learning how to make web pages but don't know what they are doing yet. One of them tried to take on managing a Joomla web site last year. I think she's still sane.
A hardcopy book like this can work well for this kind of newbie. They are going to be stretching their minds just to handle having a tab open on an HTML reference, an
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Never used an ebook reader, have you? With 3-4 weeks of life on an easily replaceable battery, that isn't much of a concern.
Bollocks, I went on a two week holiday this summer, I had to charge my ebook reader twice, and at the third attempt the (non-easily-replaceable) battery was dead, so I was left with nothing to read.
Re: (Score:2)
Re: (Score:1)
Precious few online resources are thorough and well organized, and for the most part there aren't any reviews of these resources to warn me of the ones that will waste my time. And some of them are just plain wrong.
Re: (Score:1)
Re: (Score:1)
Re: (Score:2)
I find that if I don't get a book, I often don't know what I don't know. Tutorials and examples usually just deal with one little facet of a technology. So if I found a tutorial on the HTML5 canvas, I likely wouldn't know about local storage, and vice versa. Maybe it's just me, but I tend to wind up with fragmented knowledge of a topic if I don't have some kind of reference that covers the whole topic at some depth. I do use online tutorial and examples a lot, but if I really want to know something, I s
Re:I don't get it (Score:4, Informative)
How can there be a book on HTML 5 when it isn't even a finished specification yet? This book is a waste. At any moment the spec can change drastically and render this book useless. I'm sure half of it is just hacks to get it to render the same HTML 5 and CSS3 content across FF, Chrome, IE and Opera since they all have their own versions of HTML5.
There is enough that won't be changing - conceptually and literally - to warrant a thorough treatment of HTML5; however, I doubt it is worth the cost of this book given the volume of people writing about it for free on the intertubes. And for the truly masochistic, there is always w3c.org, where you can read the entire specification for free.
As for how browsers interpret the standard, that probably changes faster than the specification itself, so one is better off looking to quirksmode, et al, for how browsers handle various elements of HTML and CSS. Or better yet, just experiment with it.
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I see cleavage. Very odd for a book on HTML5.
Re:Strange animal (Score:4, Funny)
Re: (Score:1)
Re: (Score:2)
Re: clevage
Lots of porn sites out there.
Whether HTML5 is a poon or a bust for them remains to be seen.
What?
Re: (Score:2)
Re:Strange animal (Score:5, Funny)
It's the Doe-eyed Blondasaurus.
Re: (Score:1)
Sloppy editing indeed (Score:4, Insightful)
"The example code is generally of good quality, but not always consistent; for instance, is employed in some places, but elsewhere — leaving the reader to wonder why."
What?
Re: (Score:2)
Slashdot eating < and > as usual.
Re: (Score:2)
When?
Re: (Score:1)
What good does an introductory do? (Score:4, Insightful)
You know, I just read my comment... (Score:2)
Re: (Score:1)
So the animal kingdom has expanded to include hot- (Score:1)
And lo ! (Score:4, Insightful)
Re: (Score:2)
Um, this stuff peaked in, like, 1998. It's actually kind of dying out, now. Like bookstores.
The idea of putting a hot chick on the cover instead of some smirking nerd is new. At least the marketing department hired someone with a clue.
Re: (Score:2)
At least the marketing department hired someone with a clue
a moron you mean. makes the cover less trustworthy.
Re: (Score:1)
Yeah, everyone knows women can't program. Or wait, was that drive cars?
Well, I know for sure they can't do both at the same time. Morons.
Re: (Score:1)
Hey, bullshit keeps us employed. Embrace the drippage.
hopefully online updates for a couple years (Score:5)
Re: (Score:2)
> even as the standards â" and how browsers implement them â" are still in flux
HTML5 won't be done until 2022, apparently:
http://www.techrepublic.com/blog/programming-and-development/html-5-editor-ian-hickson-discusses-features-pain-points-adoption-rate-and-more/718 [techrepublic.com]
-----
This may look ridiculous *(2003 to 2022 is 19 years!), but itâ(TM)s worth considering how this compares to HTML4, DOM2 HTML, and XHTML1, the three specifications that HTML5 is intended to update and replace.
-----
*Yep.
So ple
Re: (Score:2)
That angle.... (Score:3)
Re: (Score:1)
Ah the Bleeding Edge! =) (Score:2)
Why get something complete and orderly when you can be second to market and still sloppy as a hog's trough?
Still, be at least a year until I decide to stick my nose into an HTML5 book and I'll probably know quite a bit about it before then with one ineffiecient foray into developers forums after another. But this guy contricts that girl and neither one of them actually address why this happens (or does not happen) ...
Reminds me of early days of Java, when everyone was and idiot, just some were better at it
Those silly covers (Score:5, Funny)
Around here if you ask about a Head First book (some of them aren't bad) everyone looks at you blankly. Ask for the Hot Teen book and it's "Oh!"
I guess that's successful branding... of a sort?
But they're embarrassing as hell to be caught with on your desk. "It's about programming! It's a technical book! I swear!"
Cute girl on cover. Sold! (Score:3)
I'm sure the perspective shot of the cute girl on the cover will sell a few copies at the local bookstore (and probably a few on Amazon, too). But from reading the review, I can't see anything about the content that looks more valuable than a printout of the W3C standards documents [w3.org].
Re: (Score:1)
ADHD layout (Score:1)
"HTML5 Programming"? (Score:2)
Re: (Score:1)
Parent said:
"Get off my lawn!"
I am afraid you have not kept up with XMLHttpRequest and the whole scripting activities currently involved in developing a modern website. It is even said that website development is so complex nowadays[citation needed] that separate professional functions have to divide up the work: designers, programmers, testers, moderators and, of course, trolls.
I too long for the good ol' days of websites being displayed equally "beautifully" in NCSA's Mosaic or ISC's Lynx. STOP vomiting flashing text, anim
Re: (Score:2)
"It is even said" -- My kind of reliable reference....
BTW, how do you do interactive vector graphics in HTML5?
Re: (Score:1)
Re: (Score:2)
crazy pricing (Score:1)
The best html5 + api overview out there so far. (Score:5, Interesting)
I see a lot of naysaying here, and I respectfully disagree. In general, I've been really turned off by the Head First Series (I tend to think the style is annoying), but this book is better than the rest and is probably one of the best high-level overviews of html5+javascript+css3 that I've seen in one book. note: I have nothing to do with the authors or the publisher -- I just liked this one.
For one thing, this is the book in the series that finally gets the point that Javascript is the heart of web interactivity. It doesn't shy away from plenty of Javascript code and it isn't lazy about asking you to write copious amounts of it. If you are a javascript expert, you probably won't be challenged, but you can skip the rudimentary parts and get to the modern browser features and related apis.
Secondly it gets you through a lot of topics like location-awareness (including the google maps api), 2d canvas rendering, local storage and a few other topics that aren't usually covered together but make a great overview of the current state of browser capabilities. Its not easy to get that in one place.
I've tried to get overviews elsewhere -- I have been through a bunch of the oreilly series, online documentation, master class videos etc, and I personally think this is the best basic high-level overview of basic web programming for the browser right now. Is it telling you to use backbone? Is it pushing Coffescript, Dart or the other fringe technologies? No -- just the basics, but it does a good job of it. Its not for everyone, but it is a great choice for folks who want a good, easy-going overview..
I had to put a good word in, because I really liked this one and I like to encourage good tutoral writing -- something that is increasingly hard to find these days (I'd rather see tutorials than cookbooks, blotchy docs or 1-page quickstarts of copy-paste code with a link to api docs). Tree-killing aside, I even liked that it was printed on paper - it seemed like an old-school workbook and I'm not ashamed to say that I enjoyed scribbling in its puzzles and zipping through its pages over a few days over Thanksgiving week.
The Accessibility Elephant (Score:2)
JavaScript tokens (Score:1)