One recommendation that I typically share with with my co-workers and students is the idea of one language for work and one for home. I don’t think this is particularly revolutionary but I’ve found it to be invaluable in keeping current and my skill-set fresh.

By day I work primarily in the .NET stack, but over the years I’ve been able to explore Ruby, Python, and Node to name a few. It’s been interesting see the influence of these other languages over each other. I was doing Ruby prior to the release of .NET MVC and had a head start with the framework due to my experience with RoR. Same for nodejs/socket.io and then SignalR.

Being a Polyglot Programmer isn’t required to be a software developer but I think it definitely helps.