Software Development Meme

I did not line up a Featured Woman post for today, but as luck would have it, I was tagged by Jeff Blankenburg to answer some questions about how I got into software development.  (These questions were originally posed by Michael Eaton here.)  So this counts as today's Featured Women in Tech post, right?  :)  Here are my responses:

How old were you when you started programming?
I was a junior in high school.  It always amazes me when I interview my Featured Women in Technology, and they were programming as little girls.  I wasn't exposed to this world until much later in life. 

How did you get started in programming?
I was pretty good at math and logic, and one of my high school math teachers, Mr. Ron Carlson, encouraged me to take a programming class.  At that point, I had no idea what programming was, but I had a one-semester gap in my class schedule for the next year and the "Intro to Programming" class would fit it, so I agreed.  Thanks, Mr. Carlson!  I fell in love with the clean logic which allowed me to understand and manipulate the language that a computer spoke.  When I started college, one of the majors that I considered was Computer Engineering.  The summer after my freshman year, I had my first internship as a programmer at Ford Motor Company, and it was then that I knew I could be happy doing this for the rest of my life. 

What was your first language?
My first class in high school used Pascal. 

What was the first real program you wrote?
If I assume that the definition of a "real" program is one that someone paid me to build and not one that I wrote for the sheer joy of it, my first real program was the "Reengineered Measurables" application that was built by my team at Ford.  It was an application to store and report on the various "Measurables" from the plant floor (data like the number of cars that were built to schedule, were correct the first time through the line, etc.).  I designed report templates for the front end using the Holos Report Designer, created and maintained the “Build to Schedule” reports, and developed and tested the help files for the application using Robohelp 95.  Whoo hoo! 

What languages have you used since you started programming?
Roughly in order: Pascal, C, C++, assembly language, LabVIEW, HTML, VBScript, LISP, Prolog, SOAR, VB.NET, C#, SQL.  Yes, that's correct - no COBOL and no Java!  I want to learn/am in the process of learning Ruby, Python, Boo, and F#. 

What was your first professional programming gig?
During the summer after my freshman year of college, I had an internship with Ford Motor Company as a programmer. 

If you knew then what you know now, would you have started programming?
Two roads diverged in a wood, and I --
I took the one less traveled by,
and that has made all the difference.

If there is one thing you learned along the way that you would tell new developers, what would it be?
Ask questions.  You will learn, understand, and retain knowledge more deeply if you really question it and think it through. 

What's the most fun you've ever had ... programming ?
In college, there were a lot of fun all-nighters in the computer lab with fellow geeks, trying to get assignments done before the deadline.  In my professional life, I designed an algorithm to cluster together search sessions where the users had similar intents.  The algorithm was somewhat complex, and my first implementation was a performance took at least 12 hours to run (I think we finally killed the process).  I was just a year or two out of college, and I didn't know much about performance.  My process was the bottleneck of our system.  So I researched performance tips and tricks, learned good SQL indexing strategies (thanks Blake!), and eventually got the program running in about 10 minutes.  That was such a triumphant moment. 

I'm not going to call out anybody specific to continue this meme, but if you are so inclined, I'd love to hear your responses to the questions.  Many people have been responding on their blogs all day, and it's nice to get to know them a little better.