I have been playing with Legos all my life. My first set belonged to my Mom when she was a girl.
Unlike several users here, I learned computer programming first. I think I was eleven when I started. A year or two later (I think...), I attended an event where one of the activities was programming an RCX to do something. (I forget what.) I loved it! After that, I attended several other events where I worked with Lego robots, and I was hooked!
I decided that I wanted an NXT. So, after months (probably half a year or more) of saving my paper-route pay, I bought an NXT 1.0 on E Bay for $10 less than the retail price and free shipping. After what seemed like years, it finally arrived, and I raced up to my room to unpack it. I built Tribot later that day, then had to wait two days to program it, because my computer didn't have XP sp. 2. (Why is that even required?! )
As a programmer already, I was disappointed with NXT-G. It was slow, buggy and inefficient. It wasn't long before I was looking up NXC. I tried to write my next few programs in NXC, but (probably due to my mistakes) they didn't work very well. So I went back to NXT-G. Around this time, I had been thinking about combining my computer programming with the NXT. The headers for the fantom were in c(++) and I only used FreeBASIC, but I managed to make a FreeBASIC compatible one. After writing a few simple battery and sensor monitoring tools, I decided to write a complete replacement for the tools in NXT-G.
NeXT Commander was born. After a month or so of work, I reached the point where I didn't have the skills to continue. NeXT Commander was put on hold for a year. After that, with the skills I had learned working on some other projects, I was ready to continue. After being halfway rewritten, NeXT Commander
Today, I still have only one NXT 1.0. I have upgraded it with a rechargeable battery pack and the LeJOS firmware (I'm slowly learning Java), but other than that, not much has changed. I still love Mindstorms!