Are design and programming math?
Wait, is everything math? What the hell is math, even?
Roger Antonsen’s TED talk has a clickbait title. I recommend watching it nevertheless, because he’s onto something:
And I don’t mean his stunning locks.
He’s zoomed all the way out and tried to frame math in terms of knowledge. You thought it was about opaque functions and operators, but it’s really about understanding patterns. I learned early in my career that the best way to learn something is to look for patterns. I guess this applies to math, too.
He also says math is the language of describing those patterns. That makes sense. I think math is mainly concerned with producing an efficient representation of some observations about the world. It appears arcane from the outside because over the centuries, mathematicians have mastered describing patterns with language and crafted a concise grammar. That grammar expresses things tersely, allowing them to do less writing, but it’s inaccessible to outsiders.
Guess what else appears arcane, inaccessible and dense from the outside? Programming!
Programming is a lot like math, but instead of being terse for people, it’s terse for computers (though honestly, math is terse for computers too, except computers used to be people). It’s no wonder they’re both concretisations of logic. Still, I’ve always felt it was a mistake to think you need to be great at math to be a great programmer. Math use in programming is infrequent and mainly domain-dependent. You can design great things using code without using much math. What’s important is conveying logic with language so that someone else, either a person or a computer, can make sense of it. In that way, both math and programming are really about communicating.
What else is chiefly about communicating? Design. You can do math, programming and design in your head, but there’s no real reason to come to a shared agreement of how to express any of them unless your real goal is communication. To communicate means finding the right shape for your ideas so that someone else can understand you. That’s design.
Design is also about understanding patterns. Think of the tech companies creating “visual languages”. There’s that word again: language. These are systems that codify the rules, constraints, patterns and behaviours of their products to be reproducible. Aren’t rules and constraints concepts from logic and math?
Roger points out that mathematical equations show you two perspectives on the same truth. Understanding is also about perspective. And if math, programming and design are all about recording different ways to perceive observed patterns in a shared language, could you say math is the same thing as design, but from a different perspective?
Roger later talks about how having multiple perspectives helps you teach and build empathy. Empathy is at the core of design. If math can teach you about new perspectives that help you be more empathetic, then it teaches you to be a better designer.
Looking at math from this perspective — if math is about understanding patterns and having empathy — maybe it is important to be good at math to be a good programmer or designer. But since I just broke down the definition of math, I don’t even know what that means anymore. Does it just mean good at learning, considering its etymology? Good at pattern matching? Does it work both ways? If I’m already good at those things, am I good at math after all?
If all of that wasn’t enough, it turns out math doesn’t have a fixed definition. It’s a controversial philosophical debate, with participation of everyone from Charles Darwin to Bertrand Russell. Great.