Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Image

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.
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.
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.

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.

*

This discussion has been archived. No new comments can be posted.

Book Review: Head First HTML5 Programming

Comments Filter:
  • Honest question (Score:4, Interesting)

    by bonch ( 38532 ) on Monday December 05, 2011 @05:18PM (#38272800)

    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)

      by PyroMosh ( 287149 ) on Monday December 05, 2011 @05:24PM (#38272884) Homepage

      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.

      • I wouldn't buy for references, code examples of such, but for higher level concepts. Game developing, DirectX and 3D stuff, maybe for some language as a whole. You get the whole package and it's consistent read. When problems come you can google, but it's not the same way when learning.
    • Re: (Score:2, Troll)

      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.
      • 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)

          by JonySuede ( 1908576 ) on Monday December 05, 2011 @06:08PM (#38273548) Journal

          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.

          • 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?

          • 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.

      • 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)

      by Anonymous Coward

      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.

      • by Anonymous Coward

        **AA begs to differ

    • Re:Honest question (Score:5, Insightful)

      by Anonymous Coward on Monday December 05, 2011 @05:42PM (#38273154)

      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.

      • 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.

      • 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.

        • Yeah finding bugs in books after they go to print is a real bummer for the author, believe me. Now that people are moving more to eBooks and PDF that will be easier to resolve since they can get fairly quick updates with fixes. And Head First is particularly difficult to edit because they are designed and made in In Design, which makes things like spell checking much more difficult; in fact editing those books is a monumental task. Not trying excuse the errors, but just pointing out it's hard to make an
    • 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.

    • 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.

    • obvisouly a lot of people do this, ever hear of barnes and noble?
    • 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

    • by Corson ( 746347 )
      No online help writer will take the time required to explain extensively and in detail how to do something, be it programming or not. The reason is obvious: it takes time and effort to put everything together. Unless they can find a way to sell it to you online, it will be in a printed book. And even in electronic format most people will prefer to print it, if possible. You get a better resolution on a printed page than on a screen.
    • 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.

    • Depends how your learn. Some people actually enjoy paging through a book, writing notes in the margins, flipping back to a previous page to review a diagram, whatever. A (good) book presumably has a qualified author, editor, and reviewers. They've put time and effort into explaining material clearly. You can check reviews on Amazon or wherever to get an idea if the book would be a good "fit" for you. There are so many websites with so much information, it can be hard to know which ones are best or even
    • This book is available in PDF, so you can transfer to your device and read that way (although admittedly, the Head First format doesn't work that well on smaller screens). That said, this book is designed for learners to read through, in order, and follow along with the exercises, etc. It's NOT a reference book. So that makes it work better in print than digitally. I agree with you; for a reference book, nothing beats digital.
    • 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

  • by loteck ( 533317 ) on Monday December 05, 2011 @05:21PM (#38272850) Homepage

    "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?

  • by rsilvergun ( 571051 ) on Monday December 05, 2011 @05:22PM (#38272856)
    there's tonnes of great tutorials online for the major new HTML5 stuff. OTOH, I'd like to see some programming books for HTML5/JavaScript that are bent towards beginners. You can do a lot of cool stuff quick with HTML5 that takes weeks to learn with Java (or months with C/C++).
    • and realized how silly it was, since it sounds like I'm contradicting myself. What I mean is, instead of trying to introduce a programmer to HTML5 (which the Internet does all by itself), introduce people to programming with HTML5 + JavaScript, especially kids. The hard part about learning programming is it can be weeks until you're doing anything really cool. With HTML, you can sorta cut to the case. I'd like to see beginning programming taught more as problem solving with logic then syntax. That's sorta b
      • I know several people who are teaching (or have taught) their kids HTML & CSS with Head First HTML with CSS, and are now teaching their kids HTML5 with our new book. Hopefully I'll get some reports back about how it's going soon!
  • And lo ! (Score:4, Insightful)

    by unity100 ( 970058 ) on Monday December 05, 2011 @05:34PM (#38273030) Homepage Journal
    Moneymaking over 'the new' thing starts. Before even HTML5 specification being completed even. This 'sell books, seminars over any possible shit in i.t.' has gotten out of hand.
    • by blair1q ( 305137 )

      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.

      • At least the marketing department hired someone with a clue

        a moron you mean. makes the cover less trustworthy.

        • 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.

    • by Tablizer ( 95088 )

      Hey, bullshit keeps us employed. Embrace the drippage.

  • by peter303 ( 12292 ) on Monday December 05, 2011 @05:36PM (#38273052)
    The really interesting parts of hmtl5, the multimedia capabilities, are in a high state of flux now with more capabilities added every week.
  • by antifoidulus ( 807088 ) on Monday December 05, 2011 @05:37PM (#38273060) Homepage Journal
    Is it just me or do all the book covers from the "head first" series look like they were taken by a peeping tom taking cell phone pictures on an escalator?
    • by Anonymous Coward
      There is something strange about the word "head" and a blonde girl that seems very much like it is marketing to males aged 25-60...
  • 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

  • by Sarusa ( 104047 ) on Monday December 05, 2011 @05:52PM (#38273274)

    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!"

  • by Curunir_wolf ( 588405 ) on Monday December 05, 2011 @05:53PM (#38273308) Homepage Journal

    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].

    • Well, it's a book designed to help people learn. The standards docs (IMO) are best for reference, and not so great for learning if you're a beginner. I'd venture to guess that most people on /. are already programming experts, and so of course Head First is not appropriate for them.
  • I have tried several subjects from the Head First series, but I can't get more then 10-15 pages before I give up and get a book that doesn't look like a crack addict laid out the pages. Luckily I was using Safaribooks online so I didn't have to pay any money, perks of working at a University.
  • Writing HTML5 code is programming as much as Postscript is programming: they are both descriptive languages. Try telling people who do CFD or weather modeling in Fortran 2008 that you do "HTML5 Programming"; I would love to see their reaction.
    • by phyzz ( 629973 )

      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

      • by Corson ( 746347 )
        "the whole scripting activities" -- Yes, that is my problem, I prefer "good ol' native code" over scripts, you know, just like in iPad/iPhone apps.

        "It is even said" -- My kind of reliable reference....

        BTW, how do you do interactive vector graphics in HTML5?

        • HTML5 has native embedded SVG now, which can be manipulated with Javascript. It's not as functional as Flash (yet), but it is possible.
          • by Corson ( 746347 )
            I know! And I can't wait for full browser SVG support! I briefly developed applets in SVG several years ago and then I reluctantly switched to Flash due to lack of native SVG support in Web browsers.
  • I know the publisher likes to sell at list price, but I can but the hard copy with free shipping for another $4 or so. And shipping to Canada from O'Reilly would be an additional $12.00. An ebook for 27.99? A little lower please.
  • by puppetluva ( 46903 ) on Monday December 05, 2011 @11:33PM (#38276328)

    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.

  • Does the book say anything, anything at all, about Accessibility? Might be nice, for a change.
  • "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." We did try to change the font of all the JavaScript tokens that are mixed in with the main text (so they are in a code-like font), so I'm not sure why Michael didn't notice that; perhaps it didn't come through in the PDF? Or we missed a few? If you notice them, please do submit errata (*much* appreciated). Thanks...

"The vast majority of successful major crimes against property are perpetrated by individuals abusing positions of trust." -- Lawrence Dalzell

Working...