I've been doing it professionally for twenty years now, and started as a hobbyist in grade school. In fact, reading the manual for my old Mattel Aquarius - copying code samples and watching them magically do something - was what had hooked me. Was in the process of getting my Computer Science degree, but left school when the market first started getting hot for anyone who knew what a computer was. At one point, I was within a dozen credits of my B.S., but never was motivated to go back and finish it. Eventually, I got to the point where my resume was more of a selling point than the education aspect was. Definitely not discouraging people from degree studies - it just was not for me, and I took an opportunity to hit the ground running when it became available.
My career arch has been varied, both being in the trenches and in management. I've settled into more of the architectural aspects now, so I have some level of oversight, without actually losing the hands-on aspect of the job. Over the years, I've used many languages, depending on the shop: ANSI C, C++, COBOL, Perl, VB (am ashamed of that one), Java, and C#. Despite the badgering that Microsoft has gotten over the years, I find C# to be extremely enjoyable. From a specifications aspect, it is a beautiful language. It obviously borrows heavily from other established languages, but it is the polish and tooling that make it my favorite language to work with. Also, I have ended up using it more, from a length of time perspective, than any of the other languages that I've used.
Have always had an interest in hardware, and have always loathed working in business-facing shops that would give developers the same underpowered corporate assembly line systems that it would give its end users. Those are the times that I would spend wishing that I had a better rig. Then, there are the times (like now) where I run on my own hardware. My current development rig is a beast, with an i7 Hexacore, 64GB, higher-end dual GTXs - and even that makes my job more enjoyable. Being able to host VMs on my rig to emulate a user's desktop and approximate specs, along with some of our servers, makes life so much easier.