I did math for the first time when I was 29 years old. This isn't a self-deprecating snipe or feigned humility. I did math for the first time when I was 29 years old. When I finally did it for the first time – at least, the first recorded time – I didn't know it had happened. It was six years later reading Paul Lockhart's excellent piece entitled, “A Mathematician's Lament” that I realized what I'd done; I'd finally done math all those years ago. At the time I was pretty sure I was programming, or something close to it. It was one part statistics, one part algorithms, and one part math. I'm not even sure today what constitutes the whole of what I was doing, but those are without a doubt three of the parts. I was also pretty sure that I was doing something related to cancer. After all, I was doing what I was doing because I was getting paid for it. And I knew that the money came circuitously to me by way of the National Cancer Institute. And if there's one thing I know about the NCI, I know that they care about fighting cancer. So I was probably doing something related to cancer, too.
So how is it that someone who studied Computer Science in college was able to graduate without having previously done any math? Computer Science is a lot of math, right? My entire schooling, all the way through high school, I never thought that math was my strong suit. And if you've read my introductory sentence, you can probably deduce that I'm not getting rich as a mathematician any time soon. As far as I had a plan to go to college (and you could hardly call it that), the plan was to study English. I wasn't a good writer and I didn't know what it meant to study English or have a profession in it. What I did know was that I heard people studied English in college, and in high school I was able to exert a minimal amount of effort in English courses without failing. English was a safe bet for a soon-to-be Halo addict. So needless to say, I didn't trouble myself with a lot of math in high school. My senior year of high school I took a course called Business Math. Business Math was a real doozy of a course. And somewhere between the end of high school and the beginning of college, the “plan” changed and I decided to study computer science since I was already making money doing computer stuff.
Now let me tell you a few things about Business Math. Business Math has never saved a single soul from a Freshman year Computer Science 101 culling. Those things are butal; I think we lost 50% of the class by the end of the semester. Business Math also hasn't gotten a single computer science student through Discrete Math, Calculus, pre Calculus, or even pre-Calculus for Business Majors (sorry, biz folks). Business Math couldn't possibly do that because it's a truly garbage course; unparalleled in its uselessness. But the other reason is that Business Math is not even a mathematics course. And neither are Discrete, CS 101, Calc, or Pre-calc. Sure, these classes all teach about numbers, functions, and how to fiddle with formulas, but none of them teach any mathematics. No, mathematics courses hardly exist. I'd love to take one as an adult, if you're aware of any.
I have an idea for how to rename a few math courses
Business Math: Easy Numbers for Suits
Pre-Calculus: Harder Numbers
Calculus: Hard Numbers
Discrete Math: Hard Numbers for Computers
Algorithms: Logic & Hard Numbers for Computers
I'm dodging the rhetorical question here. How did someone who studied Computer Science in college graduate without doing math? I did it by taking Business Math in high school. Because graduating with an undergraduate computer science degree doesn't require mathematics at all. At least not so much that you can't temporarily memorize some general mathematical techniques for an exam and forget it all the next day. They won't be used outside of an exam setting; trust me. I'm looking at you, proofs. But even proofs aren't really mathematics. Students do proofs because instructors ask them to do proofs; they're not actually proving anything novel. If they were, they'd actually be doing math. They'd be doing math because they'd be thinking, getting stuck, and engaging in fruitful conjecture about the nature of problems. But most “computer science” doesn't require much of that, and I can guarantee that the average student still stands on a podium in four years even if they do absolutely no math. Their robe may not have much in the way of flair, but they'll surely be cleared to walk across that podium and grab a ludicrously expensive piece of paper that constitutes a degree. No, computer science students generally ask computer to do the numbers, and the computers tend to do the numbers really well; even the hard numbers.
Like most people working in a technical field, my early days were riddled with imposter syndrome. I was waiting for math to rear its head and reveal me as the fraud that I was. Because as we all know, computer science is “all math” and I'd hardly learned a lick of it. I occasionally added and multiplied numbers in code, but that's hardly what I'd call “all math”. The real computer science was out there, it would find me, and I'd die destitute when it inevitably did.
And then the math found me. This was it. It took five years to find me post-college. What took it so long? It's a shame I hadn't saved any money. Business Math should have prepared me better for this! I should have had a savings account primed to keep me afloat and at least temporarily stave off destitution. I knew this was coming and there was some consolation in that.
But the notation, the formulas … holy shit the notation was everywhere. This was worse than I anticipated.
I know you know what you're looking at in this image. You're looking at cold, hard Math with a capital “m”; no question about it. This is it. The real deal. The math professor in white socks with Jesus sandals stuff. The potting soil in which to grow one's neck beard. There's an upside down “A” in the code for chrissake. It's real math; righteous math.
But after I cut through all this absurd notation in which an algorithm should never be expressed, I found some really basic building blocks. And more importantly, I found a problem that needed solving, and problems generate ideas. Then eventually, ideas give way to solutions and more absurd notation in which algorithms should never be expressed.
The solution. This is the culmination of a lot of math. But I'm not talking about the asinine notation, functions, or codes. I'm talking about the existence of one line of code:
colsum[j] <- colsum[j] - C[pi(i),pi(j)]
This was it. This is what I feared would render me destitute. It doesn't matter what any of this code means. What matters is that the math was a single insight. It was the realization that if a single column of a matrix was subtracted before recalculating sums, we could ask the computer to crunch a lot fewer hard numbers. It meant maybe some day a researcher in a lab could mash a button and have a chemical candidate for a novel chemotherapy enter their brain for the first time. It meant they could do that every couple seconds instead of every couple weeks. The math was the thought process, not the numbers, functions, rules or other tools of the trade taught in your average Hard Numbers for Computers course.
I was never bad at math. I have a bad memory for formulas and never had a real problem to solve.
Before my dear friend and business partner Wayne Johnson died a year ago this month, he gave me permission to open source this small piece of the work we did together referenced above (https://github.com/acaloiaro/topk-taupath). I'm forever grateful to him for being a great mentor and teaching me how to do math before 30. I'll always remember handing this work over to Wayne. It was the culmination of years of time together and nonstop, profound lessons from Wayne about how to think more methodically. I was pretty nervous about it because Wayne was a very precise man who demanded pricise work. I was even more nervous about the fact that I hadn't heard from him an entire day after handing it over. Finally he called and while I don't remember much about that conversation, I do remember the first thing he said to me: “it's beautiful”. And that's how I know math was done, because formulas and rules are not beautiful, but math is art and art is beautiful.
I challenge you to tell someone they've done something beautiful. I promise they'll never forget it.