Programming has, from a young age, been one of my passions. I remember starting in the early days in Basic. It felt like magic, being able to write infinitely many programs to do all kinds of fun and useful things. As I grew better at it, I remember my programs began to get larger as well. Soon, I discovered that the limited support for subroutines (primitive procedures) quickly made a mess of my programs, and I lost oversight.
Then I moved on to Turbo Pascal. Again, I was really happy with the way I could use modules, functions and procedures to better structure my code, so I could scale my programs up without everything becoming one big mess, but it still had its limits. It wasn't until university that I really became aware of the importance of structured programming to keep complexity at bay. I became really interested (as many I guess) in pure functional programming, and actually did my Master's Degree in this topic. Composing functions and having no mutability were things that really struck me as being game changers for scaling programs.
Then, after university, reality kicked in: almost no company was (is?) using pure functional programming. So I went back to Java, C#, etc. I did spend a lot of my free time using Scala, which I still think has a great mixture of different paradigms, including immutable collections. But Scala, unfortunately, was also not really used inside the company.
Did I expect TypeScript to be my go-to language a few years back? Definitely no. But right now I think it is the best language for me to write what I want to write, like, for example, the Rimbu Immutable Collections library.