I'm asked pretty regularly how I learnt HTML and CSS. Now let me say right away that no way am I a coder or consider myself a coder - learning HTML and CSS I've found has given me a much better understanding of websites in general and how they work.
Learning HTML and CSS may have been one of the easiest things ever for me to learn too, when you have a desire to learn something you can very easily grasp it.
Sure the best way to learn HTML and CSS is through the internet but I felt like reading a book which had a great structure and was designed for learning just the basics was the best way to go. It also allowed me to disconnect from my computer and focus properly on taking in what I was reading, instead of having Twitter and email notifications coming in every few minutes.
I ended up buying the 'HTML & CSS - Design & Build Websites' book by Jon Duckett. This book is absolutely perfect for anyone wanting to learn the basics of HTML and CSS. It's been beautifully designed and is very well laid out. Everything is very concise and to the point. There are images to help you gain an understanding of what code does on a website. At the end of each chapter you're given a bullet point list re-capping what you have covered.
After reading the book I decided to move on to a more interactive learning experience. Codecademy was perfect for this. Codecademy is a completely free service which can teach you a number of coding languages. As well as you teaching you code, Codecademy will set you tasks along the way where you can put what you've learnt to the test. If you get something wrong, it'll show you exactly where you've gone wrong - it's like having a teacher sitting beside you along the way.
Once I learnt the basics of HTML and CSS I knew that the best way to put my skills to the test was to actually make websites from scratch. It's easy editing existing code but creating something from scratch is like some sort of ritual when it comes to learning web design - it's just a good way to test yourself. I ended up building my first Tumblr theme and my own personal website.
Knowing HTML and CSS is an absolutely brilliant skill to have nowadays due to how much we use the internet. Afterwards, other coding languages come pretty easy, it's like having an epiphany - you just seem to get how code works.