Learning to code
I first programmed at school in Edinburgh in the early 1970s, in a computer studies class which included an introduction to Algol. Each week we wrote our programs on coding sheets and at the end of the lesson they were sent off to the computer centre at Heriot-Watt university. Stacks of punched cards would come back, together with printouts of our programs and their error messages or, very occasionally, some actual output. It could take the best part of a term to get a program compiled and running correctly under this regime.

I was hooked. I scoured the local library for books about programming and in the absence of a photocopier typed out and bound the entire Algol 60 report by hand. Other languages were less attractive: Cobol was deeply puzzling, and I couldn't figure out how the example programs actually did anything. No doubt my almost complete ignorance of computers, data structures and the purposes of data processing was responsible for this, but the experience did make me rather sceptical about the virtues of "human readable" languages. The weeklong compilation time soon became intolerable, and it became a habit to walk the mile or so to the computer centre in the Grassmarket after school to hand in programs and receive output on an almost daily basis.

It turned out that hidden away in a small turret room our school had a teletype which could be connected over a phone line to a computer at Edinburgh University's Department of Machine Intelligence and Perception (DMIP, the "dump"). Some of us gained permission to use this, and we were soon programming interactively in POP-2. A book about the language had recently been published; with its modernistic silver cover it became for me an object of intense desire and in July 1972, at a cost of £3, I acquired my own copy.

At this point I had never actually seen a computer and my fascination with programming had nothing to do with the thought of the machine, coming instead from the languages themselves. I wasn't even particularly interested in what the programs did: in fact, although I loved writing code, it always seemed rather difficult to find interesting applications. I think what I was responding to was the idea of a formal language. I enjoyed Latin as much as maths, and approached the two subjects in much the same way. It seemed natural to treat other areas of experience, such as music, from the same point of view, that of a symbolic system.

The following year we were enlisted into an outreach experiment being conducted by Edinburgh University. Our assignment was to develop a library data retrieval system in POP-2 (an odd choice, in retrospect, and not one that motivated us much) but we quickly graduated to more interesting projects, writing programs to learn to play simple games like noughts and crosses and Nim. We left our turret, and were allowed to use the teletypes at the dump itself. I have very clear memories of the material culture of computers at this time. The department had a characteristic smell of anti-static mats, and on the way to the teletype room we had to walk past a room full of robots. The teletypes themselves offered a rich and sensuous user interface: I can still hear the chatter of their printing, and feel the resistence of their round keys and the rough texture of the paper tape that spooled out of the punch on the left.