LAMP is great, but the first Web development trick you learned is still one of the most important.
This issue is going to give you a bunch of Web development knowledge. Please use it to help understand the next site or Web application you build. Don't just download a bunch of open-source Web code and mangle it. Clean, valid HTML makes the difference between a Web application that works like an application and one that works like a slow-loading Web site. Make your software do HTML right, and you can do more with the Web.
When the Web was new, we all learned HTML, and it was good. Then the browser wars, WYSIWYG HTML editors and the Internet boom came along. When a Web designer gets squashed between short deadlines, pixel-for-pixel “make it look like that” requirements and buggy inconsistent browsers, the result is bloated pages full of invalid HTML that tricks broken browsers into doing the right thing.
Meanwhile, on the development side, we learned the bad habit of treating HTML like PostScript—something we don't write ourselves. We gave the designers a template directory and faithfully threw their incomprehensible HTML out to the users.
But now it's time to “View Source” again and care about HTML. The Mozilla Project trashed the old Netscape 4 code and released standards-compliant versions. Konqueror got good. Even the proprietary browser vendors got up to speed with Cascading Style Sheets. All of a sudden, a Web application that was used to spewing out tons of <td valign=“top” bgcolor=“#ffffaa”> could simply apply a class to the element and let the stylesheet fill in the details. Life is good again.
At least, it would be, if we would just clean up our sites and Web-based applications. One Linux site I just visited served up a page with a nice stylesheet imported in the page head, then ruined it with a bunch of unnecessary spacer images and tag attributes that override the CSS. Unfortunately, that's typical.
We can't blame the flaky browsers or the pixel-pushing designers anymore. And, it's not like we don't know HTML—we just don't care about it enough. The cause of awful Linux Web sites these days is steaming piles of code that we download, install and don't understand—then clot up with garbage tags until the site looks kind of like how we want. In order to make the Web work, you must understand the software you deploy. If you can't figure out what template or script is responsible for an element you want to change, rm -rf the steaming pile and start over.
When you're testing a Web application locally, or on a fast network next door to the server, it looks like it doesn't matter, and a lean, mean 12kB page seems as fast as a bloated 32kB monster. When you demo the new Web app to Management, all you get is “great job”. When the application goes live, that changes. Even if it's “internal”, other employees will be using it over a VPN from home or a café. Then it all falls apart.
You don't have to be an HTML guru, though you could do a lot worse than to read Jeffrey Zeldman's Designing with Web Standards. But if you want to be a Webmaster, you have to justify the “master” part by keeping site bloat under control. Save the bytes and enjoy the issue.