Your mileage will vary across sites and instructors. Really what is going to teach you the best is a project to work on and the motivation to do it. Teachers are just facilitators, virtual or no.
There are many resource sites that you will use when learning coding. There are some good websites for projects as the previous people have replied. One I would definitely add is udacity.com. While this site is focused on "nano-degrees" in different areas of concentration, they also do offer many free courses that you can take. The nice thing about the courses is that they are taught by instructors that work in the field relevant to the class. These courses are collaborations of different companies like Google, AT&T, Amazon Web Services and many others.
If you are just starting out, I would suggest taking the Intro to HTML and CSS course (https://www.udacity.com/course/intro-to-html-and-css--ud001). I've taken the course before starting my nano-degree program with Udacity and found that a lot of the skills taught in this free course are also the skills you will learn when working through the nano-degree program.
David recommends the following next steps:
Below are a couple of websites I used in my studies to gain knowledge coding:
It is like Mr. Henderson mentioned above already it varies across sites and instructors but if you have the drive and motivation you can work on coding all by yourself.
As I am of the belief that you will need to practice on your coding skills 'X amount of time' a day, a week. The 'X amount of time' is your drive, your motivation to put in minutes, hours, days to practice and learn code. With that 'X amount of time' you can get to where you want to go and what you want to do.
I hope this helps out William.