Programming

From AdamWiki

Jump to: navigation, search
A TI-99/4A computer with attached speech synthesizer.

I wrote my first program on an Apple II+ in the 4th grade (1978 or so). I quickly became obsessed. Undoubtedly, the movies Wargames and Tron burned in quite an impression. I got my first "home computer" a few years later. It was a TI-99/4A, and I had the expansion box with the disk drive and the extra 32KB RAM, the quintessential speech synthesizer module and Extended Basic cartridge, and a cheesy Epson 80 dot matrix printers. I joined a TI Users Group and wrote a monthly column called "Tricks of the Trade" in their newsletter, where I talked about the latest little programming techniques I had learned in my experimentation.

In college, my parents gave me a $1000 budget for a new computer, and I bought an IBM clone (PC XT) with 640 KB RAM and a bit more disk drive... 20MB or so. I gave up my astrophysics major for a mostly undecided major in computer science. I was a lousy programmer then. I fumbled through a class in Pascal, and wrote a simple Zork-like adventure game for my final project Freshman year. In the next few years, I learned a bit of C, Lisp, Fortran, and assembly language, studied data structures and operating systems and compilers, and spent a lot of time playing a D&D hack-and-slash game that someone had written for the old machines in the lab.

As my college years progressed, I turned into a decent programmer. However, it wasn't until I got out into the workforce that I got good. I've been refining my skills and techniques for a long time, and learned a lot along the way. I've written mapping applications, scientific analysis code using a raytracer, and more batch interfaces than I care to think about.

Most of the coding I do isn't for money, however. I spend a lot of time developing multiplayer games. I have been code staff on a couple MUSHes, and Steph and I run a MUSH called Firan. I've designed and coded dozens of systems large and small for this game that consumes most of my free time. I host a mailing list dedicated to discussion about Softcode, the language MUSHes use.

Programming languages are the quintessential tools for building worlds. With a few dozen commands typed into a MUSH, I can create a cobblestone alley in a world that has never existed. With a few hundred lines of code, I can express the magic necessary to make a person assume a new role in that world. A few hundred more, and I can create food and a means to eat it. More code creates the doors and locks, the horses people in that world like to ride, and the weather patterns that bring rain clattering or sunshine beaming down on those cobblestones. Programming a world is a bit like playing God, and the process reminds you just how mortal you are. It's really hard, and it takes hours to program even the faintest shadow of things that people take for granted all the time.

Personal tools