I have been programming since I was very young.
I started on an old 486 and a book about batch scripts. When I finally got access to the internet, I moved on quickly. HTML, PHP, MySQL, JavaScript, and various non-web languages before college.
I messed around with different scripting languages and found python and ruby. While I found them interesting, nothing took had me as fascinated as C++. I got wildly deep into design patterns, working on streaming libraries, and a lot I/O.
When I finally went to college, I was essentially forced to work in C#. While, at the time, I was morally opposed to this, it forced open my eyes to a world of many languages. This turning point came from the garbage collector, at which point I started getting into Java as well.
I was obsessed with garbage collectors for almost as many years as I was with C++. I learned about the different methods of building them, implemented a few in C++, and started playing with memory being passed back and forth between C#, Java, and C++.
I went to college for "Game and Simulation Programming". But I got so caught up in what I was learning when I wasn't at school, that I stopped paying attention entirely. I landed a job as a C# programmer working for a security company, at which point I had just stopped going to school.
For a long time, C# was my favorite programming language. And to some degree it still is, there are things about C# that I like. But I am no longer interested in the Net runtime, or garbage collection. While I completely expect this to change in the future, right now I am focussed on web technologies.
My focus right now is in NodeJS, and the many interesting things it brings to the table with its event loop.