Transparent process

I was having a conversation with a colleague and the phrase “transparent process” came up. It’s a great phrase, and it strikes to the heart of some interesting cultural questions.

For example, why is there a rich general shared culture of music, or of cooking, or of gardening or acting or writing, but not so much of computer programming or architecture? There are many answers to this question, but I suspect at least part of it has to do with transparent process.

The process of getting into music or cooking or gardening or acting or writing — and of many other crafts and skills as well — is quite transparent. Even a beginning musician or writer understands the basic process, and is able to perceive and absorb the ideas of advanced practitioners.

Yet many fields — particularly those we think of as the “technical fields” — don’t seem to offer this level of transparency. Most people can pick out a melody on a musical keyboard, yet most people cannot write even the simplest of computer programs.

This is not for lack of trying. There have been many attempts to create a transparent onboarding process for budding programmers. And yet it is arguable that these efforts have failed, at least in comparison with efforts to show that “anybody can cook” or “anybody can play the piano”.

I wonder whether this is due to an inherent opacity somewhere in the process of learning the so-called “technical fields”, or to cultural bias. Or perhaps it is due to something else entirely.

5 thoughts on “Transparent process”

  1. I’d be curious to see some hard data on your “most people can tap out a melody vs. write simple code” claim.

    It could be as simple as a show of hands in an undergrad class required of all students:

    How many of you can play “Mary had a Little Lamb”?
    How many of you can write FizzBuzz?

  2. Perhaps it’s because in the two technical fields you cite there is a high precision to low functionality ratio. In other words, you have to get a program/blueprint exactly right or it will not compile/stand.

    In the non-technical fields mentioned, the ratio is exactly opposite. Imprecision still produces edible/hearable/thriving/tolerably performed/readable results.

    Which raises the question: Are there “technical” fields that do no require precision? Is the colloquial understanding of “technical” really just “sufficiently precise?”

  3. I think the big problem with how we try to teach new programmers is that we try to treat the language or the syntax as the fundamental unit of programming, rather than the *algorithm.* We have a notion of introductory programming languages based on simplifying syntax, and abstracting away the technical minutiae like memory management and data types, but we don’t spend any effort developing the concept of breaking a task into discrete steps that can be followed by a machine that will only do what you ask it to do.

    The introductory programming exercise shouldn’t be “Hello World,” which is about syntax, it should be “FizzBuzz,” which is about writing a simple algorithm.

Leave a Reply

Your email address will not be published. Required fields are marked *