For me it's usually rebuilding a solution to a problem that I understand well that I've already solved with a familiar language.
Take for example Git. If you understand its internals well enough to build it yourself, then rebuild git in the new language. In the future, when you want to pick up yet another language, rebuild it again.
One of the reasons that I think it's extremely useful for a programmer to have at least one complex system that is well understood and implemented under their belt.
Yup, I DCA regularly, but thinking about whether this is a good opportunity to throw extra into an index fund like VTSAX or maybe solid individual stocks.
Extra would be coming from an account that I keep cash in for unforeseen opportunities.