# Learning to Learn: Math Abstraction

We simplify complex ideas to understand them. When working well, math makes things simpler. (Occasionally the medicine is worse than the disease.)

Let's change the generic "Math teaches you to think" to a more specific "Math helps us simplify ideas". We hide detail after detail to reveal an essential truth.

Is this style of thinking necessary? Required for survival? Usually not. But it's often interesting.

What's the simplest drawing you can recognize as a face? What's the simplest joke that's still funny? The simplest exercise that grows a muscle? Would knowing that improve your art, humor, or fitness?

## Abstracting Counting

What's in this picture?

A computer says "millions of pixels" and you say "three lions". In seconds you threw away countless details to reveal a deeper insight.

What happened? We abstracted the scenario into something simpler.

• Remove background from foreground
• Remove differences between each animal
• Remove "animal-ness" (treat lions as generic "lines")
• Remove need to count objects with literal lines
• Remove need to specify a fixed number ("n happens to be 3 today")

We tend to call the steps we're explicitly aware of "math". Once it becomes natural, it's just "effortless seeing". (Wouldn't it be nice to move more concepts into the "effortless" category?)

## Abstracting Learning

Let's try the "math simplification" on a bigger idea: learning.

What does learning involve? At its bare essence, what do we need?

Learning = Insight + Enthusiasm

Insight (for me) comes from Analogies, Diagrams, Examples, Plain English descriptions, and Technical definitions. (Read more about the ADEPT method)

Enthusiasm comes from humor, warmth, empathy, and being treated like a human (not math robot).

A good lesson has both. But wait: is enthusiasm enough by itself? Hrm. Maybe it's better written:

Learning = Insight * Enthusiasm

• If you have 0 for either, you aren't really learning.
• "Negative insight" is learning something false.
• "Negative enthusiasm" is hating something, even to the point of discouraging others.
• "Negative insight with negative enthusiasm" could be discouraging others from learning something false (which is good, right?).

This is just playing with words and pseudo-equations. Sure. But seeing how enthusiasm impacts education reveals a truth: an educational experience can become negative when enthusiasm points the wrong way.

The equations above don't have to be "right". They're helping us work through an idea. The math approach is to isolate the key factors and figure out how they're related.

## Abstracting Technology

For something like a car, the key elements seem to be:

Car = Propulsion * Control

Traditionally, the details of propulsion involve a gas engine, and the details of control require a human driver. But we're interested in abstraction: are these details we can hide?

Maybe propulsion can be electric. Maybe control can be from a computer. A self-driving electric car satisfies the essence of the equation with different details. (Just like 1 apple + 2 apples = 3 apples works as well as 1 lion + 2 lions = 3 lions.)

Asking the right question is difficult, and critical. For this problem, what are the essential variables? What counts, and what can be thrown away?

## Abstracting Programming

A lot of people argue that "math helps your programming". Yes, but not in the way you think.

Most programmers don't use anything beyond algebra and basic statistics. (Yes, yes, if you're working on a video game physics engine you can sit down.)

The key lesson from math is how it abstracted the vast complexity of the world. Here are a few fundamental types of "quantity":

• integers (whole numbers)
• floats (decimal numbers)
• hexadecimal numbers (whole numbers with a simpler way to use powers of 2)
• null (an unset number, different from zero)

Programmers don't need math skills so they can crank through arithmetic. They need math to see examples of the world getting simpler.

Any piece of data (text, images, video, etc.) can be expressed as a giant list of numbers, a combination of the above elements. That's pretty simple.

What other metaphors from math (functions, structure, change, chance) can help us simplify our code?

Bret Victor has a wonderful essay on the Ladder Of Abstraction.

If a new concept is difficult for me, I wonder if I'm at the right level of detail. There's no all-purpose answer like "less detail is better". Sometimes you're staring at your feet and need to zoom out, sometimes you're in the clouds and need to zoom in.

Analogies, Diagrams, Examples, Plain English and Technical definitions, throw them at the wall and trial-and-error a way to better understanding. Like getting an eye exam, move closer or further from an idea until it snaps into focus.

Happy math.