Not so long ago I was confident that learning many different programming languages is just a waste of time. But now I think that it will help you even if you don’t change your primary language. Learning new concepts and approaches to solving problems expanded my vision and made me better as a Ruby developer.
Recommended reading list:
- Seven languages in seven weeks Introductions to Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Perfect coursera course by Dan Grossman. Languages: StandardML, Racket, Ruby.
- Introduction to functional programming John Harrison’s course. Introduction to lambda calculus and functional programming. Based on Caml Light.
- Programming languages course
This two I haven’t fully read yet:
- Structure and Interpretation of Computer Programs Famous book based on the undergraduate MIT course (6.001). Examples in Scheme.
- Types and Programming Languages Another classic book, but much more hardcore.