Codecademy. This is good to see, but there are some other options.
Personally, I think that to get a good grounding in programming skills, the simplest and most powerful language is Python. The flexibility of Python also means that your programs can look very similar to written English. The first aim is to be fluent in one programming language; then you will be able to judge what other languages do better, or worse.
Although it is good to be able to write code from scratch, as you progress you will build up a library of code snippets that you can re-use within different programs. This modular approach is the basis of Scratch, a visual programming language developed at MIT. If you want to see your programs and apps in action very quickly, then Scratch is a good place to start.
One good technique is to create a program in Scratch, see how it works, then try to write it in Python! In terms of languages, you will then be able to speak Scratch and write Python.