One was Visual Basic. VB helped me go from writing fun abstract play things to amuse myself to actually writing something that solved a real world problem for people at a real world company. This taught me that focusing on boring, simple and 'ugly' programs that actually end up in front of people and save them time (and money) is far more valuable than writing really clever programs that don't, and that's what programming as a profession (as opposed to a hobby) is all about.
The second was learning Haskell. The way Haskell forced me to think about everything connected to programming completely changed how I saw things and helped my build up a mental model of the programming 'world' that really made sense to me and made solving programming problems much easier.