Get really good at one or two languages, then start looking at others. Keep looking at whatever the other language is until you understand why people decided to design it that way. Going from C++ to Java to C# or whatever doesn't count. Mix in prolog, haskell, lisp, microcontroller assembly, whatever, and you can start to consider yourself a decent programmer. Oh, and write a compiler too, it's not that hard especially if you follow a good textbook.