Deciding when and how to teach HTML5 is perhaps the most significant challenge facing web development in formal education. Whether you are learning in a classroom, online, or from books, determining which technology to tackle first is something everyone interested in web development must decide as a matter of course.

Right now web development is divided between two different versions of HTML: XHTML (traditional, established, well-supported) and HTML5 (new, hot, and under development). As modern human beings tend to be in love with the new, a lot of people jump directly into HTML5.

In my opinion if you intend to work in the web development industry you’re probably best served learning XHTML first and progress into HTML5 later, at least for now. My rationale rests on seven foundational principles:

  • I find that people respond better to the relatively strict rules, structure and predictable nature of XHTML vs. the more forgiving, free-form, anything-goes syntax of HTML5.
  • Learning XHTML first allows one to branch out and explore other strictly XML-based technologies such as and RSS, a task that will be made much more difficult if you only know the relative looseness of HTML5.
  • HTML5 is still up in the air as a spec. While the rate of alteration has slowed since the spec has entered Candidate Recommendation status at the W3C, changes are still occurring frequently. Learning is made more difficult by shifting sands, whereas the bedrock of XHTML provides a solid foundation of knowledge.
  • Perhaps more importantly, no browser currently supports the entire HTML5 spec. Learning something like the new HTML carries the massive proviso of “no browser understands this stuff completely”, which can be difficult for novices to appreciate or understand.
  • In my experience XHTML is also an easier context in which to learn the principles of ; ARIA roles offer a useful bridge between XHTML & HTML5.
  • A good deal of work over the next few years will be translating XHTML pages from older sites into HTML5. To do so effectively, developers need to know both languages, and it is easier to progress from XHTML to HTML5 than the reverse.
  • HTML5 is not HTML5. Many beginners assume that HTML5 (the markup language) contains features it does not, such as and Geolocation. This leads to frustration and “leapfrogging” (appreciating just the part of a technology that solves an immediate problem, rather than understanding all of it).

It’s important to note that this course of action is only applicable to those who desire a career in web development: if you’re only interested in making a website for yourself, you should feel free to go straight to HTML5 or jump into a CMS such as SquareSpace orWordPress. That’s the difference between occupation, craft, and play. It’s also advice that is open to change: in 2015, after the HTML5 spec becomes a W3C Recommendation and IE7 and 8 are dim memories, my advice may well change.

If you have a differing point of view, feel free to share it in the comments section below!