I came in to work this afternoon because I had no interest in hanging out all day in a hotel room with a neurotic cat. I’m still overwhelmed by all the amazing features that I am going to put into the thing that I am currently building, and I couldn’t figure out which one to freak out about first, so I decided to try out the free git class that Datacamp has been promoting very heavily over social media. Well, there went a few hours that I am never getting back.

Because I am approximately infinity years old, I grew up using cvs and svn, and everything was fine as long as my fellow Gen-Xers were in charge of setting up projects and such. But now everyone is much too senior to deal with such details, and the Millennials are taking over everything with git and Bon Iver and beer with way too much hops.

I was super-excited when the lessons started out talking about putting things in boxes and putting boxes in the mail. I love metaphors. Mostly I use git as a command-line version of Dropbox, and my strategy for dealing with Terrible Mistakes has been to find a non-broken version of the file on either GitHub or another one of my computers, and then copy the good file’s contents into the bad file and commit the fixed version.

Sadly, the git tutorial was mostly a collection of incantations without any insight. If you invoke these two spells in the wrong order, then you need to press control-x, control-s, control-x, control-c and then try again! Who knows why? Not me!

I’m still not entirely sure what sorts of objects git can act on nor what the relationships are between those objects. In case you haven’t guessed by the way that I have described my workflow, my mental model is that there are locations, and there are files, and files are elements of locations. There are also two functions, push and pull, that take all the files from one location and replace them with their counterparts in another location. And then there are the codewords add and commit that define this mapping on the elements (files).

There were also a lot of small-picture things that annoyed me about this tutorial as well. The multiple choice choices were indexed by positive integers, but there was a consistent off-by-one issue. For example, you would press 1 if the answer were 0, press 2 if the answer were 1, etc. They should have either indexed the choices by non-negative integers or they should have used letters instead.

Also, even after you got a problem right, there was no additional information or solution provided. I had no way of knowing whether I got something right for the wrong reason. I know that this happened at least once because it asked me, “Which of the files…,” and I had narrowed it down to two of them, so I chose the choice for one of those two, and it said, “Great job!” and then moved on to the next question.

The auto-grader was also somewhat weird. There was a shell window where you could type commands. And sometimes the shell would tell me that some operation had failed, but the grader would tell me that I had succeeded. Other times, the opposite would happen: it would seem that everything went as planned in the shell, but my response would be marked wrong. Also, there were times when it told me to do one command in the shell, but I had forgotten the names of the files or whatever and wanted to do an ls or pwd or somesuch so that I could remember the name of the thing to type in the one command, and it started freaking out on me. I would love to blame the hole in my brain for my inability to remember things, but really I just have a remarkably short attention span and only limited attention to detail. (Have I shown you the hole in my brain? A cursory search of my assets folder suggests not. Spoiler alert: It is not really a hole; it just looks like one to people not trained in how to read MRIs. It is actually an unusual vascular feature. With the word “feature” used in the same euphemistic sense of, “it’s not a bug, it’s a feature.”)

Meanwhile, I have spent so long on this rant that phpMyAdmin has timed out, and I have lost my small but delightful query that extracts the choices that I will let users pick from when I build this amazing dashboard that I have been procrastinating and self-sabotaging for far too many days.