Learning the Language of Abstraction
by Marcus Birkenkrahe
Recently, a student from my data structures class told me he just couldn’t get abstract algebra. He’s one of the brightest — a triple major in math, computer, and data science — but higher algebra (like group theory) felt like a wall he couldn’t climb. That conversation stayed with me, and I turned it into a lecture for my data structures class. It became a broader reflection on what it really means to learn and think in abstract disciplines.
Math, computer, and data science have one thing in common: they are sciences of abstraction. Whole numbers don’t exist. Things exist, and they can be counted. The number is an abstract representation of that act of counting. When we remove the physical objects, we preserve the idea of counting — something we can reason about and build upon.
Over centuries, people learned to remove even more detail to
generalize further. When we replace numbers with functions like f(x) =
x + 1 or expressions like i++ in code, we are no longer counting
things — we are modeling processes. Counting becomes an input–output
relationship, something that can scale to polynomials, physics, or
economics. Every abstraction removes detail, but gains reach.
That’s what makes these fields so challenging to learn. Abstractions are hard to remember and even harder to talk about. They live in their own languages — algebra, analysis, the C++ Standard Template Library, statistical models — each with a syntax, vocabulary, and way of seeing. It takes roughly ten years to learn a natural language, surrounded by people speaking it every day. It can take another ten years to become fluent in an abstract one, often without that level of immersion or support.
That’s why Malcolm Gladwell’s famous “10,000 hours” rings true here: real understanding in the abstract sciences takes time — not just repetition, but gradual pattern recognition.
And that’s the real skill: recognizing and applying patterns. Learning math or programming isn’t about memorizing formulas or syntax — it’s about training your mind to see structure where others see noise.
For me, group theory was that turning point. A mathematical group is like a container abstraction — larger than a vector, because it can contain objects, operations, and rules that bind them. Group theory taught me about symmetry, and symmetry, in turn, taught me about universality. It appears everywhere — in nature, art, physics, and even code. When you understand a symmetry, you can use it to simplify problems, reduce complexity, and connect ideas across domains.
It took me nearly ten years — from my first physics class to my first postdoc — to really understand group theory. I’ve forgotten most of the details now, but not the insight. I still use it every day, whether I’m writing code or designing a course.
Even in data structures, the same patterns return. A stack — that
simple Last-In-First-Out structure — embodies symmetry. Push and pop
are inverse operations: do one after the other, and the system returns
to its original state. The same holds for the brackets we use in
code. The operators [ ] (index) and { } (scope) mirror each other —
enter and leave a container, enter and leave a scope.
What abstraction teaches us is how to see. At first, the symbols feel alien. But over time, they reveal patterns that connect everything else. And once you see those patterns, the world starts to make sense in new and unexpected ways.
Further Reading
- Frege, G. (1884). Die Grundlagen der Arithmetik [The Foundations of Arithmetic]. Oxford: Blackwell.
- Kline, M. (1972). Mathematical Thought from Ancient to Modern Times. New York: Oxford University Press.
- Gladwell, M. (2008). Outliers: The Story of Success. New York: Little, Brown and Company.
- Norman, D. A. (1993). Things That Make Us Smart: Defending Human Attributes in the Age of the Machine. Reading, MA: Addison-Wesley.
- Schrödinger, E. (1944). What Is Life?. Cambridge: Cambridge University Press.
- Simon, H. A. (1996). The Sciences of the Artificial (3rd ed.). Cambridge, MA: MIT Press.