How I Got Started In Software Development
posted on 06/05/08 at 10:52:36 pm by Joel Ross
Mike Eaton, a member of my twitter tribe, is trying to get to know his tweeps better. As part of that, he asks a few questions to get a better understanding of our background. I figured that rather than answer in his comments, I' post it here instead.
Anyway, his questions are in bold and my answers follow them.
How old were you when you started programming? I was in high school - my sophomore year. I wrote a text-based football simulation on the TI-85. I also wrote a few casino games that allowed you to take your winnings from game to game. I kept that program around for a long time - but eventually, the calculator got left in the basement for a while, and the last time I came across it, the batteries had been dead long enough that the memory was erased! About the only thing I remember about writing it was that there were lots of GOTO statements!
How did you get started in programming? When I started college, I intended to be an architect. Not a software architect, an actual architect - you know, the type that designed buildings. So I started out geared towards Civil / Mechanical Engineering. I'm not clear when it happened, but I suddenly realized I was heading towards Electrical Engineering, and I was OK with that. I'd taken a couple of intro to C/C++ classes, and it made sense, but I was still leaning towards engineering. Until I took Electromagnetic Fields and Waves in my Junior year. I just sat there thinking, "This doesn't make sense. Why would I want to know this?" but writing software seemed to make sense. From that point on, I switched focus from Electrical Engineering to Computer Science. As it turns out, if you combine the two degrees at MSU, you get Computer Engineering, which is the degree I ended up getting.
What was your first language? If you count the TI-85, it was BASIC. If not, then it was C when I hit college. I distinctly remember writing a program that simulated two trains going around in overlapping circles, and we had to handle stopping one train if the other one was already over the tracks. I've always been a model train fan, so if I ever get around to building a train setup in the basement, I can reuse that code to ensure my trains don't crash!
What was the first real program you wrote? What, a football simulator doesn't count? Fine. The first program I wrote that was actually used was a console app that would read a database and spit out a SQL file that you could use to rebuild the database, including schema and data. It started out as a way for us to script out the database for the main project I was working on (it was much quicker to write this simple utility than it was to manually create the scripts just a few times), but it ended up being a simple utility that was used on a few different projects. If you don't count developer utilities, then my first program was a system that allowed clients to build online forms, mostly used to create consumer loan applications. It ended up being used by 20-30 smaller banks to take consumer loan apps and checking/savings account apps online. That was originally released in 2000, and from what I've heard (I've since left the company), parts of it are still in use today.
What languages have you used since you started programming? I used C, C++, Lisp, and Basic in college. Then I used VB, ASP, and JavaScript. Once .NET came out, I switched back to the familiar syntax of C#, but could still use VB.NET if I had to. I've dabbled in PHP and Perl, but nothing serious - my PHP experience consists of what I've needed to manage this blog. Perl experience came because I had a boss who loved it and showed me how to do a few simple text manipulations, mainly parsing log files.
What was your first professional programming gig? I'd done simple things for a couple of jobs, such as the log parsing, but my first job where programming was part of the job description was with Crowe Chizek in Grand Rapids. I started there in late '99, and my first project there was the online application builder.
If you knew then what you know now, would you have started programming? Absolutely! I can't imagine doing anything else. I think it was on the second episode of Deep Fried Bytes that someone said, "I program 10 hours a day. I just happen to get paid for the first eight." Yeah, that pretty much describes my feelings.
If there is one thing you learned along the way that you would tell new developers, what would it be? Get involved in the development community. I don't do as much as I want to, but I do a ton more than I did when I first started out. That's because I had no idea what was out there. Once I learned what was out there, I jumped in (well, the best I could). It doesn't mean you have to be at every community event - it could be as simple as blogging or reading and interacting with blogs (or just twitter, for that matter), but make an effort to get to know the developers in your area - it'll pay off in the long run and you'll have a better support group to help you learn.
What's the most fun you've ever had ... programming? The best times I've had programming is in a team environment - and it get's better the later it gets. I remember one night that we were struggling to get a few things kicked out, and a group of 5 of us stayed until 1 or 2 to knock out a few of those things. We were all in a room together and we had about a 100 chicken wings brought in, some Mountain Dew and (eventually) beer. Music was blaring since we couldn't do that during the day, and no one was in a hurry to get out of there - we knew we needed to be there. Surprisingly, we were able to stay focused and really were productive, while still having fun. The interaction with the other team members seems to get more real when you're working close together and really cranking out the code.
I know originally that Mike asked for answers from his tweeps, but if you feel so inclined, go ahead and answer these questions for yourself. Either post them in the comments here, or better yet, post them on your own blog and just point me to it in the comments.
Categories: Personal, Development