As a part of one of my courses this year, Computer Use, we got some introductory lessons to the big domain of web development. I didn’t completely agree with the selection of material that was being given, and when discussing that with my professor, he asked me what should be teached then.
To start with, let me give you an overview of what we were taught. First we got a couple of lessons about XML DTD’s — which is an interesting subject, but not really for the average web developer, then some lessons on XHTML basics and finally an introduction to CSS. We also got an oversize syllabus (about 300 pages) that contained all the theory and an overload of examples. In my opinion, it was filled with way too much details on legacy elements and properties, for example the specifics of using
<font>. What also struck me as odd were the numerous incompatibility warnings about browsers such as Netscape Navigator and Internet Explorer 4. And on top of that, just before the chapter about CSS, there was a section “Using tables to layout your page“.
Now, if you’ve ever developed a website using standards before, you will probably feel my pain. So I wrote down a couple of things that I would like to see taught and discussed in these lessons.
Focus on A-grade browsers
Teaching about compatibility with Netscape Navigator is going to keep us in the dark ages of web development for a long time. Develop with standards and even the oldest browsers will make something decent of your page, a principle called graceful degradation.
Separation of content and style.
Keeping your content and your styling separated is a principle already taught in the lessons about LaTeX and something which will help you with the graceful degradation. Try to bring meaning to your HTML by using semantically correct tags as much as possible.
For example, use
<em> to put emphasis on your words, not
<b> to make them look bold. If you’d ever want to make emphasized words italicized later on, you can easily do so site-wide with CSS, while the HTML still conveys the same meaning.
CSS should be the one and only way to style your page, every other way is deprecated. Teach the basics of CSS and provide links to advanced examples for those who want to learn more. Keep in mind though that we are not designers and shouldn’t know everything about designing a page.
Keep technologies such as imagemaps and framesets out of the classroom. These are of course not bad per se, but are more often abused then well-used. There are more important things to be taught.
There are a few things still to think about here, and I would be glad to hear your opinion on them:
How do you handle deprecated tags and attributes?
If you do not mention them, students will find them themselves via Google in any outdated tutorial. But to what extent should you mention them then so they won’t use them by mistake?
What will the effect of a standardista-introduction to web development be on a fresh mind?
If you give a technical introduction to HTML and no immediate way to do any of the flashy stuff people see out there, you are certainly not promoting HTML as a way of publishing to beginners. On the other hand, I believe that it will bring respect for the people who are able to create amazing things with these set of technologies.