/* */
Head of the GNU gnu

Old-School Coder

I have friends (no really! I do!) who poke fun at me for being so old-school with my text editor setup (I’m looking at you, Pyke). I make no attempt to conceal my affection for emacs. I have it nicely customized, just the way I like it – in fact I probably put more time and effort into customizing my editor than I do into customizing my living quarters. But I just realized today that I’m genuinely old-school in my coding. I code in *pen*.

I’m sure that my upbringing has something to do with this. My father was in senior management at Northern Telecom, back in the ’80s (back when they existed!), and before that he was a coder himself (in PL/1, APL and Fortran… *shudder*). I remember him bringing many of his employees to our house for dinner, and some of the earliest dinner discussions I can remember are about core leaks and stack overflows and such. And I remember one programmer in particular; I’m sure there’s one like him in every company, the oldest and smartest guy in the room, who more or less does his own thing until people find a completely intractable problem and bring it to him, whereupon he looks at the problem for a minute, tilts his head to one side, and writes out the solution on a napkin. The difference with Des, though, is that he would write out fully implementable (and commented!) code on that napkin. So that’s what I grew up thinking a “proper” programmer looked like.

Well, I’m certainly not a “proper” programmer. I *like* programming, and I sure do a lot of it, but I’ve got zero training in it (I took one computer class – “Fortran To Wash Out Wannabes”, I suspect it was called, and it worked!), and I’m the first to admit that I know diddly-squat about coding. But I really enjoy it. I like languages (both human and computer), I like math, and I like puzzles, and coding is the intersection of those three sets. But I don’t know enough about *any* programming language to just sit down at the keyboard and bang out a program. So what I do is, I think about a problem for hours or days at a time, and then I get out my pen and I write my code. The code is generally wrong, and will get crossed out and scribbled on repeatedly, but I still do this almost every time. Only when it looks reasonable on paper do I enter it into emacs and then try to run it. (That’s when the weeping and wailing and gnashing of compilers happens, of course.)

What I *don’t* do, is code by “Googling StackExchange”. Sure, I spend a fair amount of time on StackExchange looking things up, but since I’m not coding for a “real job”, but rather for the fun and challenge of it, I want to know why each bit I find works, and how to make it bend to my will and do what I want it to. And since I have no computer programming training, that means having to take apart every line, every clause, every idiom, to see what makes it work. I’ve written a set of routines for emacs to make this easier (essentially tools to uncompress commonly compressed web code), but when I really want to see how something works, I write it out in pen. Then I can go at it just like I would parse a difficult bit of Latin, by circling parts, drawing arrows to other parts, crossing things out, writing superscript notes… and eventually constructing my own sentence to make sure I understood it. All in pen.

Needless to say, this doesn’t get me invited to a lot of hackathons. What young, lean, agile code-bro has the patience to put up with the old guy who uses *actual books*, and is busy scratching away in pen trying to figure out what the program is supposed to do before he even starts up his IDE? I mean, he probably doesn’t even have any Reputation on StackExchange!

The funny thing is, when I’m writing a blog post, I actually *don’t* write in pen. I suspect that’s because when I write code, I have to write slowly, which forces it to be almost legible, whereas if you have any doubts that I’m a highly-educated person, well, you should try to read my handwriting. When I’m actually writing prose, my handwriting is beautiful and elegant and completely illegible. There are a few people out there who can read my writing, but most days I’m not one of them. So right now I’m writing this (of course) in emacs. I can tell you’re surprised 😉

So if you started reading this post wondering what I code, I’m afraid I’m going to disappoint you on that score… until another time, that is. Well, for the intensely masochistic among you at least.

8 responses on “Old-School Coder

  1. David Garland

    Interesting. I do all my coding, such as it is which is usually boolean PLC programming, on the device in question but all my writing in pen. I simply cannot get the proper part of my brain in gear for imaginative writing while sitting at a keyboard. Computers trigger the analytical and logical sections of my brain, not the free-form creative sections.

  2. Stephen Savitzky

    Fun! I don’t think I’ve coded in pen since high school, but emacs… yeah. The only thing I use an IDE (Eclipse) for is the huge java projects we work on at my day job. Parts of my .emacs file go back to 1990 or thereabouts.

  3. Alan Pollard

    I am reminded of an old programming saw attributed to Gerald Weinberg:

    “If builders built houses the way programmers built programs, the first woodpecker to come along would destroy civilization.”

    You are programming the correct way. My personal opinion is that the modern coding technique of “Code a few lines, compile and test; Repeat” leads to software that is at best bloated and at worst full of bugs and insecure.

  4. AdminOhAndBen Post author

    There are definitely places for the REPL (are my lisp roots showing?) – being able to test a function at a time is brilliant! – but coding without a plan in mind wouldn’t work very well for me. I’d set out to build a database and instead write Ulysses backwards. Well, ok, there’s not much difference in lisp…

  5. Mallie

    Late to the party, but love this. As my business becomes more and more digital, and the digital bits are scheduled and automated, I find myself reaching for analog implements whenever I can. Though, yes, I must use Google Calendar, my trusty planner is paper, and color coded with Prismacolor pencils and Micron markers!

  6. AdminOhAndBen Post author

    I have tried both electronic and paper calendars. I have settled on a hybrid system: when I’m on tour, I keep everything electronically in Evernote, very carefully organized. When I’m not on tour, I avoid doing things at all costs so I don’t have to remember when anything happens 😉