Anne at random non sequitur tagged me to write up a “How I got started programming” blog post. I don’t normally do this kind of thing, but I was very flattered to be included in her list of bloggers tagged and Anne is a really nice person, so I thought what the heck…
How old were you when you started programming?
About 10. My teacher in Middle School hauled out a Sinclair ZX-80 hooked up to a black & white TV and we entered a very simple BASIC program. This was probably the first time I had ever touched a real computer in my life. I also remember arguing with my classmates about how to enter the program using the ZX-80′s symbol based keyboard, I was obviously a big proponent of egoless programming even then.
How did you get started in programming?
No Apple II here! My parents bought me a ZX-81 in 1981/1982 into which I faithfully typed programs from magazines and books. I ended up doing a lot of tweaking of these programs. First trying to shrink the larger, more complex programs into my meagre 1KB of RAM (later on I got a 16KB RAM pack!). And then changing the gameplay and adding features. This soon evolved into writing my own simple games. I remember writing little text based lunar lander games which then evolved into text based flight sims (no, really). I also had great fun writing some rather complex Kingdom/Hammuribi style games (one of which, running on an Amstrad PCW word processor became rather huge and involved and was probably several thousand lines of CP/M pascal).
What was your first language?
Sinclair Basic. I was a big Sinclair fan, going from ZX-81 to ZX-Spectrum+ to ZX-Spectrum 128. Fortunately I skipped the QL and the C5.
What was the first real program you wrote?
The first real program that I wrote for other people’s consumption was a tool for finding the distance between two points on a map of the United Kingdom. I guess I’ve been writing geographical based programs for a really really long time now. This was my O-Level project at Secondary and was written on the BBC Model B computer. I wonder what kids do for their final year projects in GCSEs now in the UK, program full games written in C++ with OpenGL?
What languages have you used since you started programming?
In chronological order: Sinclair Basic, Acorn Basic (it had procedures!) Z-80 Assembly (without an assembler I might add, I would translate the program into hex by hand. Slow and tedious.), LISP, COBOL (on VAX VMS and then SCO Xenix box), Pascal (many varieties), 68K Assembly, ADA, C, C++, Python, Objective-C. And lots more that I either can’t remember, didn’t get much beyond “hello world” level competency, have been trying go forget or don’t really qualify as a language (javascript! snark).
If there is one thing you learned along the way that you would tell new developers, what would it be?
Oh god. How about this? Kind of like how travel is said to broaden the mind, I think learning (or at least dabbling) in a lot of different languages broadens a developer’s mind. Even if you don’t end up writing software in a new language it will at least change your perspective a little and stop you from getting stuck in a single language rut.
What’s the most fun you’ve ever had programming?
Not sure there’s a single most fun moment. And if there is, it would be due to the people I was working with, or the situation and so on. I have a lot of great stories about the 15+ years I’ve been doing this professionally, but that’s the kind of thing that needs telling over a beer. I do find programming to (generally) be one of the most fun things I can do. External factors aside, I always get a kick out of programming, there’s something about it that just nourishes my mind. So it’s always fun, or at least engaging.