When I look back at how I became interested in programming, or ask other programmers about how they started to program, the answer is very frequently: "I was given a [Basic/QBasic/Python] compiler and a bunch of programs and I wanted to understand how it all worked so I could write my own!" It was only after digging in to the code that the student wanted to understand how to tackle certain programmatic challenges — but they then did so with great gusto!
The Khan Academy Computer Science program is a distillation of this process into it's purest form: Directly encouraging experimentation, exploration, and creativity as a direct gateway to deeper learning.
Khan Academy joins several other free "learn to code" services, including previously mentioned Codecademy. The difference is that Khan Academy's tutorials are really self-directed — they're more like playgrounds, although walkthroughs are also available for more complex topics.
In the code editor, everything you change is reflected right away. Use the built-in colour or image picker, for example, or change a few numbers, and the code is executed in real time.
You can save code to your account and also connect with others in the Khan Academy community to further fuel your learning.
Get started playing and building your own programs via the link below.