Brian Sullivan recently tagged me to write about my programming background, so here it is. It took me a while partly because I don't usually like talking about myself. Also, I've been quite busy lately both at work and playing with my website.
How old were you when you started programming?
My first real programming was in high school, teaching myself at home. I was 16.
How did you get started in programming?
After I bought some old pc parts off a friend of mine and hacked together a newer pc in our old 486 case. I installed Windows 98 and then got a copy of Visual Basic 4 from another friend. I thought it would be so cool to actually make a program, so I decided to teach myself something. I don't remember where I got the information, maybe online (we had dialup at home then), or maybe I got a book from the same friend who gave me VB4.
What was your first language?
Technically, I did make some extremely simple and goofy things in QBasic on DOS, but nothing that was actually worthwhile. So as noted above, the first real language was VB4.
What was the first real program that you wrote?
When I was learning VB4 in high school, that was the same time frame which I first was learning how to build PCs, so naturally I wanted to price out building a new one. I wrote a program that had fields for all the different components that were necessary. I could input the name/brand/model and the price, and it would add up the total cost for me. It really was a glorified spreadsheet, but it was one of the neatest things to see my own creation come alive. Beyond that, I messed with a simple cash register program that was never really used, but I did intend to use it for a fundraiser we were doing one time.
What languages have you used since you started programming?
What was your first professional programming gig?
When I was a junior in college, after taking my advanced programming course (which was ironically my first exposure to .NET due to the timing of when it was first adopted at my university), my professor, who is partners in an ecommerce company, hired me to do some support for their hosting services. That job would hopefully turn to programming after a few months. Two weeks later, due to some staffing changes, I was moved to programming on a new startup software which was handling medical records. A year and a half later and after a ton of learning, we had UroChart EMR and the newly founded company Intuitive Medical Software, which is where I am working currently.
If you knew what you know now, would you have started programming?
I'll be a little different than most here and say probably. I do thoroughly enjoy programming and software design and solving problems by writing elegant and natural code. However, I absolutely do not enjoy the headaches that come with the job. I'm talking about shifting deadlines and requirements, upkeeping nasty/buggy code, the better/faster/cheaper mentality, or the thought that programmers are naturally meant to work weekends and long hours. Thankfully, I don't have to worry too much about those things at my job, but they still come up sometimes, and I thoroughly dislike it when they do. Sometimes I long for the simplicity of a specialized skill job such as electrician or plumber, but I know those have problems too and I'm just oversimplifying. But you get my point, right?
If there was one thing you learned along the way that you would tell new developers, what would it be?
Make sure you enjoy it. Writing software is so mentally taxing and so difficult at times that it's very easy to get burned out. You have to enjoy the work and really like writing code. Otherwise, it will end up being a terrible thing to face every day. If you don't like writing code, learn another profession early on. Don't get into programming just because you think it pays well or is a high tech job. I've seen too many people who got into it because it was the "smart" choice. The only really good programmers are the ones who really like it. It takes a special brain to be a programmer. Don't feel bad if it's not for you.
What's the most fun you've ever had… programming?
That's a hard one. I think in general the most fun is the days that I'm designing an architecture or writing a whole new system or piece of a system. I love it when I get into that zone where design and patterns start coming together and the whole system seems right at my fingertips and the day passes before I even realize it's lunch time. The days where I go home feeling like I just got there, that's the most fun for me.
Tag, you're it!
Most of my friends with blogs have come before me on this, but I'm sure Tim Franklin has some good stories. Let's here them …