Bisschen in der Schule. Ansonsten das meiste zu Hause.
Was C++ und PHP angeht würde ich mich als Profi bezeichnen, weil ich bei fast allen Konstrukten dieser Sprache durchblicke. Das mache ich, seit ich hier im Forum bin, also Ende 2007.
Java habe ich im Wesentlichen in der Schule gelernt, ich finde die Sprache ziemlich schlecht und umständlich, kann es aber vllt. so mittel.
Ruby lerne ich jetzt neu, es ist ziemlich einfach und ich komme gut zurecht, bin aber natürlich nicht gut und kenne kaum Sprachkonstrukte (wie Mixins) und Bibliotheksfunktionen.
Mit Scheme habe ich jetzt auch angefangen, da habe ich aber noch nichts gemacht, was Scheme angeht habe ich viel mehr C++ als Scheme gemacht. (mit Goops rumgespielt, das ist eine Scheme-Implementierung in C)
Was gibts noch: HTML, CSS - learning by doing hier im Forum.
JavaScript immer mal wieder Sachen verändert und das ein oder andere selber geschrieben, immer nur kleine Sachen, ohne mich tiefgehend damit zu beschäftigen.
Pascal ist die furchtbare Sprache, die ich vor ewigen Zeiten gelernt habe. In der Schule gab es dann noch das ekelhafte QBasic und das ganz nette Prolog.
Zu C++ habe ich zwei Bücher ("C++-Primer" und "Modernes C++-Design"), angefangen mit onlinetutorials.net und was Bibliotheken wie Qt angeht alles mit der Doku. (also 20 Minuten Tutorial habe ich auch mal gemacht)
Für PHP habe ich mir Schattenbaum durchgelesen (dieses Müll-Tutorial), habe jedoch erst danach richtig losgelegt und dann mit Forum und php.net die Sachen gelernt.
Ruby und Scheme mache ich im Moment auch nur mit Online-Materialien.
Irgendwann möchte ich einmal Haskell lernen und verstehen, was zum Teufel Monaden und Arrows sind. 
Viele liebe Grüße
The User