The hardest part of learning a new programming language, for me is applying a difficult new concept from a book into code. My first programming teacher attempted to teach C straight from a massive textbook. While everything seemed to make sense while reading, being able to translate that to working code can be tedious. This is especially true when learning a syntax heavy language, such as C. One bug can cause hours of pain when you're attempting something completely new.
Codecademy's Simple User Interface
I've started learning Ruby through the Codecademy website, and I couldn't be happier with it. Every annoyance that I had while learning C seems to have been fixed. Instead of learning a chapters worth of concepts, and then trying to apply that in code. Codecademy offers small interactive steps to eventually teach a larger and more complicated concept. Instead of hours of debugging, I can quickly scan the lesson to see where I've gone wrong. If that wasn't foolproof enough, Codecademy has a forum for every question. For the most part, the answers in the forum are good at not just giving the answer. They generally give an answer that explains where the programmer went wrong.
Every time I start up Codecademy, I wish it was around when I first started programming.