I have started this year spending some spare time with two of my favourite languages, besides C# that I primarily use to earn a living. The two languages in question are F# and Python. The represent two other paradigms from the statically typed and object oriented ones that are by far the most main stream, with languages like Java, VB and all the C-family languages. Playing with other paradigms is a great way to learn how some problems may be solved more elegantly either by going polyglot or simply by implementing some of the basic ideas of another paradigm in the language that you work with on a daily basis.
F# gaining momentum
Functional languages have mostly been used in academia and in financial systems, but they are becoming more interesting in other areas as well. Big data, machine learning and data analysis are hot topics and, with hardware scaling by adding more CPU's, we are required to write software that handles asynchronicity well.
This coincides with the addition of features like MailboxProcessors aka agents and Type providers to F#, which are both powerful features in these areas. The community around F# is growing, books and blog posts are being written and open source projects are building better support for web development, cloud, mobile and testability. So being fond of the language I am glad to see use cases popping up where I may end up using it in real projects. Because of this I joined the F# software foundation and was lucky enough to get on board as a founding member, where I will spend some time and try to help the language and community grow.
The dynamic Python
Dynamic languages are however quite mainstream and hot on the heels of statically typed languages when it comes to popularity, as you can see by looking at the tiobe index. Often talking static vs dynamic typing ends up in a religious debate, but for me personally it is a case of using the right tool for the job whatever I am building. That being said I have been having some fun getting to play around with Python, while I am doing the M101P course by 10gen on MongoDB, which has the attendees use Python with the PyMongo and Bottle frameworks.
A nice thing about Python is that it has very few constructs compared to most other languages, making it very easy to learn. This simplicity along with light frameworks that are easy to use while being able to run on Windows, OSX and various Linux distributions alike makes it interesting for looking outside the world of .NET. Of course there is also the option to use IronPython to get back into .NET land, and with Python having functional bits like list comprehensions, tuples and first class functions it all seems to come together.
I have probably said and written this way too often, but I highly recommend learning a new language if you wish to advance your skills. It is fun, challenging and a great way to gain a wider perspective on programming.