Charles Petzold tagged me and challenged me to answer the following questions as part of a software development meme that’s going around.

How old were you when you first started programming?
I had a couple of programming courses in college, but I didn’t really start programming until I got out of school and bought my first computer (a Commodore 64). I was 23 at the time.

How did you get started in programming?
Writing games for the Commodore 64. I tried to sell some of them, but was never successful.

What was your first language?
BASIC. I had a class in BASIC in college, I believe at the end of my freshman year.

What was the first real program you wrote?
As best I recall, a game for the Commodore 64. It was called “747” and was essentially a 2-dimensional version of Lunar Lander. I also wrote a version of it for the TI-59 calculator and got in a bit of trouble when scientists and engineers at Oak Ridge National Laboratory where I worked started playing it for hours at a time. For a short time, productivity at ORNL probably dropped 10%. 🙂

What languages have you used since you started programming?
BASIC, FORTRAN, 6502/6510 assembler, 8086/8088 assembler, Pascal, C, C++, and C#.

What was your first professional programming gig?
Writing an accounting program for a local cable company. I did the work without a signed contract and wrote the whole thing (which mimicked the look of Lotus 1-2-3) in assembly language—in part because I wanted it to be lightning fast, and in part because I didn’t really know any high-level languages. I never got paid for the job. But I did learn that you couldn’t make a living turning out contract software using assembly language. That was about the time Turbo Pascal started making a splash, so I went out and bought a copy and spent the next couple of years writing lots of Pascal.

If you knew then what you know now, would you have started programming?
Absolutely. If I weren’t a programmer, I’d have to get a job.

If there is one thing you learned along the way that you would tell new developers, what would it be?
Be curious and inquisitive. Learn new stuff. I run into so many developers who are so beset with deadlines that they can’t—or don’t—take time to look up and see what’s happening in the world around them. For example, if you’re a Web developer right now, you should be learning about Silverlight. Lack of time isn’t an excuse. If you’re not playing with new technologies at night, then you’re a worker bee rather than a difference maker. Be passionate! If you can’t be passionate, then maybe you’re in the wrong line of work.

What’s the most fun you’ve ever had … programming?
Probably working a job a couple of years ago with Kenn Scribner. We had an impossible job to do with an impossible deadline and a team of two to do it. We worked crazy hours for two months building a cool site with ASP.NET and ASP.NET AJAX (then known as “Atlas”) and didn’t get the final functional requirements until a few hours before the go-live deadline. But it worked, and it had never even been tested against the production database it was designed to go against. When it comes to hard-core trench warfare, there’s no one I’d rather go into battle with than Kenn. Send the guy an e-mail at 2:00 a.m. and if you haven’t heard back by 2:01, his house is probably on fire.

A close second was writing DOS utilities for PC Magazine in the 1980s. I met some amazing people back then (Bill Machrone, Paul Somerson, Neil Rubenking, Charles Petzold, Phillipe Kahn, Steve Ballmer, and Bill Gates, to name a few) and really got a feel for what our industry was all about. I’d work all day as an engineer, then rush home and put on my programmer’s cap and work on my latest utility. As soon as I’d finish one, I’d start on the next, and PC Magazine would pay for as many as I could write. I paid off my first house that way. More importantly, I ultimately realized that I had more passion (and talent) as a programmer than as an engineer. Giving up engineering was the scariest thing that I ever did, but it was also the smartest.

So Who’s Next?
I tag…Kenn Scribner!