My very first language was LOGO on the Nimbus 186 (this was about 1991). Our teacher basically sat us in front of RM Logo, showed us the basic set of commands and then gave us a hand out where we had to work through doing certain shapes. Square, Isosceles triangle, right angle triangle, circles. Then it went onto patterns like a repeating circle where you change the angle by 10 degrees every time, so we learnt about functions blocks and looping. Eventually we learnt how to do fractals using recursion. It was good since it was very visual and you could see the result of every command appear on the screen. I think you could use this technique to teach programming to all ages really
After that I ended up writing a lot of DOS batch files for automating various tasks on my computer. I wrote one which silently ran MSAV and then Scandisk as well as a few other utilities. I ran it about once a month or so. I did a lot of batch files for my mates too, stuff that would automatically unzip a shareware game onto their hard drive and run it for them.
I then got into Pascal and Borland C. The first thing I wrote on my own actually was a game where you had to race two text cursors from the left side of the screen to the right. It looked like this;
Player one can press Q or W to move theirs and player two uses O and P. So it’s like a track and field button basher game. Just a word of warning, we broke about four keyboards in one afternoon playing this – it can get really competitive!
I agree with what you’re saying though Winkleink. It’s much better to program in anger with a very clear objective that aims to achieve something you want to do – as opposed to some hypothetical made up scenario