Learning Lisp
I read the notes from the Objects Have Failed OOPSLA 2002 debate (available here) where Peter Norvig suggests that you, if you want to be a successful programmer,
Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C+), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C+ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).
In the past, I have enjoyed reading about other programming languages. I read a bunch of articles on Dylan, for example; and I remember that the 1981 Byte article Design Principles Behind Smalltalk was very interesting. Currently, I’m toying a little with Lisp, and it’s very easy from within Emacs, while reading Programming in Emacs Lisp in one buffer, and evaluating Lisp lists in another.