Learning about functional and dynamic languages is a doubled-edged sword. On the one hand, it opens up your mind and ensures many hours of really happy, even enlightened, hacking. But, on the other hand, it spoils you: if you ever have to come back to, say, C or Java programming you may get frustrated by the limitations.