Thinking of other activities that many of us share…
Continuing the discussion from NaNoWriMo Talk 2020:
Roger's programming history
I got into this by the other route: VIC-20, BBC Micro. If you wanted those machines to do something, you learned to program them, or you paid a lot of money for… well, the software wasn’t bad, but it had to justify the fixed cost of a cassette tape or disc or ROM cartridge, and a retail box. So it tended to be big (by the standards of the day) and to do one easily-understood thing: a game, a spreadsheet, a word processor. If you wanted something else you had to write it yourself.
So my early programming was fundamentally for things I wanted to do. I’ve got this tape with lots of programs on it, and I want to fast-forward to where a particular one is? Work out a formula to convert tape counter position to seconds of fast-forward, write a program to go at the start of the tape and guide the user through the process. The standard pixel size for user-defined characters is 8×8? I’ll write an editor to make building them easy.
Then it became a fallback career after some other things didn’t work out, and I’ve written lots of code for other people, but I’ve never done a programming course (never worked for anywhere that offered technical training except for “basics of Cisco IOS”, which was quite fun) and I’ve mostly had to be my own critic and taskmaster.
I still look at code and think “what idiot wrote this”, even when the answer is “me last year”.
To me programming is like the best of crossword puzzles and model railways. You’re presented with a puzzle, but it’s not just a matter of “can you find the solution some person came up with” – you don’t know whether there will be a solution at all. You can get into fiddly details of elegance that nobody except you will ever find out about. And at the end of it all, you push a button and it does what you wanted it to do.
So that’s where I’m coming from. “Recreational programming” is still a big part of my life; I can do it for work, then come home and do more of it for fun. I write a host of small programs to do one thing each (usually from the command line), especially shims to fit between two things that don’t quite work together.
I mostly work in Perl but I’m currently learning Raku, Python, Ruby and Rust, largely thanks to the Perl Weekly Challenge (which is mostly for Perl+Raku but I’m amusing myself by writing in other languages too). Also, this year’s Advent of Code has just begun, and the first few problems are pretty easy so it’s not too late to catch up.
Do you program for fun? What sort of thing do you write? What languages do you like?