How I Learned to Program: Ten Years On

Feb 07 2021

It’s been ten years since I wrote my first computer program.

As a kid, I loved to read fantasy novels — I still do! — and my father had a collection of dusty old books with strange pictures on their covers. Naturally, young me assumed these must be magic spellbooks. I remember sneaking into his study and gleefully opening Ivan Bratko’s “Prolog: Programming for Artificial Intelligence” convinced I was about to learn some spells. I remember being utterly disappointed at how totally incomprehensible the book was (I still don’t know what I expected). Still, I stuck with it and eventually I DID come to understand some things. I remember anxiously asking my father if I really had “got it” and him laughing good-naturedly at this.

Some years later, when I was thirteen, I watched “Triumph of the Nerds” and I knew immediately that I wanted to be a computer programmer. I felt so close to the engineers featured in the series, like I was watching an older version of myself. I asked my father the next day to teach me to program. He agreed, and we started out in SmallBasic (By the way, SB is a fantastic way to teach programming!).

It was agonizingly slow at first. I couldn’t do anything, and needed my father to type almost the entire program. But I never gave up. The feeling of being able to describe a tiny reality to the computer and watch it come to life was awesome. I realized that, given enough time and mastery of these arcane code languages, I could make the computer do anything. So I kept chipping away at it. I learned to touch type because it was frustrating to always have to seek out the backspace key to erase some mistake I’d made. I copied stuff from StackOverflow and wondered why the C code I copied didn’t work in my SmallBasic environment. I made all the mistakes in the book; some evenings I couldn’t even get my code to compile, let alone run without crashing. I’m eternally grateful for my father’s patience during this period; I’m sure it was sorely tested.

Little by little, the crashes became less frequent. I began to understand the concepts behind the syntax in SmallBasic, and branched out to Java. I learned OOP to make a crappy GUI system I never did anything with. I spent years loudly complaining about C, then read the Git source code (I don’t remember why) and fell in love with the language. It’s still my favorite.

Ten years later, I’m still in awe. I think code is the closest you can get to sorcery in the real world; to me, being able to build and edit your own reality inside the computer is still, fundamentally, way cool. So thanks a lot Dad, I’d never have learned to do what I love if you hadn’t casually recommended an obscure 90s documentary about the personal computer revolution, and had the patience to teach me to code.