Several people have approached me lately with some variaton on the statement, “I know a little CSS, but I want to learn more. Where should I start?”
So, for anyone having similar inclinations, let me put my recommendations out here for you!
Books
There are a lot of bad books out there purporting to teach “web development” or “web design.” What they really do is rehash the same old “This is a <b> tag, and this is an <i> tag, and ooh! Here’s how you make a table!” business that’s been around since 1996 - and if you’re lucky, they might tack on a chapter or two at the end about those new-fangled cascading stylesheets. Whenever I’ve seen strangers perusing such books at Borders or Barnes and Noble, I’ve politely walked on by, but what I really wanted to say was, “Hey, you put that back right now!” and slap the book out of their dirty little hands in a socially unacceptable manner.
Instead, here are some good books to start with:
- Bulletproof Web Design*, by Dan Cederholm
- Web Standards Solutions: The Markup and Style Handbook, by Dan Cederholm
- Eric Meyer on CSS: Mastering the Language of Web Design, by Eric Meyer
- More Eric Meyer on CSS
- The Zen of CSS Design: Visual Enlightenment for the Web, by Dave Shea and Molly Holzschlag
- Designing with Web Standards, by Jeffrey Zeldman
Web Sites
The authors of the above books all have sites that are excellent CSS/XHTML/web standards resources, so I linked their names. Here are some other sites that reside in my bookmarks list under “Web Dev Stuff”:
- 456 Berea St. - Articles and news on web standards, accessibility, and usability.
- A List Apart - Definitive resource on design, usability, accessibility, search engine optimization, and more.
- CSS Panic Guide - A great jumping-off point to lots of other resources and reference sites.
- Position Is Everything - Modern browser bugs explained in detail! (Chock full of good CSS tips and tricks.)
- Wait Till I Come! - I promise this is not a porn site.
- W3Schools HTML and CSS reference sections. Excellent for looking up proper syntax, usage, etc. I use it all the time.
And, as always, Google is your friend - even if you don’t know exactly what to search for. Googling “weird CSS bug words repeated in IE” will actually get you to where you need to be.
This should be plenty to get anyone started on the right track - but hopefully not so much that you feel overwhelmed. (If so, pop a couple of Excedrin and come back in an hour.) All you aspiring web developers who are starting out with these resources are very lucky - you’re learning things the right way to begin with, so you don’t have to spend months or years unlearning bad habits.
* Ed Note: Yes, those are Amazon Associate links in this post. Deal with it bitches, I have credit cards and student loans to pay off.

18 Responses to "Learn Web Development the Right Way"
Perhaps this is the right place to ask. I am not stupid, and I do know CSS and whatnot, but I have a web question that perhaps is not related to my site design skills at all; my site never wants to rebuild and when it does, it times out like EVERY time. What am I doing wrong? I use MT, btw. Is it me? Is it my server? Is it Movable Type???!?!?!
Sounds like either a server thing or a MT thing. I know very little about MT, but among the few things I do know is that I don’t like the way it “rebuilds” the site all the damn time. I don’t think it uses a database at all. Just seems like an incredibly kludgy way to handle things, in my not-so-humble opinion.
Anyway, point… I am not the person to ask for MT advice!
Oh, and I was very happy to find out that I completely rock my face off. That kicks ass. w00t!!1!
Woot! right back…. Maybe I shouldn’t be using MT… DAMMIT! Now I must learn something new and really complicated. SHIT.
Holy shit, that’s a lot of contempt for someone who’s just trying to learn more about the field that you love so much.
I do appreciate that these things (deprecated tags or structure, poor or nonexistent standards compliance) make you angry because you love web development.
However, to me, when you say things like this–
– it makes you sound really uppity. These people don’t claim to be web professionals; you have a common interest with them! Their application of your craft may not be as pure or as righteous as yours, but if you don’t like the crap they create, don’t read it! As long as their servers don’t sit insecure, ready to infect the rest of the web, how can they really hurt you? The lamest, most piece-of-shit, Frontpage-created, <table>-coated dreck doesn’t hurt you at all. Or, it doesn’t affect you enough to have such a hatred for them.
Example: my Wordpress blog isn’t standard anything. I’ve tested it to make sure it looks ok in a few different browsers, and I wrote a lot of the CSS myself, but I did not use best practices or leave good comments or separate all my presentation from my content. I used a few deprecated CSS tags to make it look ok in IE, and there are still some elements that don’t quite look right. And don’t even start on accessibility.
But you know what? I don’t give a shit. If people can still read it and know my thoughts on various topics, great. If your Web Standards Goggles get all fogged up and you have to tear them off your face while hitting the back button and screaming “MOTHER FUCKING <BACKGROUND> TAG, BITCH???!?11″, that’s not my problem, and we’re probably not going to get along very well anyway.
Oops… I keep hitting “G” but my autocomplete doesn’t fill in my name.
G = Garrett
The best thing about the Internet is that anyone can create a website. The worst thing about the Interent is that anyone can create a website.
Garrett,
In your comment you make a lot of the same erroneous claims that many people make when they don’t fully understand the reasons for web standards (giving you the benefit of the doubt, though, since I would hope you would understand it) or when they approach the web as a whole from an incorrect viewpoint. You say:
YES IT DOES. But more importantly, it hurts many other web users, especially disabled users, users of mobile devices such as cell phones and PDAs, less tech-savvy users, underpriveleged users (who may be forced to connect using older machines that don’t have a broadband connection or the latest browser), and of course, the most disabled user on the web: the search engine. Back in grad school, it “hurt” me when Dr. Lewis’s course syllabus caused my browser to blow up every time I tried to load it.
All these issues may not be as important on a personal web site as a business one, but if you care about traffic, user retention, and Google ranking, you’ll put forth the minute effort that it takes. (And once you learn how to do it the right way, you’ll find that it actually takes less effort to maintain a standards-compliant site than a pile of deprecated crap.) For businesses, this translates into savings on their end and a better ROI.
I did a presentation about all this at The Old Job which, as I’m sure you can imagine, I would be more than happy to share with you.
Then, you say:
and:
This shows a fundamentally flawed understanding of the medium of the web. Too many people make the mistake of viewing the web as a purely visual medium - merely a 21st century extension of the printed media we’ve grown accustomed to over the past 100+ years. But it’s not. The web is a semantic and logical medium. If you have any doubts about that, just ask Tim Berners-Lee, the guy who invented it.
(Also, there is no such thing as the <background> tag; perhaps you meant the background attribute?) ;)
Further reading:
>>The lamest, most piece-of-shit, Frontpage-created, -coated dreck doesn’t hurt you at all.
>YES IT DOES.
How? You haven’t explained how it hurts you, based on only my argument. I never said this hypothetical page is one you care about, or one that anyone even wants to look at or use.
Based on your explanation, I guess you meant to say “YES IT DOES, when the content in question is something useful.”
Can you explain how it hurts you when I create and publish the aforementioned crappy HTML page, entitled, let’s say, “Garrett’s List of Things He Needs to Buy at the Market” and send a link to my wife? Like it or not, HTML can be used as a simple formatting tool to make words, sentences, and graphics appear visually the way the publisher wants them to appear. People use the language to publish things meant to be consumed visually. Retorting that “OMG but you just don’t understand teh web!!!1!” doesn’t change that. (And it doesn’t help you avoid sounding elitist, either.)
I never argued against standards on websites. I argued against contempt for all people who fail to live up to your standard of Correct Web Design in all of their endeavors.
I have used a soldering iron only a few times in my life. I could count them on one hand. (Ha! A solder burn pun!) My flawed analogy: Someone could say to me “People who solder things without taking a 15-hour electrical class really need to pull their heads out of their asses” and be technically correct.
It’s true that if I’m soldering something important, like a heart monitor or a Playstation, I’d damn well better understand the fundamentals behind the process, the best practices, and all of the safety precautions. But If I’m just making a homebrewed AM radio in my backyard, I don’t give a shit about the rules; I’m going to make something that serves the purpose I intend it to serve, whether I’m technically correct or not.
I’ve called men uppity, but I’ve never called one a “strongly opinionated man”.
Bravo on the vernacular-as-tool-of-oppression canard that you continue to use to define your discourse, but I’m sure by now you know that this isn’t really a defense but a sidestep. I think you are being uppity. Period.
If you are JUST throwing up a quick page to show to your wife - then sure, the issues I have raised don’t matter as much. But those kinds of sites aren’t really relevant to any discussion of web development. My concerns have to do with business sites primarily, and also with personal sites (e.g., blogs) that want to attract traffic, make mone, or provide a service.
I did give one example of how bad development practices hurt - Dr. Lewis’s syllabus crashing my browser.
Here are just a few other examples.
I could go on, but work beckons… that should do for now.
Nice use of “canard.”
Anyway, I removed the relevant part of the comment from here, because I didn’t want the comment to be too long, and I wanted it to have one main focus. So if that’s bad practice on my part, oh well. I will now paste in for you, dear readers, what I said to Garrett in an email (because he emailed me this same thing) - then we’ll call it a day on that part, unless anyone wants to bring it up and beat a dead horse.
I said:
I really appreciate your laundry lists, but I never said I didn’t understand the logic or the sense behind standards and/or accessibility.
I argued that while these concepts make a TON of sense, there’s no need to flog people who use crappy HTML to mark up “Bill’s List of 100 Great Horror Movies”, because these people aren’t committing some grave error. Bill just isn’t using his tools efficiently, which isn’t a sin worse than death, and probably doesn’t affect you very much.
I am scared now, that my site isn’t “sound”… I am frightened! Hold me!!! No seriously… how do I make sure it is. She looks good in IE and Firefox. I even tested it in Opera, well, I looked at it once in Opera. Either way… can you impart some of your wisdom big A?
I figure since, if you google my name, my site is first, then I must be doing SOMETHING right.?!?!?!
Duane,
I’m sure your site’s fine. Chill! :) Of course, I would be happy to look at it if you’re stressing out… but don’t stress out!
Garrett,
I’m not personally attacking people who aren’t good at HTML. And I’m definitely not saying anything negative about people who want to learn. It is great when people truly want to learn! That is the point of my post, after all - to point them in the right direction, so they can learn the right way. If I wanted to learn how to repair a transmission, I wouldn’t know where to start looking, much less how to tell a good reference from a bad one, and I would appreciate any guidance from people who have more experience.
Back to what I said about not personally attacking people who “know a little HTML” - obviously I am not saying they’re a bad person, or anything like that. But if they’re going to be meddling with web content, they either need to learn how to do it right, or stay out of it. I’m not going to go poking around under the hood of anyone’s car trying to fix this-and-that just because I know how to put gas in my car and check my oil - it doesn’t matter how good my intentions are (”if I help you maybe you can get on the road quicker!”), I simply don’t have the necessary knowledge and would most likely ultimately make things worse. The only question is the degree of fucked-upedness I will produce, not whether I will fuck things up or not.
And I would like to reiterate Roger Johansson’s quote which I quoted in an earlier post:
I was reading this article, about the new features of the newest firefox release, and thought of you, especially this part:
Sounds like you have a new mission!!!!
Oh, that’s nothing new. ;) IE is the bane of the serious web developer’s existence. The way it goes is, you build your stuff to W3C standards and test in browsers with standards-compliant rendering engines (e.g., Firefox, Safari, Mozilla, etc.) - then you take a deep breath, maybe make a few friendly bets about how many fucked-up things there will be in IE, and open the page in IE. Then you put in CSS “patches” to “fix” it in IE.
The hope is that with IE 7, some of this stuff will be fixed and IE will actually render pages correctly. Or, closer to it, anyway. (The first thing they need to do is get the freakin’ box model right!)
Ah, found this referer in my stats, and cheers for considering my blog noteworthy in this list.
A quick “handle with care” on some of the other articles mentioned in your comment though. It is always good to check the writer of an article and his intended audience / working environment. A lot of “You’ll make millions / you’ll lose millions if you don’t adhere to standards” articles are written by one man companies who never got near a big corporation as their clients. And they sell their services and trainings, which means the first rule is not to say anything bad.
I am very much into standards development and it is great to have all those blogs, one-man-company and brochureware sites out there finally getting the drift, but the real impact has not happened yet. We need to prod the fat cats, if one of the fortune 500 companies starts waving the standards flag others will follow
I have published an article on digital web venting my annoyance at this titled
10 reasons why our clients don’t care about accessibility and will follow up with one in January (pending finishing my book first) with 10 reasons how developers create and follow their own myths about web standards
It is better to be prepared for the bad things to come. :)
Believe me, I hear you there!
I just left a job at a big company (a.k.a. “The Old Job” herein) where they got all excited about standards, drooled all over the presentations and practical demonstrations I gave about how we could effectively use ‘em… and then brought in new upper management who completely dropped the ball and took a big dump on the entire idea of standards.
So now I have a new job at another big company (a.k.a. “The New Job” herein) where they seem to be at least a little more standards-friendly. It’s early, so we shall see.
There are some big companies that have embraced standards, though, as I’m sure you know (AT&T, Yahoo, ABC News…). But you’re right, we need more.
I also agree w/ what you said about small or one-person companies writing articles but never having experience with big sites. I find that annoying.
Thanks for commenting!