I taught myself HTML & CSS in about a week. The easiest way to start is design a basic site in photoshop or fireworks or whatever strikes your fancy. It doesn't have to be complicated but get a bunch of writing and images in there so you can have stuff to grab and focus on the code.
It was easy for me because I was coding my own site so I had my works and had written information about me, etc. Once you have this you have to learn how to make the code look like the stuff in your photoshop file. Start from the top, remember to close your div tags, and keep your css at the top of your html document. I used dreamweaver, which helped with all the basics like headers and style tags, etc. and making sure the code I was writing was real. It also gives you selections for the css so before you hard write the css you can just make the selections of the shit you want (ie colors, bold, left justified, etc) and as you do it more and more you'll find yourself writing the css rather than opening up the panel.
I learned by trial and error and it was not easy but if you set your mind to it you can have a functioning, ugly, messily coded site. Then you can start looking at other sites html and read up on it and figure out all the things to make the code pretty and little tricks.
As you go through, google whatever you need. Want to center something? Google it.
It probably isn't the best way to learn, but I have a hard time reading books and then putting them into action.
As for all the backend stuff, not my area of expertise. Actually I literally don't know shit. But that's how I did front end stuff.