Engineering grad student here:
1. Learned to code some C# in an attempt to distribute some of my simulations to other computers. Had a great time and managed to get something good enough up and running.
2. Tried to pick up Haskell because I liked some of the ideas, and had a few projects I was interested in trying to do in a functional language. Had a bad time and quit after ~2 weeks. The environment and tools were garbage. I thought the old by-engineers-for-engineers software I used to build research models was user-unfriendly, but I guess that was just because I had never tried to work with the software programmers build for each other.