The other day someone asked me how I got into programming. This was an interview question. In retrospect it’s a surprise that no-one has asked me this before. The next time I have cause to interview a programmer, I’ll be sure to ask them the same thing.
My first degree involved a certain amount of programming, but it didn’t occur to me until quite late that I might have a knack for it. Other people on the course had computers of their own, and had been programming for years. I didn’t, and hadn’t.
Well, that’s not quite true. I’d had some encounters when younger, which I can illustrate with some photos I took yesterday at the newly opened Cambridge home of the Centre for Computing History.
The first computer I ever owned was a Sinclair ZX81:
I bought it second-hand. Someone at school had been given it but had since upgraded to a ZX Spectrum. The latter was a much more capable machine, having colour graphics, sound, and an impressive 48K of RAM (in contrast to the ZX81’s 1K). However, the Spectrum was well outside my price range.
The ZX81 manual, which I read assiduously, was written by Steve Vickers. One chapter explained BASIC’s string operators with an example which started with the sentence “Lord love a duck” and replaced the word “duck” with four asterisks. Aged 11 I had no idea what the point of this might be, but I didn’t let that put me off.
[Many years later, I read another book by Vickers, “Topology via Logic”, which was part of the reason I chose to do an MSc on the mathematical foundations of computing at Imperial College. I just missed being taught by him, as he had moved on to the Open University the year before I went there.]
I suppose one advantage of the ZX81 is that you’d be unlikely to waste time playing games on it: there weren’t really any to speak of. There wasn’t a great deal you could do with the thing other than to learn BASIC , which is what I did.
The first time I tried to write a non-trivial program it was for a simple game someone had described to me. I did what I thought I was supposed to do: first I wrote out a flowchart for the whole thing (taking up several sheets of paper, which I sellotaped together); then I tried to code it up. I didn’t write much before the machine became unhappy, having run out of memory. There wasn’t very much I could do about this, so I just gave up.
Actually, at one point I did buy a 16K RAM pack to stick on the back of the machine. However, I never figured out a way to cure the wobble that rendered it useless.
The second computer I owned was an Amstrad CPC464:
This was a present. I was almost shocked by the extravagance of it. The computer had a decent keyboard, a monitor, good graphics and sound, and a whopping 64K of RAM. It came with a built-in cassette-player, although I later bought a disk-drive which cost me several months’ worth of paperboy wages but could load programs in seconds rather than minutes.
Unfortunately, for a would-be autodidact, there were many games available for it. I don’t know how many hours I must have frittered away playing Manic Miner, Elite, Sorcery+, Tank Busters, etc.
Not that the games completely distracted me from programming. I must have written various bit and pieces, although the only thing I can now remember was something to with the Mandelbrot set, based on a Guardian article (written, I think, by either Jack Schofield or Keith Devlin). I was, however, becoming aware of the limitations of BASIC.
I knew about assembler: the ZX81 manual had a small amount of information, and the Amstrad magazine I read had much more. The problem was that I had absolutely no idea how I might go about programming assembler, nor how I might find out. However, having read an intriguing magazine article about FORTH, I bought an implementation of that, and readied myself for some serious learning. This implementation, much like the ZX81 RAM pack, took the form of a plastic box that plugged in to the back of the computer. And, again much like the RAM pack, it simply didn’t work.
That was the end of that.
I came to the conclusion that computers were an expensive waste of time. Whilst I liked the idea of programming, actually dealing with computers often seemed to be an exercise in frustration and disappointment.
My early experiences of computers nearly put me off them for life, but I don’t regret them. Even the frustrations were, in the long run, a good thing since they encouraged a certain scepticism with regard to vendors’ claims about technology. That’s a lesson some people learn much later, and much more painfully.
Of course, there’s another reason why it’s a good thing that I lost my interest in computers for a few years. There are other matters that interest a teenager, and that are probably best pursued by means other than staying in a darkened room staring at a computer screen.
Leave a Reply