How did you learn to code?

I ask because a couple of recent chance encounters have got me thinking that there are some pretty big gaps in people’s knowledge of HTML5 and CSS3.

For example, I was chatting to a student who approached me at an event last Saturday. He asked me where he could go to learn HTML5. I suggested a few books and started explaining how HTML5 differs from HTML4. He interrupted and said, "Sorry you don't understand… I have no idea about HTML 4 either."

Is it me or is there a real problem here? After all, the guy was enthusiastic, he wanted to learn but was struggling to find the right resources for him. The problem seems to be that too many of the current books and sites assume that you’re simply moving up from an earlier version. So they spend a lot of time putting HTML5 into context by making exactly the same mistake as I did – explaining how it was different from HTML4 (or 3 for that matter).

When I started web development back in the late 90's (when dinosaurs ruled the world) I remember starting with WebMonkey.com. Then I moved on to learn DHTML from DHTMLcentral.com. And then on to 4guysfromrolla.com to learn server-side programming.

Is there a modern day equivalent? A resource that guides people from complete beginner to web developer. Or do we simply expect all new developers to find their own way?

What site, book, course etc would you recommend to people that are just beginning in web design and development?