It has been many years since I first formed thoughts about this topic, so I wish to share them.
I remember the relief that I felt when I started programming. Finally I was receiving feedback in ways that I was fully OK with. It took many years to understand why I liked it so much, and why I preferred to interact with a program/software/machine than with most humans.
I must say that I was not a very patient person nor very ready to admit my errors, before I met computers. I think what allowed me to grow was their transparent way of dealing with my inaccurate inputs.
First of all, they were consistent: every time I made a typo or called the wrong command, I got an error back. The machine had zero tolerance for inaccuracies and instead of being annoyed by it I was deeply, sincerely thankful. (Of course there are some programs which are not that picky about input, and these are the ones that confuse me most, because I can’t know in advance if the input will be reviewed properly, or if an error can sneak in). I notice that I am confused by inconsistent feedback and I tend to get angry when that happens – but often it is misread as me getting angry for negative feedback, which can’t be far from the truth! What I fear is to be randomly left on my own judgment, and being corrected only at the Nth repetition of the same action. I can’t understand why it was OK for a while and suddenly it’s being corrected. I would really prefer to know all the criteria in advance, even if I know very well that I can’t work on every aspect from the start, because I have the information that this will be worked on at some point in the future. I understand how I confuse people when I say “Let me know about all my mistakes! Don’t worry about giving too much feedback! Don’t try to be nice by giving only partial feedback!” and I can also understand how demanding it sounds. I guess it has to do with a different kind of honesty that sounds brutal when applied to people.
Another important point is that they were factual. The machine didn’t throw back an error out of spite, tiredness or with any kind of emotion attached. It simply pointed out that there was some problem with what I did/wrote, and that was it. No judgment, no making fun of me, no extra layer to decode, just the fact. And when I solved the problem, the machine had zero grudges or worries about the error happening again. It had the apparent patience to letting me try until I found the right instruction to type in, and it meant I could take all the time and attempts I needed. I took it as “OK, I need to learn a bit more about this topic, so that I get the right words in the right order, no matter how unfamiliar this language looks – because it is the language of the machine and it has no other way to communicate, so it’s on me to learn it”. In most other social situations there was some kind of pressure to not make mistakes and not being able to repair the mistakes, and more expectation about everyone knowing the rules already. My machines relied on precisely written instructions and were free from the several implications that puzzled me, mostly because I didn’t mean them.
When I started programming, I felt I entered in a comfortable bubble, with objects I was able to interact in a fruitful and pleasant way. I was able to notice the subtleties of their language and I was rewarded by them working productively and with their remarkable accuracy. When it happened that I mistyped a command and got some output that was exactly what I asked for, but not what I wanted in my head, I felt a bit sorry for the machine as it had worked on the wrong assignment, and angry at me for not noticing the mistake in the command. I never got angry at the machine for not “understanding what I meant”, because I know very well that it is not able to guess that. My patience (and my success) with the machines was a wonder for many. I just can’t think of handling them any differently. There is a complicity with the machines that I rarely get with anyone/anything else. That’s why every laptop I have, and every server I used to maintain, has a name that I remember.
And to finish with a somewhat old picture, here are Galadriel (left) and Matusa (right), my second and first laptops. I am thankful for all I learned from/through them and the worlds they introduced me to.