mit programmiersprachen ist das eigentlich eher so, dass man nur eine lernen muss, aber die dann auch richtig.
bei objektorientierten sachen unterscheiden die verschiedenen sprachen sich nämlich meistens nur in der syntax. eine klassendefinition sieht in java/c++/c# fast genau so aus, wie in object pascal (delphi). nur, dass man anstelle von geschweiften klammern die wörter "begin" und "end" benutzt, um anweisungsblöcke zusammenzufassen.
sofern man die logik von einer objektorientierten sprache und deren grundlagen erst einmal richtig verstanden hat, kann man eigentlich relativ bequem auf eine andere sprache umsteigen, ohne noch mal ganz von vorne anzufangen.
ich programmier inzwischen auch wie holy in 8 sprachen, und hab eigentlich nur eine davon von a bis z gelernt. allerdings würde ich mich selbst eher noch als anfänger (in allen 8 sprachen) bezeichnen.
kurz gesagt: wenn man eine kann, dann kann man alle. man muss sich immer nur an ein paar feinheiten gewöhnen. (jedenfalls hab ich diese erfahrung gemacht und wurde in dieser ansicht schon öfters bestätigt.
)
diese regel gilt übrigens nicht für visual basic 6. das typische objektorientierte design sieht da leider komplett anders aus, und ist daher sehr gewöhnungsbedürftig.
in .net sieht das allerdings schon wieder ganz anders aus, so wie ich das bis jetzt gesehen hab.