The Two Cultures originally referred to the schism between the sciences and humanities. However, I’ve noticed a similar schism in computing between users and programmers, which makes it hard to teach programming to beginners.
In computer user culture, each piece of software is a tool for getting something done … Each app on a user’s computer, tablet, or smartphone is a self-contained digital tool with a specific purpose.
In contrast, in computer programmer culture, each piece of software is an agent with whom one can hold a conversation, via either programming or chaining together shell commands. … Learning to use these programmer-centric tools is like learning to speak new artificial languages
I don’t have a magical solution to this issue. I just want to highlight the fundamental cultural disconnect between programmers, who routinely talk to their software via decades-old command-line interfaces, and ordinary users, who exclusively use modern GUIs.