Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It took me a long time to realize that, in the field of math, people come up with abstractions in the same way you might think of an abstraction in software engineering.

I was confused as a kid. Why create imaginary numbers? What is the point of matrixes?

It wasn't until later I realized that these representations were designed. If you make up this thing called an imaginary number, these calculations become easier. If you write linear equations like a matrix, it's a lot easier to reason about than writing out the full thing.

It sounds obvious but nobody ever told me this!

Just me?



This continues to be true when you study more abstract math. e.g. "group" is an interface, and "a group" is any type with an operation that implements the 3 required properties/methods. Likewise with vector space, ring, metric space, category, etc. Math is full of interfaces as a "design pattern".

(Interfaces in math are more like type classes and not inheritance in programming. e.g. the same set/type can be a group in more than one way.)




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: