I think for the most part, I agree with 'misson' (although I have used bits of w3school).
<rant>
You have to decide what you want to know.
Do you want to learn a particular language, or do you want to learn to program?
Most good programmers understand certain fundamentals that are more or less language independent (not entirely true, because there are many different types if languages, but please bear with me).
A lecturer once told me (or the whole class) that the difference between University (College) and TAFE (a trade school) is that TAFE teaches specific skills, while University teaches you to learn. While I don't entirely agree with this, I think he meant it the right way - you can know any language inside out but be useless as a programmer, similarly, if you know certain fundamental concepts, you can apply them to any language.
If the language you use is important when you are learning, then you're probably learning the language, not the concept.
At university, I used many different languages (a little bit), but most of my assignments required Ada or Java (very much an Object Oriented language). Despite that, most of my working life has used C and unix Shell Scripting - functional, and not at all object oriented (and I use a while plethora {well, at least 3} of others outside of work). While there are significant differences (and it may help to learn using a language in the same genre as what you intend to finish up using), the underlying concepts are much the same (and boil down to Data Structures and Algorithms - though they may have clever guises such as 'paradigms' or 'models' or something else...)...we deviate from the point.....
The point is, good programming tends to be language independent. It is easy to create a hack in any language (especially given the resources available on the 'net). In fact (as we see on the internet a lot), it's even possible to put lots of hacks with some pretty impressive results. If we want to 'program', however, (as opposed to just kludge things together and make them work), then there is a lot more involved.
A programmer chooses the language to suit the situation, not forces the situation to conform to his (her) available skills. If you find yourself choosing the language before you have investigated what needs to be done, then you're probably doing things the wrong way round...
CAVEAT: There are fundamental differences between certain types of languages. Logic programming (like Prolog) is very different to functional programming (lisp or miranda) and different again from object oriented programming (Java, c# etc). Web programming is further complicated by the fact that the underlying 'language' HTML is a style specification rather than a language per se...we digress....
If you want to learn to program, get a book titled something like 'Data Structures and Algorithms <in ....>'. If you want to learn to hack things together, google (or your favourite search engine) should be plenty enough.....
</rant>