Today's top software is not that much about perfect implementation. It's about software design. The big popular programs (actually even the text editors) are complex and the good software design is way more important that the implementation according the established design.
So, you better specialize programming in certain scope, rather than certain language. The language is a derivative to the design.
For an example - if you like low level programming (drivers, kernels, embedded systems), then you should learn C and some assembler very well. If you like programming desktop apps - C and C++ (maybe also Python). If administration is your passion, then specialize in Bash, Perl and C. To be a successful web developer you need to master HTML, Java Script, PHP...
You got what I'm trying to say.