OK, so Pete tagged me, and now I guess I’m it:
How old were you when you first started programming?
I would say around 10 or 11, judging from the release date of the Commodore PET, which was the first machine that I wrote code for.
How did you get started in programming?
Oddly enough, like Pete, one of the early programs I wrote was a BASIC program that made a rocket fly up the screen. My best friend and I also worked out a deal with the local teacher’s supply store (which had a PET on display) to write small BASIC apps for him in exchange for small trinkets like pencil toppers, etc. So I guess if barter counts, I can say that I’ve been a professional programmer for more than 30 years.
Later, my school got a Commodore PET, and I was able to take it home with me over one holiday week, and asked my mom if it was OK. She, of course, assumed when I said I wanted to bring the PET home that I was talking about an animal.
What was your first language?
BASIC – both on the PET, and later on the C64. I took a break from computers for a while and came back to programming after college, and my first career in technical theatre, and jumped back in with Visual Basic 3.0.
What was the first real program you wrote?
Depends on whether "real" means something with meaning to me, or a business app. In the former category, I taught myself VB 3.0 (and later ported to 4.0) by building a MIDI jukebox application, which I used for a number of years (this was before the advent of MP3s and digital music, for you youngsters who’ve never listened to an LP or cassette tape).
The first app I was paid to write was an HR application for a major telecom company that provided employees with the ability to modify their employee data, including submitting their W-2s online, which was one of the first apps in the country to do so, to our knowledge. I was very fortunate in that I got to work with two very talented senior developers on the project, and learned a lot in a very short time.
What languages have you used since you started programming?
What was your first professional programming gig?
Noted above. Worked for a company called Spectrum Technology Group, which also happened to be the first of 3 places that I have worked with current Microsoft co-worker Geoff Snowman. Spectrum was a place that was packed with talented people, and I feel very fortunate to have gotten my start there.
I actually ended up there after attending one of Geoff’s talks at DevDays ’97, and asking him how one would get into the programming field. He responded, after a few theoretical points, by asking for my resume. And I’ve been following him around ever since.
If you knew then what you know now, would you have started programming?
Absolutely. Programming is fun, rewarding, exasperating, challenging, and sometimes exhilarating. I’m especially enjoying working on my Community Megaphone site, both for the service it provides to the community, as well as for the enjoyment of getting back to writing some practical code, and playing with new technologies.
Programming led me to my current role with Microsoft, which is one of the most fulfilling jobs I’ve had or can imagine having. I get to work with fantastically talented teammates, as well as passionate and amazing folks in the developer community. I couldn’t ask for better people to work with, and programming is what got me here.
If there is one thing you learned along the way that you would tell new developers, what would it be?
Don’t beat yourself up if your code/app is not perfect, but always learn from your mistakes. There’s no such thing as a bug-free app, and if you try to release one, you won’t release anything at all. That said, one of the more interesting exercises is to write and release some code, then revisit it 3-6 months later. That gives you long enough to kind of forget why you made some of the decisions you initially made, and look at the problems with fresh eyes. And in some cases, you may also discover that new software has been released in the interim that makes improving your app a breeze (a recent example of this for me has been the Argotic Syndication Framework, which made it super-easy for me to update Community Megaphone with GeoRSS support).
What’s the most fun you’ve ever had … programming?
I don’t think that I can call out any specific instances, but the most fun thing about programming for me are the "a-ha!" moments, when you finally kill a bug dead, or realize the solution to a problem you’ve been gnawing on for a while. Or the times when a decision you made early on in an application pays dividends in making later changes much easier.
Who are you calling out?