I'm talking about a tutorial that involves a thorough description of each and every click of the mouse.
The thing about that sandwich programming introduction is that there is no limit to how detailed the instructions are. You can say "open the jar of peanut butter" and your partner doesn't know how to do it. Maybe they don't know how to execute "unscrew the lid" or even "grasp the lid". The level of detail of the instruction set is arbitrary. The goal is to introduce students to the idea of functions: there are some things the computer already knows how to do, and you can put them together into larger routines.
I worked at a helpdesk for a bit. The reason tutorials don't give you "click at pixel 300, 627" is because you need to understand computers as tools that respond to input according to sensible rules. They are not magic invocations; there are many paths to the same outcome. Say I want you to open a program. I can say "click that icon on the desktop", but I'm just guessing at what level of instructions you understand. For instance, I didn't specify to double-click, so a really clueless user might single-click and ask "now what?" and be confused when I follow up assuming they opened the program. Normal users get annoyed with tedious detail; maybe they normally open programs without using the mouse at all. If I lead by saying the actual thing I want you to do, in this case "open the program", you can ask for more detail if you don't know what I mean.
Since it's got to be appropriate for many people, tutorials can't perfectly guess your level of knowledge. Since they are finite length, they can't fully define this infinite chain of meanings. For instance, if I ask you to create test.js
, you need to know what a file is, what an extension is, what a text editor is, which one you're using, how to open it, how to save a file, how to use a menu bar, on and on and on. Since the tutorial can't ask you what you know and respond on the fly, almost everyone is going to have to look some stuff up themselves. At the top end, there are often no tutorials! We try to write docs and READMEs, but that competes with development time - sometimes you're a new employee, you get dumped into a poorly documented codebase, the last workers quit, and you have to figure it out yourself.
The goal is not to turn you into a factory automaton, moving the mouse to (300,627) and not knowing what to do if there's an unexpected popup. Goal is to get you away from rote repetition and towards understanding what you're doing. If you must, a thinking machine. Practically, you need to plop the serf down in front of MSPaint until they learn to use a computer. Then they can learn programming.