How I Got Started in Software Development
General By Dave Ward on July 1st, 2008
Well, Justin Etheredge tagged me in Michael Eaton’s software development meme that’s been going around.
As far as blog-chain-letters go, this is a great one. It’s interesting to see how many diverse backgrounds lead us in the same direction.
How old were you when you started programming?
Five.
How did you get started in programming?
In 1981, hoping to squelch my constant nagging, the parents bought me a used TRS-80 Color Computer (with 32Kb RAM!).
Awestruck, I watched as my Dad connected the computer to an RF modulator, connected the modulator to our television, and tuned the television to channel three. Completely expecting to immediately start playing arcade games at home, my hopes and dreams were summarily crushed within seconds of Dad pressing the power button.
Luckily, the person we purchased it from also threw in several copies of Rainbow Magazine, 80 Micro, and Creative Computing with the computer. After a while, I decided to look into them, still hoping to find a secret way to turn the ‘ol CoCo into an arcade.
At five years old, much of the English content of the magazine was meaningless to me, but I was fascinated by the BASIC and assembly code listings. Never one to give up easily, I started typing and running these programs. One of them just had to be the arcade program!
Over the next few weeks and months, I began to realize that I could change the commands, their order, and even write my own from scratch. I was hooked.
What was your first language?
The TRS-80 shipped with Microsoft Color BASIC in ROM. I hadn’t thought much about that until now, but I guess you could say that I was partial to Microsoft development from the very beginning.
What was the first real program you wrote?
The first program I wrote from scratch was supposed to be a game (sensing a pattern here?), but fell quite a bit short of the goal.
The program displayed the most articulate and detailed instructions screen that I could muster at five years old. My assumption was that if I described the intended controls and theme of the game well enough in BASIC, I would be able to play that game.
While that’s not a bad high level notion of the development process (for a five year old), simply placing that entirely in Print statements wasn’t quite enough for the interpreter to go on.
It made sense at the time.
What languages have you used since?
I have always enjoyed dabbling in any language I can get my hands on. As a result, listing everything I’ve written a few programs in since 1981 would be a pointlessly long laundry list.
Let’s just say everything from BASIC and Pascal to Ruby and C#.
What was your first professional programming gig?
Through the wonders of nepotism, I found myself writing a retail point-of-sale, inventory, and reporting system when I was 13. It ended up being a very interesting endeavor, because it ran on an Amiga 3000 instead of a boring IBM PC.
To give you an idea of just how abnormal this setup was, the database “server” had a copy of a 3D ray tracer installed, at a time when ray tracers were mainly the exotic purview of Hollywood.
Using a DBaseIII database and its odd embedded programing language, mixed with unadulterated fear of failure, I somehow ended up with a fully working product in the end.
It didn’t have much of a GUI, but it was leaps and bounds beyond the days of the TRS-80 Print statement instructions.
If you knew then what you know now?
Absolutely. Without the slightest hesitation or doubt.
What is the one thing you would tell new developers?
Software development is less about coding and more about communication.
Building the greatest mousetrap in the history of mankind is meaningless if the situation calls for a doghouse.
Take every possible opportunity to sharpen your written and verbal communication skills. Do not underestimate their crucial role in your success or failure.
What’s the most fun you’ve ever had … programming?
The one time that sticks in my mind is a final project for CS2430 at Georgia Tech. It was an operating systems and/or C course, depending on the day, instructed by the ever brutal Jim Greenlee. Our final project was to implement the basics of KSH in C (without using any OS calls).
The head TA, Bob, drilled memory management into our heads above all else throughout the entire quarter. Malloc, malloc, malloc. No matter what you asked him, the answer would somehow hinge on the proper allocation, reallocation, or deallocation of memory.
Fast forward to the night before our final assignment was due. My partner and I were furiously trying to finish the project, but simply could not grok how to implement one of the more complex functions. Just before submitting the mostly complete project, I wrote a stub for the function we couldn’t get working:
void SomeFunction() { malloc(0); // malloc for Bob. }
On the graded copy of our source code, Bob wrote “Thanks”, and gave us 100.
Maybe Joel was actually right that everyone should learn C (or at least fake it).
Whew. Is that over yet?
Well, that’s how I got started. Thanks for tagging me, Justin. That was a fun trip down memory lane.
I’m tagging Matt Berseth and Joe Stagner.
Similar posts
What do you think? Your comments are welcomed.
I appreciate all of your comments, questions, and other feedback, but please try to stay on topic. If you have a question unrelated to this post, I recommend posting on the ASP.NET forums. If you post there and then contact me with a link to the post, I'll try to take a look at it for you.
If you're replying to an existing comment, please use the threading feature. To do this, click the "Reply to this comment" link underneath the comment you're replying to.

Comments
The answer to the last question was classic! Hilarious!
Fantastic — this is exactly why I love your blog so much. I, too, had a very similar start in programming (although I spent more time in Color LOGO on the TRS-80 than I did BASIC … gotta love those load times on the casette storage!) at very close to the same age. But what I love the most is your constant reminders that coding isn’t always about the code. I can’t begin to tell you the level of frustration I sometimes run into when inheriting code from someone with no communication (or otherwise soft) skills whatsoever. Keep up the good work!
I’m jealous about Color LOGO.
My parents refused to get that for me. They probably thought it was a game or that I’d make a game with it.
LOGO was the best! Particularly “doodle mode” with the little turtle and the keyboard overlay that turned all the numbers into directional arrows. :) I remember the gigantic manual and typing in the sample programs to make the turtle actually draw fractals. Hardcore stuff for a 7 year old, I was convinced that I was the smartest kid in school. :) And the 3-ring binder that was actually a touchpad, those were my very first computer games. Programs where on the casettes and came with a few pages for the binder, stuff like a maze game, math wizard (or some similar lame concept), etc. Good times!
I can’t imagine programming anything at age 5. Of course, I don’t think I knew what a computer was when I was that age either. Interesting post though :) I had my first experience in BASIC as well, for the TI 83+ calculator. It was much more interesting to program in math classes than actually pay attention…
Good article.
Thanks Dave. You are right, it is kind of fun taking a stroll down memory lane again.