Lua, Erlang, Haskel, ML, Go, Smalltalk, Algol, Modula 2, Modula 3, Snobol, assembly language.... After a while, most languages begin to look similar.
But, if what you want to do is to learn about programming languages, the thing to do is to write one of your own. Language design is among the most difficult of human intellectual tasks because the language elements must be composable to create larger, more capacious elements. A common error is to "add a statement to do X" rather than creating a conceptual framework that works with other language elements to allows X (and other things) to be performed.
A book worth reading on the design of language is Alexander Stephanov and Paul McJones, Elements of Programming. A talk covering some of the material in this book is scheduled for the Stanford EE Computer Systems Colloquium for November 3rd (http://ee380.stanford.edu). The lecture is open to the public, webcast live, and archived for on-demand viewing. Eventually it will be out on YouTube, iTunes, and elsewhere.
And while we are on the ideas of language design, you might want to look into some of the theories of natural language. George Lakoff's ideas in cognitive linguistics seem to apply to programming languages as well. Language, in his view, is motivated by metaphor.
I also think anyone who is serious about programming languages needs to have programmed in several assembly languages and to have experimented with macro assemblers. Macro assemblers provide a powerful tool for creating nonce programming languages at the assembly level.
I would also suggest that learning about optimizations would be of interest. At some level, optimizations are about mapping programming language concepts onto real machines for efficient execution. There is a dymaxion tension between programming languages and computer hardware with each influencing the other. Today, the need to efficiently map programs onto multi-core machines has renewed interest in parallel programming languages.