For my first instructional posting, I thought that I’d reach back to one of my finest failures in my history of being a programmer. This little tale harkens back to when I was first starting out in programming, back to my freshmen year in college. I never did a lick of programming prior to entering college, unless you count hacking away at the BASIC source code for that hidden artillery game in DOS 5.0 when I was supposed to be paying attention in high school typing class. Actually, doing that was quite fun, making the explosion radius half the size of the screen — I even showed the trouble maker in the class how to do it, which promptly got him in trouble with the teacher. He never did have that innate instinct for ALT-tabbing when said instructor was walking past you.
Sorry, I digress. I was talking about how I never programmed before college. It was largely true, something that set me apart from the other self-professed computer nerds that were in my computer science classes who had been programming for years. I did, however, have an enormous aptitude for using computers. Sit me down in front of one, and I’d have it figured out in no time. In retrospect, I can probably thank all those computer games I loved back in that day and age for making me jump through all those memory hoops to get them working in DOS (anyone else remember HIMEM.SYS? Extended Memory? Having to fiddle with IRQ and DMA settings and the like? You kids today have it so easy).
My first programming class, Introduction to Production using Pascal, was a breeze. My second, Introduction to Programming II, started off easy enough. As was not unusual at the time and is actually still common today, the class had us using C++. The first few assignments were easy peasy. We were slowly building up a playing card game with each assignment, which is, again, still a common practice today. Then, we were thrown a curve ball by the teacher: the next assignment involved a group project that was a lot more complicated than simply figuring out how to represent the suit of a playing card. We had to (*gasp*) create a fully working card simulator now! By working with other people in class! If you’ve ever had the pleasure/discomfort of being in a computer science class, you know they’re not exactly laden with extroverted people. The idea of getting a program working, a complicated one at that, by working on a team with fellow classmates was almost beyond comprehension.
Still, it didn’t seem impossible. At least, not to us young, inexperienced programmers who had gently handled by kid gloves by our professors so far. Three of us formed a group and thought we’d do fine. (Oh, what a naive group of freshmen we were. Which essentially is the only kind of freshmen.) Not realizing the monumental task ahead of us, we decided to meet one night and crank through the programming code in one night — the last night before it was due. Having not practiced or been wise of the art of structured code, we threw line after line of code into the one main subroutine of the program. Soon, we had a monstrous program on our hands that resembled this:
…something that was amorphous and out of control, and not to mention, there was the increasing risk that our program too would try to eat someone.
We also had a hell of a lot of bugs running rampant in our code. No matter what we did, fixing one seemed to create two more. Getting increasingly frustrated at both our program and each other, we finally gave up and called it a night, with an absolute turd for a program to show for it.
So what happened next? Find out in the next post!
![Tech Memoirs [a tongue-in-cheek rememberance of my tech adventures]](http://www.techmemoirs.com/images/logo7.png)

A HA! Months after posting this article, I finally remember what that game was called that I referenced. It was the QBasic game Gorillas! …Which has absolutely no tanks in it (though it is based on that old tanks/artillery style game).