How I learnt to code

I remember the first time I did a bit of computer programming on my own computer.

It was 1987. I was 11, maybe 12. My family lived in Riyadh, Saudi Arabia. My dad worked out there, because there were no jobs back home in Grimsby. Or no jobs that he could do. Or no jobs that paid well. Or whatever.

We spent most of our days living in a villa on a compound. I am not going to pretend it was suppressive and bad. It wasn’t.

While we couldn’t go out and about so much without my mum having to wrap up, the school day ended at lunch (although started somewhere near 7am), we had a swimming pool, I read loads (Orwell…), I watched loads of films (1987 was the year I saw Ferris Bueller’s Day Off, the Goonies, Aliens, Hannah and Her Sisters, and the Paul Schrader version of Cat People for the first time), and we had KFC at the end of my dad’s working week.

One day, near Christmas of 1987, my mum bought me a Commodore 64. I say “me”, but I think it was really for all of us. I just got the most out of it.

The Commodore 64 came with a really good manual. And I do mean really good. It explained a lot about the machine and how to use it. It explained how to program the machine. It had to.

If I wanted to load something from a disk drive I had to type in a command. I didn’t just put the disk into the drive and it loaded automatically, like a DVD would do these days.

I had to type LOAD “*”,8,1.

The disk drive would whirr, crank, and purr as it loaded in whatever it found not the floppy disk.

So really, that was the first bit of computer programming I did. Getting the computer to load something. (It might have been Monopoly. My mum bought something recognisable. It was a couple of weeks before we chanced onto Winter Games from Epyx and my life was really changed.)

A lot of people talk of the mystical/mythical HELLO WORLD as their first piece of programming. I cannot remember doing that as mine. It had to be loading in the disk.

After that? I got bored of Monopoly - and read the manual fully. Looking back it was an excellent manual, with a very engaging example based tone. I must have done the exercises in the manual one by one.

Early on in the manual it introduces you to a programming language called BASIC. It was quite a simple language to learn. The first example of code (that didn’t load anything in) was very early on in the manual.

PRINT “I LOVE MY COMMODORE”

I typed this, hit the return key, and on screen the computer told me I LOVE MY COMMODORE.

I also remember the first command that felt like I was making the computer “do my homework”. There was an example in the manual for a simple maths problem.

PRINT 12 + 12

I typed that in, hit the return key.

The computer replied 24. Fast! I gave it a few, admittedly simple, maths problems, possibly in the hope I’d catch it out, it’d get one wrong.

I quickly learnt that instead of x for multiply I needed to use *. For ÷ I needed /.

I then learnt I could store values in variables.

LET X = 28 + Y

Put into X the sum of 28 and Y. And Y was a variable.

So my program could’ve been:

10 Y = 3
20 LET X = 28 + Y
30 PRINT X

And while I didn’t do the HELLO WORLD thing I did learn about loops a different way!

10 PRINT “MY NAME IS SIMON”
20 GOTO 10

On my screen - a TV the computer was plugged into - the computer printed MY NAME IS SIMON over and over and over and over (like a monkey with a miniature cymbal) until I forced the program to stop.

From going through the early half of the Commodore 64 manual I learnt concepts then that shaped my coding:

How to display something

How to store information

How to manipulate information

How to loop

Think about the design of my computer program before I started.

…which in short is everything you need to get up and running if you want to go “full code”. And a lot of these programs were simple, short. But they were done in an environment that presented me with no option but to type something in, allowing me manipulate my machine.

Now in 2015 we usually don’t see that. We interact through more visual means. We click on icons to open apps. Clicking that icon is just telling the device you are using to launch a particular program of code.

If we want to “do the code” we usually have to launch something to let us do that, an MS Dos prompt, Terminal, or some such.

The distinction between code and technology is important. Technology isn’t just about coding - and also coding isn’t just about technology. But being able to code the technology isn’t as simple now as it was for me back in 1987 when I had just the one language in front of me – especially when you throw in all the devices and languages out there now. It is overwhelming - but there’s no reason why it should be. Programming, coding exists in places you might not realise as well, such in spreadsheets (like Excel).

Coding for me was fun - and still is fun. It helps me, it lets me make things. I don’t consider myself a “professional coder”. I’ve learnt off my own back, learning and doing in-between all sorts of other stuff. (And I still learn and do it in-between all sorts of other stuff.) My code is not lean, not optimised and what have you (and this has been ruthlessly pointed out to me by “better coders” in the past), but my code does a job. I still get a thrill when I upload a piece of PHP code to a web server and my program runs.

And that’s what matters most: I am getting a computer to do something for me, whether it is functional or (made up word alert) funtional.