What are you coding?

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?

3 Likes

I used to program for fun, but I gradually stopped as I got older and employment as a programmer became more demanding. When I did it, I mostly used Perl, with occasional C. Nowadays, I find writing (mostly about RPGs) more entertaining.

2 Likes

The more I work with Vassal, the more I think I could learn to program, and enjoy it. As others have said, it’s the process of taking big problems and breaking them down and down and down into solvable problems that I enjoy, and I’m good at it.

I’m no programmer though, that’s for sure, and I don’t know when I might find the time to learn.

2 Likes

A year? That’s generous. For me it’s usually “ugh six weeks ago”

My professional language of choice has been Java (I started uni the year JDK 1.0 came out).

My first programming language was GW Basic (quickly followed by Pascal) and going back to that other discussion one of my first programs was me trying to get the computer to write poetry which nearly ended with me moving to another city so I could specialize in computer linguistics but my local university had an excellent computer science program back then–still does–and so I ended up where I am.

As stated above I rarely code privately but I do all kinds of little automation tasks obviously when the need comes up. Those can be in excel/sheets, bash, perl, a bit of ruby, php, javascript, mysql, “clever” combinations of shell commands (I am particular fan of awk), basically whatever tool seems to work the fastest.

Boardgames in general are a thing among those interested in logical puzzles professionally. Why not the other way around? :slight_smile:

3 Likes

I’ve just written a program (in Rust) to act as a solo opponent for Letter Tycoon. :slight_smile:

For me awk is mostly a tool for one-liners now that I’ve got fluent in Perl. (And any shell code more than about a screen’s worth tends to get rewritten in Perl, because even if I’m just calling programs and checking their return values it’s So Nice not to have to worry about shell escaping.)

3 Likes

I haven’t written code literally in decades; the closest I’ve come is, on one hand, cleaning up TeX documents, and on the other, setting things up in Excel. But perhaps sort of analogous to your relationship to code is that I work as a copy editor, and then for relaxation I read things or write things. Now that the University of Kansas is semiopen I’m hoping to get a library card for them in the near future, so I can access scholarly books . . .

3 Likes

s/last year/yesterday/


I learned to program as a small child; my parents had a Commodore 64 and a book of Commodore 64 games you had to type so that you could play them. Sure, it started with me typing the game, playing it for a bit, and then turning off the computer. But it wasn’t long before I realized that the things I was typing controlled what the game did when I was done. So, I started fiddling with the games (at that age, roughly 7 or 8?) it was mostly just cheating to make the games easier. But sometimes it was “hmm, it would be cool if I could do X…” and then me using trial-and-error and leveraging the constructs I’ve seen in other places in the book to try to change the way the game worked. That’s how I learned BASIC.

I continued programming in BASIC, on the C64 and then later in QBASIC and later still in gwBASIC, for many years until highschool. My highschool had 2 programming classes: BASIC and Pascal. So… I took the BASIC class (and still managed to learn some things) and then took Pascal and… well, learned Pascal (which I don’t remember any of). The teacher that ran both programming classes was also a math teacher, and quickly became my second favorite teacher; so during my senior year, I asked if I could be his student aide (a credit “class” for seniors where you just assist a teacher in whatever way they want you to help). So, for the majority of my student aide semester (besides him letting me do my homework for the math class I was also taking from him at the same time), I learned C, as it was going to be offered as a class for the next year and he needed help working through the curriculum, making sure a student could figure out the answers (and generating a host of working programs/answers that could be a reference for him). I think by the end of the semester, I knew more C than he did, and I seriously worried about how he was going to teach the class.


And then: I did nothing at all to do with programming for a long time. I mean, sure, I’d fiddle here and there, mostly trying to automate little tasks. My late teens and early 20s were a blur~ I do remember doing lots of scripting for “mod-able”[1] computer games, and writing a few IRC bots.


And then, sometime in my 20s, I managed to break into IT work. I have said for a long time, “I know how to program, but I am not a programmer.” And that’s true on many levels. There are a few companies where I live that have a long, profitable history of recruiting young programmers right out of tech schools, working them half to death until they burn out, letting them wash out, and rinse-repeat for the next class of nearby tech schools. My cousin did that (and decided he doesn’t actually like programming; he’s a professional gambler now… so… a lot like programming, just on different hardware).

My work in the IT field has always emphasized networking. Networking is rife with opportunities to do task-automation. So… that’s the bulk of what I’ve done for the last 15 years.

I recently had an opportunity to apply to join the team with a former coworker (whom I coached quite a bit when it came to programming) to join a team responsible for SDN (Software Defined Networking) for the hosted portion of a medical records software giant. Unfortunately, it was too little “networking” and too much “software” in the role.

So, my current role sees plenty of opportunity to write little scripts or helper apps to help me do my job… so that’s what I do. And, as usual, there’s a fitting xKCD:

My current tools of choice are Python, awk/sed/grep/paste, or bash/sh. I was once a Ruby fanboy, but became frustrated when it, seemingly, became synonymous with Ruby On Rails (I am bad at and cannot stand to do front-end web design)


1 – Some games are only as mod-able as you make them.

3 Likes

Capable of being moded, or capable of being modded? I read it as the first, but I think you might mean the second . . .

1 Like

I suppose moddable would be the correcter term.

1 Like

Well, it’s the older spelling convention, which I grew up with. But the older convention also calls for traveller rather than traveler (my friend JPS used to mock that spelling by saying “traveeler”), and the latter is now standard American English. So I don’t know about “mod-/modd- able”.

I also grew up with “mike,” so every time I see “mic” my brain says “mick?”

2 Likes

Marc Miller may have confused a lot of people.

Generally when I say “Ruby” people go “ew, constantly changing language spec”, which doesn’t actually seem to be true any more. Mind you, I only paid attention recently because it’s the language used for plugins in Discourse, and I had to update the dice roller. :slight_smile: All I know about Rails is what methods a plugin invokes / is invoked by, because as written it had bugs and no tests, and I wanted to do something about that.

There are some very nice things about Ruby; the Perl influences are extremely obvious, and I like Perl, but it also has a lovely consistent object orientation. For example, the count of elements in an array is a.length, and pushing an element to it is a.push(b). In Python the latter is still a.append(b) but the former is len(a), presumably because len() can apply to lots of different sorts of thing. It’s a non-orthogonality that irks me.

Python gets stuff done but I don’t yet feel any love for it.

Rust on the other hand does my head in, but largely in a good way.

I am a Unix/Linux sysadmin, and to me that means that I live mostly on the command line. The tools I write tend to do a thing, then exit. One of these days I’ll learn a JVM language (probably Scala) but the startup time makes it a bad match to the kind of thing I do.

And of course there’s PostScript, which is the closest thing we have to Forth that people still use. Needs a very different mindset to write it idiomatically. Horribly slow for any kind of serious processing, even under GhostScript, but great fun.

2 Likes

It’s a good thing there’s only 3 days up so far, or this would just consume my entire day. I had a lot of fun going through both challenges for each of the 3 days.

2 Likes

I can contribute to this thread. A group of us started playing Here I Stand at the start of Lockdown in March, using the wargameroom.com implementation. It writes a text log of the game, and… well I made this:

Here I Stand log parser. It’s buggy, but it’s not bad at fetching stats out of the game log.

We’re on game 8 since starting, and we’re still going, though we meet less often now.

I also made a thing that manages your hand - not hugely inspiring for anyone not playing Here I Stand, but my first go at using a modern js framework.

I’m now working on an implementation of a 2-player game that my son invented as a school project. It’s my first foray into html5 peer-to-peer networking. I’m enjoying it.

In answer to the question ‘what languages do you like?’, the answer is emphatically Javascript, though most of my work has been php, which is a language I tolerate, and previously Java, which is a language I dislike. In answer to the implied history question: BBC model B BASIC, and I have a GCSE in computing to show for it - more or less my most recent programming qualification.

1 Like

I’m trying to learn app development using Swift (Apple), bought a Mac Book just for it. Was doing it every day, starting at the very beginning, haven’t done it for a while. I ended up using the Macbook for writing (did Nanowrimo on it).

I used to program in a propriety 4GL, and thats all I’ve done professionally for about the last 30 odd years.

2 Likes

I started coding my senior year of high school when we had two classes: AP Computer Science and Computer Programming. CS was in Pascal while CP was in C++. CS was lecture for all but one or two days a month, where we got to sit at computers and program. CP was the inverse, one or two days of lecture, the rest of the time behind a computer.

Probably unsurprisingly, I learned C++ much better than I did Pascal. Though I did struggle with inheritance. Going to college, I was advised I could probably skip the first semester of the CS course due to my previous experience. This turned out to be a horrible mistake, as some things were covered that I did not know, as well as inheritance, which I still was not good with.

Also, our programs had to compile and run on these decrepit Mac computers in the labs, and they were all mismatched somehow (my code would execute one one, but not another), though the programs always worked on my computer. I ended up needing to retake that whole year, right when they switched to Java, which I also did not do well with.

I did eventually graduate with my CS major, but that was right when the dot coms all crashed, and jobs for my major practically disappeared, and I became a basic office worker.

Once that job ended due to layoff, I took some classes using the continued education offer in the severance package and managed to get into a basic IT job, deploying computers and basic desktop support. After some years, that led to my current job as network administrator for my company, where somehow I have become the guy who edits our in-house software when it needs to be modified.

Like @pillbox, I know how to program, but I am not a programmer. I cannot re-build our programs from the ground up (as a contractor was doing when I was hired), but I can read through the code and tweak it where needed, after some trial and error. I know just enough to be dangerous. :slight_smile:

3 Likes

Did you graduate in 2002?
Because I did and I ended up taking a job with a company I had sworn I would never work for after declining the only other job I was offered because it was such an awful prospect. The early 2000s were horrible to enter the IT job market.

1 Like

2001, actually. I just had temp work for the longest time before finally getting a temp to hire position at the main office of a retail chain here. Then a few years later, all the jobs got moved to another state, where I did not want to move, so I took the severance offer. After a year of unemployment, got hired as a temp to do IT and years after that, got my current job. It was a long and rocky road.

2 Likes

The thing that you’re good at is what I’d describe as programming, at its most abstract at least. Most of the rest is just experience. And judicious use of Stack Exchange.

6 Likes

I’d say “not quite”, but only because you need to be able to know when Stack Exchange is talking rubbish or not solving your problem.

3 Likes

I think Stack Exchange’s inbuilt rating system does a remarkably good job of burying the rubbish and letting the good answers float up. At least, there’s no other Q&A site on the web that comes close to being as useful. You still have to be able to assess the code, though, I agree.

3 Likes