Learning Python! I've been a C#/Windows developer for years. I then switched to Ruby, which for some reason inevitably means you switch to a shiny mac, and then your work paradigm changes revolving around the command line.
One day a quick task came up, and I decided to hack it out. The only library I could find was a python library, so that's what I used... and it was so quick to get something. 10 lines later my boring task was done. Impressed, I started looking for other things to put this new super power of mine to work, and it's been spiraling out of control. I still use the other languages I know for the majority of my work, but things I might have just never done because I wouldn't have had time are now getting done. It's so great to get things done.
To the parent, and all the siblings of this comment:
If you're fast/productive in C# and you're looking for a good way to accomplish quick tasks or experiment, LINQPad (http://www.linqpad.net/) will become your best friend very quickly. It would probably be faster to list the things I don't use it for than the things I do. The premium license is worth every cent.
Python is so great for getting small tasks done in less than 30 lines of code that would take 5-10 times as much code in most other languages. I wish I had learned it earlier too. Still my favorite language to code without an IDE (C# is pretty great as long as you're in Visual Studio).
I remember when I first learnt Python. It seemed so similar to the pseudocode that I was taught to write first when I was working on a problem. As a result, I will often prototype an algorithm first in Python before I try it in something else.
Bah! IDE's seem always to be stifling, and they create complicated projects that are not readily usable outside of the IDE. For instance I often need to build software on a server, and naturally do not wish to install some enormous program to accomplish this. I don't use Eclipse for Java or Visual Studio for C#. I did not use the Racket IDE when I was writing a lot of Scheme code. I do like the new Visual Studio Code editor however. Caveman that I am, I use plain old makefiles.
My breaking point came almost a decade ago, but it was a similar story. I tried ruby out of frustration, and in a single afternoon as a brand new ruby developer replaced a week's worth of date parsing code written in c++. Easy integrations of regex, a repl, nice text parsing, etc. I've never looked back. The only downside is the rest of the world discovered ruby and python so I can no longer just be a 10x developer by not using windows/c++/mfc.
These stories are great. Java dev here. I love that you can do almost anything with it but this is such a strong case for deciding on Python as my second language.
This is good to hear - I recently graduated and took a C#/.NET job (which I enjoy)...but Python and CLI work always is more enjoyable for me than the MS stack. A big worry of mine is not being able to switch between languages, and getting ~stuck~ with one.
I'm a C# developer at the moment, but I use Python at work for pretty much anything regarding parsing or file manipulation that I need to do, or to hack out a quick proof of concept.
I wrote a client/server crypto system on Windows. The client was in C, the server code in Python. The Python code took maybe 5% of the time for a similar amount of functionality as in the client. No discernible performance impact from using Python. C was not in of itself a bottleneck in this case, rather the complexity of the Windows crypto API was.
One day a quick task came up, and I decided to hack it out. The only library I could find was a python library, so that's what I used... and it was so quick to get something. 10 lines later my boring task was done. Impressed, I started looking for other things to put this new super power of mine to work, and it's been spiraling out of control. I still use the other languages I know for the majority of my work, but things I might have just never done because I wouldn't have had time are now getting done. It's so great to get things done.