RWDevCon Inspiration Talk – Math Isn’t Scary by Matthijs Hollemans

Many of us have a bad experience with math from our schools – learn why math isn’t scary, and why we should all learn it as software developers! By Matthijs Hollemans.

Leave a rating/review
Save for later
Share
You are currently viewing page 2 of 3 of this article. Click here to view the first page.

Math Can Be Fun!

Now, I know these last couple minutes have been a bit of a downer, so in order to cheer you up I have a photo of people having a good time.

Attribution: lo-ny

Celebrate

I think they just solved some math problems, so now they’re out celebrating.

I said that math can be fun, something that you can really enjoy doing, like these people. I suspect that some of you might be a bit skeptical about this, so I’m going to back up my claim with the following piece of evidence.

Attribution: Philippa Willitts

Attribution: flickr.com/photos/hippie/2465105227

I probably don’t have to explain to you what this is. It’s a Sudoku, right?

These things are super popular, they’re played by millions of people around the world. Does anybody here like doing Sudokus? That’s what I thought.

Now, you’re going to say, “That’s not math, it’s a puzzle,” which is true. It’s a puzzle with numbers.

Well, a lot of mathematics is puzzles with numbers. Solving puzzles is what human beings love to do. We just can’t resist it. It’s how our brains are wired. That’s why kids love games, because a lot of games are about puzzle solving.

Whether you like it or not, this is math; you just don’t think about it that way. I hope I just didn’t ruin Sudokus for you, but a lot of the math that we learn in school, or are supposed to learn in school, isn’t really much harder than this. In both cases, your brain does exactly the same things.

My girlfriend, Deanna, her brain freezes up just at the thought of having to do math; but for some reason, she really likes this game:

Rummukub

For those of you who don’t know this, this is Rummikub. You have numbers, you arrange those numbers in certain patterns, and then you rearrange them. The first one to get rid of their numbers wins.

This game really exercises your math muscles. You have to do pattern-based thinking, pattern matching, you have to think steps ahead. She doesn’t think about it as math. It doesn’t trigger the bad memories she has of school, and how she used to get upset at her math homework. She also beats me way too often at this game.

Another game she likes is blackjack:

Attribution: Images Money

Attribution: Images Money

Now, to win at blackjack, you have to know all about odds and probabilities; or you have to learn card counting, but the same thing goes here. It’s all mathematics. That’s true for bridge or poker or any other game, or lots of games.

Many of the games you play are fundamentally mathematical in nature, but we don’t mind it because it’s not like doing the math that we used to do in school. It’s not really math that we dislike, it’s just our school experiences that we don’t like. The math itself can be pretty awesome.

I’m sorry to break it to you, but if you’re the kind of person who likes puzzles and games, then you’re probably a closet mathematician.

Learning Math is Like Learning a Programming Language

Let’s say five years ago, or two years ago, or however long ago you first started programming, and they showed you this, it probably wouldn’t have made much sense to you.

func countOccurrences(value: Int, array: [Int]) -> Int {
  var count = 0
  for element in array {
    if element == value {
      ++count
    }
  }
  return count
}

let array = [100, 28, 999, 43, 62, 999, 77, 35, 999]
let value = 999
let count = countOccurrences(value, array)

println("\(value) appears \(count) times")

You first had to learn the language – not Swift, but the language of computers and programming.

How does a compiler work? What’s a variable, what’s a function, and a thousand other things.

It was probably pretty hard to learn, in the beginning, anyway, but eventually you figured it out, and now you speak Objective-C or Swift, or whatever language. You speak it fluently.

If we show this to someone who just starts programming, or who hasn’t done any programming at all, it probably looks like a bunch of gobbledygook. Just like this looks like a bunch of gobbledygook to someone who doesn’t speak the language of math.

PieceOfMath

The point I’m trying to make here is that you’re all smart people. You’re very intelligent people. You’re software developers. You do difficult stuff all day long.

Math isn’t any harder than what you already do in your daily development jobs. If you were able to learn programming, I’d say you’re pretty much able to learn anything, even math.

What you do on a daily basis is the same thing that a professional mathematician does on a daily basis:

  • You build these elaborate thought structures in your head
  • You think through problems
  • You solve puzzles
  • You think creatively

You already act like a mathematician; you just don’t speak the language yet.

Why Bother?

Okay, fine. Let’s say I’m right, developers are like mathematicians. So what? Why should we bother learning about calculus or statistics or algebra? What do we need that kind of math for, anyway?

Well, I’d say if you want to create any piece of software that’s remotely interesting, you could use some mathematics.

For example, games. If you want to make games, even simple 2D games, it’s really helpful to know something about trigonometry.

Trigonometry is important for games!

Trigonometry is important for games!

All of the hot areas in software development of today — machine learning, big data, computer vision — all require solid math skills.

I have an interest in audio programming and digital signal processing, and that requires knowledge of things like complex numbers, fourier analysis, and when I didn’t know the math, it was very hard to do all this stuff. As I started studying the math behind it all, it made a lot more sense to me.

If you want to get ahead in your field, if you want to stay relevant, even, it’s really helpful to know a bit more about mathematics. Besides, knowing math will make you a better programmer, and better programmers make more money.

A developer who knows math

A developer who knows math

Just in case you need some extra motivation!