HTML & CSS: Design and Build Websites
This book is another reason it was beneficial to wait to learn HTML and CSS, not that I should have waited. I have never experienced a technical book like this before. Jon Duckett did an incredibly masterful job presenting these languages in a way that the reader can absorb quickly and easily. It's a full-color layout with beautifully structured pages that detail all of the important HTML tags and CSS attributes, giving clear examples of each tag or attribute throughout the chapter and then a longer, fully working example at the end of each chapter.
After seeing a book done like this, it now seems painfully obvious that this is the way a book on HTML and CSS should be done. Why wouldn't a book on the languages of the web be in full color with an engaging layout and clear, no-nonsense coverage of the topics? Why wouldn't it be visual? The only way it could have been better is if it was interactive, essentially an impossibility for a printed book. It was an absolute pleasure to read, and it was as if the content was being absorbed directly into my brain through my eyeballs. I ended up finishing the whole book in a matter of hours. When I was finished, I couldn't believe I had waited this long to learn HTML and CSS. These languages were so straightforward, and this book made them ridiculously easy to learn.
Of course, because the book is full of such visually rich content, it's really impossible to give it justice with words. Here are a couple pictures to give you an idea of how well done it is. Mentally compare them with every other technical book you've read.
The content is so well presented and engaging that the reader can't help but quickly absorb everything. Really, this is the way it should be done! Go out and get your own. Highly recommended.
HTML5: The Missing Manual
I actually had read this book before HTML & CSS: Design and Build Websites, which could be good or bad, depending on how you look at it. It was good for this post because I can do an actual face-off between two HTML books. It wasn't so good for my leisure time because I wasted some of it reading a book I never would have finished, had I read the other one first.
I went on a bit of a rant last week about a comment that was made in this book about recursion. That was definitely not the defining weakness of this book, only a minor infraction as this book is not about programming techniques. However, it is a fairly characteristic example of the larger issues I have with this book.
Matthew MacDonald does start out rather well. His initial narrative about HTML5 is quite interesting, and it kept me engaged for a couple chapters. He is a decent writer. After the first couple chapters, though, I started to wonder who this book was really written for. He specifically made the point of telling the reader that he expected you to already know HTML and CSS prior to HTML5 so he would only be covering the new features. Okay, fine, I could deal with that, but by chapter 4 he had pretty much covered the new tags in HTML5 so he moved on to validating web forms and embedding audio and video in websites.
One last problem with this book is how quickly it will be hopelessly out-of-date, if it isn't already. The various browser manufacturers are implementing HTML5 features as fast as they can, and most features are already done in Firefox, Chrome, and Opera. Most of the book's content was about how to handle features that were not yet available in one or more browsers, but that time is quickly coming to an end. That will leave a lot of content largely irrelevant. Basically this is a book that no one needs.
Internet Explorer: The Missing Features
If you noticed, I didn't include Internet Explorer in the list of browsers that implement most of HTML5's new features. That wasn't an oversight. If you're using Internet Explorer 10 on Windows 8, you're in better shape, but that's not a lot of users. One thing these two books both make quite clear is that Internet Explorer is different than other browsers, and not in a good way. Microsoft does so many thing differently with the way Internet Explorer handles HTML and CSS that if it wasn't included with Windows, it's obvious that no one would use it. If the chronic incompatibilities are not intentional, then they're at least embarrassing. Though I suspect the former.
Beyond the slow and distorted feature adoption, Internet Explorer is also living in the dark ages of browser revisions. Firefox and Chrome long ago moved to the continuous model of browser updates, so every time you restart your browser, it could be updated to the newest released version (not sure about Opera, since I don't use it). This is great for both users and developers. Users don't have to think about updating their software anymore, and developers can assume that users are always on the latest version. Especially for a piece of software that needs to be connected to the internet to work, that makes a whole lot of sense. With Internet Explorer's antiquated update model, it could take more than a year for users to transition to a new version, longer with IE 10 because it needs Windows 8. That's an eternity on the web!
You Should Learn HTML and CSS