Can you Improve your programming skills by learning other language
In my experience, definetely yes. Having several different ways of attacking a problem is like a palette of tools. One day you (as I did) will have use for these other tools. Or possibly not. It all depends. Some exempels:
Languages generally does not stand alone, they come with an environment. I did spend a bit of time learning an odd language known as awk . It relies on pattern matching using "regular expressions". From trying to learn the C++ STL (not very successful) I learned about maps . Combining these two concepst I could very quickly write some text transforming utilities in Pearl (the only language available on the plattform ) .
Mostly for the fun of it I tried to learn Erlang (not very succesful). It has a library of functions known as OTP implementing among other things a way of handling errors, sometimes known as let it fail and have a monitor restarting the functions. I have used this idea in some areas, sometimes simply letting things fail instead of doing endless tests.
Trying to learn Haskell (again not very successfully) has really opened my eyes towards other ways of attacking problems. Functional programming sort of (to my mind) starts with writing code that says what result you want, not the writing the steps involved in getting there. I find that this really helped me in writing better SQL code.
To put it in perspective, most of my dabbling in various languages was (and is ) on a rather shallow leve mostly to get a feel for what people are talking a about. There are very few languages I actually can be productive in.