Take a look at codecademy.com, courses are free, they offer
I'm currently doing the HTML/CSS and find it quite good. It's self paced, interactive and I can pick up where I left off easily. At times their site can be slow, but I find it tolerable.
I've been doing sites in html & Joomla for 12 years, but have never taken the time to formally learn these topics.