When I was in undergrad our professor had us learn Java, but also Lisp and Prolog, and that was very valuable to my growth as an aspiring (and now thankfully employed) programmer :)
I agree, but certain concepts exist strongly at the language level. Like functional programming, Haskell for example: the power of static typechecking along with good type inference, or functional/immutable patterns, or programs as data (IO monad).
Or Prolog and logic-based declarative programming.
Or any GC'd language.
Or a Lisp and its metaprogramming.
I daresay these ideas would be very difficult to see the practical use of, or "impractical" beauty of, without touching the languages.
I'm saying that programming languages aren't they only way to get familiar with concepts