Oh man. It’s just so overwhelming whenever someone starts to learn about writing actual HTML as per W3C standards. Up until now, you’ve probably been writing code for so-called ‘version three’ browsers, also known as ‘tag soup.’ Don’t worry, there are still a lot that do, because knowledge of how browsers interpret info isn’t common. Ever find it strange that some tags exist in some browsers but not others? Not if you write for standardized HTML (which every modern browser and HTML editor now uses predominantly). Not only does the W3C (among many other things) standardize what HTML tags a browser should and shouldn’t read, but it also states exactly how browsers should read them, and tells authors how to write for them. I suggest you make it a habit of writing HTML 4-compliant code, or else things are so much more difficult and so much more ludicrous. It’ll get tougher and tougher to write code as you have presumably been doing in the long run, as all user agents are starting to run on standards.
The W3C is where HTML, CSS, RSS, XML, etc. is standardized and developed under the watchful eyes of all interested companies (e.g. Microsoft, Apple, Opera). The DTD (Document Type Definition) you were told to put in tells the browser what standard of HTML you are following. It drastically changes how the web brower will interpret your data. If your Doctype were to say “HTML 3.0,” the set of legal tags the browser reads is different; in general, the lower the number the closer it is to ‘tag soup,’ which is what webdesigners call the code written in the early 90’s when Netscape and Microsoft made up their own stuff and the W3C barely kept the Web together (begging Netscape to support <blink> or Microsoft to support <embed> and on and on). If you don’t have a DTD, a browser would read your code in its ‘quirks mode’ which is designed to use its error-handling to interpret potentially bad code and still output something good. If you have a new DTD (The final release of HTML is version 4.01.), the browser will be more strict in its interpretation (using ‘standards mode’) of your code and will do things closer to what you’d expect.
Now all that being said, there are a lot of people who are obsessive over the W3C without knowing the purpose of standards. Also, a lot of people just don’t think they are necessary (which may be true to a limited extent in this day in age). Think of it this way though: if you choose to write standard HTML, make sure it is semantically correct. Many proponents of standards run their code through a validator and think that’s it. It isn’t. For example, your title should be enclosed in <h1> and your paragraphs should be enclosed in <p> and your <input>s should be labeled…
I noticed your team’s site (SPAM’s) uses standards (and looks very nice, might i add, as long as you have 1024 x 768 or higher screen resolution) but isn’t all that semantically correct for example. Not bad, but not great; there are a lot of double line breaks, excessive <h1>s and improper uses of lists.
Anyway, enough about that. Just remember, this stuff is easy to learn, and very tough to master. One last thing, W3Schools is a good place to go to learn about this stuff.