My First Program: Doug Fales

Hello world! I am Doug Fales, and I work at Harvest as a developer. I help build and maintain features in Harvest, the Harvest for Mac desktop client, and the iPhone app.

My first program was written in AppleSoft BASIC on my family’s Apple IIGS. I was inspired in large part by reading Clifford Stoll’s excellent book The Cuckoo’s Egg. I can remember thinking how cool it would be if one day I understood enough about computers to do what he had done in tracking down a Russian hacker.

My first program did not involve Russian hackers in any way. To my wife’s eternal horror, it involved drawing a clown face on a grid of 40x80 color blocks. I can’t remember what the graphics mode was in AppleSoft, but the pixels were quite large, and the clown face I drew was all the more disturbing because of it.

Though I don’t remember many of the details, I can vividly remember thinking how difficult this programming stuff was as I laboriously typed out line after numbered line (remember to leave space between the line numbers for future edits!). How did the pros ever finish a non-text-based game if they had to draw out each pixel like this?

This was in high school for me, circa 1996, and I was teaching myself on a lonely technological island from boring reference books that shipped with our old IIGS. No programming classes in school. No real text editor aside from the horrendous BASIC mode that came with the IIGS. Control structures and variables? That would have to wait until college.

Needless to say, this program was some of the worst code I’ve ever written. Yet somehow the resulting feeling of having built something that I had mentally conceived and then translated into a computer’s language was so rewarding that I would decide to do it for a living.

Looking back, the thing I appreciate most about my clueless younger self is the enthusiasm that enabled me to power through until I had something resembling my original idea. My technique and tools have evolved since then, but the process is remarkably the same: an idea, an enthusiastic frenzy of building and design, followed by another idea of how it could be better, followed by more enthusiastic refactoring. It’s important for me to remember this–that what we do has remained fundamentally unchanged, in a good way. That building a complex piece of software for thousands of customers is still as much fun (more fun, even) as hacking AppleSoft BASIC without variables or control structures.