Adventures in Computer Programming

I was starting to write a Python cheat-sheet, holding some common things I regularly had to google. It began with an introduction describing how I got into programming but things got out of hand and I found myself waffling a bit and going off on various asides. The introduction has expanded a bit too much and probably deserves to be an article in its own right.

The Beginning

Like so many people of my generation, I started off programming in BASIC on the ZX Spectrum. The home computer boom of the early 80s got so many people programming and had a lasting effect on the UK computer industry. I learned Z80 assembly programming (but never got further than writing a few routines to improve BASIC programmes) and dabbled with a few other languages, such as FORTH. The latter was thanks to the ‘White Lightning‘ compiler which was sold as a game writing tool. I only ever remember seeing one game written using it (I think it was Toilet Truble and I had it as part of a compilation. I have no idea how I found out it was written in Forth, I must have been poking around in the code.

Compilers were a bit of a novelty back then though. Games were mostly written either in Basic of machine code. Some games would be advertised as ‘100% Pure Machine Code’, suggesting that interpreted or compiled languages were second class citizens. I did have a basic compiler – MCODER. This only supported a subset of BASIC (no floating point or string evaluation) but produced a decent speed increase and was used to produce a few games. I don’t think there were ever any instructions on how to distribute software written using it and the only way of running compiled code was to have the full compiler present in memory. I remember discovering that the game Strontium Dog: The Killing was written using it and as a result included a full copy of the compiler. I don’t remember if this was discussed in the magazines at the time, but it meant you could get a free compiler if you bought the game.

More Bits

From the Spectrum, I moved to the 16 bit world and the Atari ST. While this did come with a version of BASIC, it wasn’t very good and ran very slowly. I bought the HiSoft Basic compiler and wrote a few programmes using it before dabbling with C and 68000 assembly language. I wrote Mandelbrot Set generator in assembly, using a set of fixed-point arithmetic routines I wrote. It would use 16- or 32-bit versions depending on how much you zoomed in. This meant it would run quite quickly at first before slowing down when you zoomed in further.

The PC World

I got my first PC in the early 90s but didn’t do any programming on it for a while. Despite running Windows 3.11, it only came with the DOS based QBasic. I eventually obtained a public domain C compiler (presumably some variant of gcc) but still didn’t do much programming.

At some point I decided to learn Perl and dabbled with using it to write websites. My original blog used a Perl-based CMS and I wrote a few plugins for it.

Now

I went back to University to study Computer Science, where we mostly concentrated on Java with a little bit of C. Basically this brings us up-to-date. I eventually got a job as a software developer, initially using Java but I’ve been increasingly using Python for some things. Despite having used Python for a few years (8 and counting!), I still need to google how to do a few things which leads me to the original purpose of this waffling – the Python Cheat Sheets I was going to write.

Leave a Reply