Deciding when and how to learn HTML 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.
Web development started with the earliest version of HTML, which rapidly evolved into XHTML, its first true specification. More recently, it has been replaced by HTML5, with which it shares a common ancestry while taking a quite different approach. As human beings tend to be in love with the new, a lot of people jump directly into HTML5.
In my opinion if you have time you’re probably best served learning XHTML first, progressing into HTML5 later. My rationale rests on five 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 SVG and RSS, a task that will be made much more difficult if you only know the relative looseness of HTML5.
- No browser currently supports the entire HTML5 spec. Learning something like the new HTML form elements 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 accessibility; 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.
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 or WordPress. That’s the difference between occupation, craft, and play. It’s also advice that is open to change: if you are in a rush, you should feel free to go directly to HTML5.
If you have a differing point of view, feel free to share it in the comments section below!
Photograph by Paul Williams, used under a Creative Commons Attribution-NonCommercial 2.0 Generic license
Enjoy this piece? I invite you to follow me at twitter.com/dudleystorey to learn more.