A site that I like to point people to is dontfeartheinternet.com. It has great videos to learn the basics.
There are lots of people that blog interesting stuff, but it's kinda hard to name just a few. Sooner or later you'll find them by Googling or on Twitter.
I'm not really into reading books and rather learn by just experimenting. Maybe tools like codepen.io or cssdeck.com let you play around and see the result instantly updated.
There are also some online learning services like codecademy.com or teamtreehouse.com that teaches more in an interactive way.
And last, but not least: Going to an actual school. It's not really a must and you can certainly start by learning on your own, but it gives you some basic knowledge that is a great foundation. Just remember, once you're out of school, it doesn't mean you can stop learning. Actually the opposite.
I think another good place to start is Hard Boiled Web design.
The code examples are a little old but the system of thought is vital for modern web design.