There are some ideas where I feel more or less confident about being true, this is one where I am confident it is a thing, but I am not so confident I understand it.
How much should someone code? Is “=CORREL” enough? What about HTML? I use RSS and Markdown and emojis all the time but I don’t code any of those things. Yet, there’s a lot of talk about needing to code. You need to code to get ahead. You need to code to keep up. We need to code the code’s code! But coding is situational. Replace “code” with “cook” and its like, oh yeah, that’s pretty varied.
What we really mean when we say, “people should know how to code” is that people should be able to use tools to deliver value. Code is a tool that does a job. The appeal of code, says Richard Feynman, is that it’s so dumb it’s fast. Code can also be copied. Code is a tool that delivers value unrestricted to time or place.
There’s a lot of ways for code to be a tool, it depends on the level. Sometimes =CORREL in a spreadsheet cell is the right amount of code. A spreadsheet is code too. There’s a bunch of math behind =CORREL that someone doesn’t need to know. That function is a tool within a larger function, the spreadsheet. All these functions within functions are the User Interface (UI).
“Consciousness is more or less the UI for how your brain works. Much like a UI, it wouldn’t help if Microsoft Word made me code in the structure of a document. There are programs, like LaTeX, that allow you to do that, but they are a pain in the ass to deal with because you have to specify the underlying details. The whole point of a UI is that it is an abstraction that sits on top of all the stuff underneath. For the most part our conscious is the UI for what is happening in our minds.” – Kyle Thomas, Stoned Studies August 2021
This nesting-doll nature of code is to be expected according to Brian Arthur. Yes, he tells Jim Rutt, that it has gotten more difficult to repair the things we use but this is because, like code, we create sub-systems for convenience of use.
“One of the things that happens is that if some sub-system is used often, it might have say 54 parts to it. If it’s used again and again and again, over several models and years it becomes modularized, becomes its own thing and it’s separately manufactured and it may have a cover on it. It may not be accessible to amateur mechanics, and it may only be accessible if you’re trained by Mercedes or Audi or whoever it is. And you’re properly trained. You have the proper tools. So as the lesson here is that as inner parts are used again and again, in the same configuration, the tendency is that they become modules.” – Brian Arthur, The Jim Rutt Show, August 2021
What is code? What does it mean “to code”? It depends!
This is good news. Rather than “learn to code” we should focus on “learn to solve problems”. Many of those problems will require tools. Some of those tools will be code. It is these kinds of problems: needs repeating, needs scaling, fits-with-existing-modules where code will be the tool for the job. Sometimes that code will be deep in the nesting dolls. Sometimes that code will be a simple spreadsheet cell. How many layers of UI depends on the problem to solve, the job to be done.
Arthur is famous for his comments on the Increasing Returns Economy.
Also, this. It gets good around 7:00.