Hmm. OK. I’m not sure how to say this without sounding pretentious, and that’s especially frustrating when my point is that the whole thing is much simpler than it appears, but I’ll try and hope you give my communication skills some slack.

I think you should just take the plunge.

By that I don’t mean that you must or that you ought to. For example, if the problem you described is one you hate so much that you’d rather not spend another second thinking about it, by all means, disregard everything I say here, go and do whatever it is you’d rather be doing. If you have a quarterly report to prepare by the end of the week, just get it done in whatever way you know you can. I don’t mean that you should stop.

I mean that your skill has surpassed your tools.

Imagine someone who needs to have a short, mostly predictable conversation in a foreign language. Understandably, they turn to a phrasebook and maybe a machine translation engine and cobble together enough phrases for their task. Maybe those phrases weren’t perfect, maybe they weren’t even grammatical, but that didn’t really matter: they needed to communicate, they succeeded, end of story. Moreover, their approach was genuinely better than going to a language school: it would’ve taken months, at least, to get at the necessary phrases that way, whereas phrasebook plus MT probably got them there in hours.

If that person then needed to communicate some more, maybe on a slightly different topic, repeating the same approach would be completely reasonable. It might even get faster and easier the next time around, now that they have some idea of what they are looking for and how things work generally. The third time, it’s probably still the same, even if they need to go to the library and go through a couple of phrasebooks to find the necessary sentence templates. At some point, investing in a better, spiffier phrasebook becomes reasonable.

Eventually, though, the whole thing becomes silly. The tasks are probably not getting any simpler, but the phrasebook is just as limited as before. Sentence structures are simplistic, necessitating chopped speech and contortions to get the causal or temporal structure across. Idioms are lacking, leading to verbatim translations and circumlocutions that need several rounds of back-and-forth before understanding is reached. Bizarre pronunciation means listeners need to strain their ears and get annoyed. At the same time, a substantial amount of knowledge has probably been absorbed, just through repeated exposure, it’s just that it doesn’t neatly fit into the first chapter of a textbook but is more smeared over several years’ worth of conventional teaching aids.

This is not the point to conclude that the language is just weird and occasionally insane and requires painful workarounds to express some things. Even if it is so, a bit, no amount of phrasebooks is enough to give an accurate idea of where and in which ways.

That is the point to go find an introductory course. Moreover, this is the point to shine in an introductory course, because things will just click here and there and former mysteries will just dissolve. (Alternatively, this is the point to hire a private tutor who can find the pain points and hit them, given enough stubbornness or arrogance to not get discouraged.)

It seems to me that this is the point you are at in terms of automating things with computers.

The thing is, coding is easy. Programming is hard, it’s a craft that you can study for a lifetime and still have a lifetime’s worth of improvement left. If there’s an authority who can tell you how to go about learning to program, I’m not it. But coding satisfactorily is a matter of a couple of months, and getting out the first lines of code that visibly do stuff is literally a matter of typing them in.

In other words, using text to tell a computer to do something is completely straightforward; that’s literally what it’s for, after all. The difficult part is thinking of a way it should go about accomplishing what you want it to, because it’s really, really dumb and literal, so it needs really detailed and formalistic instructions.

Fortunately, that is the part you already have practice in! You might not have used letters and punctuation to phrase your programs, and the environment you’re used to fitting your objectives into might have simple and complicated things entirely the wrong way around compared to how they really are at the fundamental level, but you do have the mindset for describing tasks in a formal framework, and that’s really the only thing that’s painful to learn.

Sincerely,

a guy who got started by failing to understand a (really trashy) VBA (Office macros) doorstopper, then learned by looking at the results of the macro recorder and attempting to make thingies in PowerPoint go whee.

[This text was originally meant as a preface to a short Python script that would extract CSV attachments from emails and push them to Google Sheets, but it kind of got out of hand and I need to sleep. Watch this space, hopefully I’ll post a prototype here tomorrow.]