How I Got Started in Software Development

Mike Eaton started this meme back at the start of the month.  It’s been interesting reading all of the people who have thrown in their answers to his questions.  You can find Mike’s original post and a host of links in the comments to other people over on mike’s blog.  Here’s my answers to his questions:

How old were you when you started programming?

I think I was about 11 or 12 when I started programming. 

How did you get started in programming? 

My brother and I had been clamoring for a computer for quite a while.  My dad spoke with several of his brothers who had technical backgrounds and decided to purchase a Commodore 64 for us.  On the advice from one of my Uncles he didn’t buy us any games for it, but did purchase a programming in Basic book.  For about a year all we had was the computer and the basic book.  If we wanted a game we had to code one.  The majority of the code we wrote were choose your own adventure type games.  These tended to be VERY short since we had no storage mechanism until we got a cassette tape drive several months later.  Eventually we did get a 5.25" floppy drive (LOAD “MYAPP”, 8, 1 anyone?).  A couple of years after getting the C64 I remember saving up money to purchase GEOS for the Commodore and I thought that was just the greatest thing.  I did actually use it for school. 

I got a 386 sometime in high school when I was taking some development classes.  The development class was actually on Basic, but since I already knew Basic the teacher was teaching me Pascal.  We used Borland’s Turbo Pascal on 8086s at the high school.  In college I took one C++ class (of which I remember next to nothing) and tested out of a Pascal class.  My major wasn’t Computer Science.

What was your first language? 

PET Basic on the C64.

What was the first real program you wrote?

Hmmm, this is a tough one.  If you mean not for fun or a class assignment then it would have been a simple application that helped teachers at the high school.  To be honest I don’t recall what it actually did and I think only one of the teachers ended up using it on a regular basis (which thinking back probably means whatever it did, it didn’t do well). 

If you mean for money then it would have been an Access application (does that even count?) that helped a construction company keep track of time spent on specific tasks.  The job foreman would use a PALM Pilot to collect data in the field and then would sync when they got back to the office.  The synced data would be loaded into an Access database for reporting.  I used a product called Satellite Forms from PumaTech to code up the Palm Pilot forms.

What languages have you used since you started programming?  

PET Basic, Pascal, C++, JavaScript, VBScript, Visual Basic, VB.NET and C#.  If you can count HTML as a language then you can throw that in there too.  I’m learning PowerShell now and am interested in learning Ruby, but haven’t taken any real steps to do so.

**What was your first professional programming gig?  **

I worked as a consultant for a company that at the time was named Inacom KY.  Later it became NetGain after Inacom corporate went into the tank.  The afore mentioned Palm Pilot app was my first gig with them.

Prior to working for Inacom I did work for Eastern KY University in their housing department.  I was hired to help with making housing assignments and such, but part of my duties involved keeping up the Housing website and dealing with a couple of legacy databases they had in Alpha 4.  This is where I picked up my MS Access skills as it was a superior product to Alpha 4 (believe it or not).  I don’t count any of the apps I did at EKU as “professional” but they were all functional.

I would have to say that being a bachelor only a year or so out of college and working on a college campus definitely had it’s perks.  Of course, there are those pesky ethics about dating students that got in the way….usually.

**If you knew then what you know now, would you have started programming?  **

Yes.  In fact, if I knew that my first career choice wouldn’t be what I would have stuck with my major would would have been computer science.  Then I’d have a much better background in CS theory and things like BTrees algorithms would actually make sense to me (maybe).  Instead I know how disarm a person wielding a gun and immobilize them (not very useful in day to day work situations).

If there is one thing you learned along the way that you would tell new developers, what would it be?

Find mentors and people resources.  Find people that are good in the field that are willing to help others.  No matter how smart you are eventually you will get tunnel vision on a problem or get stuck on something.  Having someone you can ping for help is a must.  We all have Google/Live, but if you’ve exhausted the search engine  route you need to have someone who can help.  Find several of these so you don’t wear out the offers for help on just one of them. :) 

Find someone you really respect (they don’t even have to be in software development) who is willing to be your mentor.  In fact, find two or three.  If you want to have a career and not just a job, a mentor can give you advice on how to do that.  It is said that we learn from our mistakes, which is undeniably true, but what’s even better is learning from other people’s mistakes before you make the same ones.  Mentors can share their experiences and advice that can help you out immensely.

Where do you find these resources or mentors?  You can find them at work, church, conferences and (especially for developers) user groups.  People that come to user groups are already interested in learning and sharing.  Create a network of people resources.  They can help not just when you get stuck, but also when you want to look for that next opportunity or need advice.  Being in the user group has definitely changed my life and expanded my network.

What’s the most fun you’ve ever had … programming?

Well, even though I was on a tight deadline and overworked (I got 200 hours of overtime in a quarter), there was the project I learned .NET on.  I was learning .NET and spending a LOT of time with some really good people.  At one point there were about 12 or so of us put into a “War room” (back then they weren’t called war rooms, they were called “where we have space to put contractors”).  The dynamics of the personalities were just great.  DONKEY!

Well, that’s about it.