Building things has always provided me with a unique gratification. Something about being able to take parts and assemble them into something with a purpose and a function feels like the business of gods.
I started coding at some young age. My first language was QBASIC on my Windows 3.1 machine which I managed to learn through trial and error.
I spent a long time creating simple games and silly little interactive programs until at some point I was introduced to either C or VB6, I cannot remember which. My GCSE course was based around VB6, so I learned that. I always came back to C, though.
VB6 was built on a powerful componentry system (COM) and was I believe, a rather slick product.
It is probably the best attempt I have yet seen to make programming accessible to the masses.
Of course, the VB6 language had some unpleasant/ridiculous parts, and probably some fundamental limitations on scalability, but the thing as a whole was pretty cohesive and easy to use.
At some time around age 12 I dived into Linux, installing Fedora Core 2. I remember it being pretty buggy, but it worked well enough on old hardware. I poked and prodded and for the most part, didn't know what I was doing, but it was new and interesting and far more 'transparent' than the Microsoft offerings I was used to. I was determined to get to grips with it.
Years passed and I finally learned C properly at 16. There's something tremendously rewarding about understanding a design, be it the design of a language or something tangible, you connect with the psychology of the designer and see why they made the choices they did - you see what they are getting at.
For some reason, this epiphany happened whilst working on a Java project for a 6-week scholarship.
Today, I'm gainfully employed as a software guy in the sales team. Most of the time I'm working with Java in an industrial embedded setting.