Programmers: Are you good in math?


The Leauge sent in an email to see if I had fallen off the edge of the world. Although it appears irony has fallen upon The League, for as I type this, his web site has, in fact, fallen off the edge of the world: Blogger appears to be down.

I have not left the gravitational field of this big, blue, glob. There’s a bunch of interesting work stuff going on ( more later ), my mom was in town and I started classes at Austin Community College.

I’m taking two classes: Intermediate Algebra and C++.

First, this is the kind of mathematics I learned in high school ( or should have learned better ). I eventually matriculated to the university and there went as far as 2 semesters of business calculus: integration, derivation, the whole shebang. But, after ten ( and I am astounded to type that ) years away from calculus, I’ve forgotten so much. So, here I am, back at square one, learning the basics again. It’s easy to forget a lot because, to answer those kids in high school who asked “when am I going to use this in the real world” the answer, I’m afraid to say, is rarely. So much, that, you’re right, you might be wasting your time. Sorry.

In any case, this time through I’m finding it much easier to learn and encode this information. I’ve thought about why, but I think that my brain must have been conditioned for understanding symbolic and abstract systems through years of programming and a bit of symbolic logic. As is suggested by the action of Snow Crash, I think that the brain arrives with just a tiny bit of software pre-installed. The first several routines (“primary routines”) decide whether or not you will be more or less receptive to new (“secondary”) routines.

The primary routines must be incredibly fundamental. Do you use symbolic language, pictorgrams, pictographs? Using pictographs may disincline a learner from picking up a certain set of secondary routines ( I don’t believe anything is un-learnable, although research shows that past the age of 7 there’s no chance for language acquisition if it hasn’t already happened, sorry Tarzan).

So this secondary routine, algebra, just didn’t stick for me. But I think that I’ve been running secondary programs of an abstracting and variant nature now for so many years that receiving new routines which share similar pathways as other abstracting secondary routines’ function has made it easier to integrate the data.

Or, maybe because my teacher is exceedingly competent. Gustavo Cepparo is one of the best lecturers I’ve had at any school I’ve ever attended. He does not advocate “niceness” he educates giving you an education (although he is very personable). He sees himself as your worthy adversary, trying your skills and, in so doing, giving you an education. Damn straight.

I was discussing this “inclination for symbolic systems” with Lauren who, in her own life, is also undertaking an effort to put some ‘new secondary routine momentum’ into her gray matter. She’s learning computer science and programming. Oddly, when she programs she feels the same structure and scalpel that she came to know doing her literature work: themes, repetition, motifs, it’s all there.

But then we came to a question: Why is it, if you want to go into programming, pedestrian ( or parental ) wisdom holds: “Are you good at math.”

This, parents, friends, teachers, I want to warn you away from asking. The question is not “are you good at math” but do you like symbolic systems, creating them, imagining them, adhering and bending them? That’s the question.

Good programmers are kids who memorize the armor charts to Dungeons and Dragons. Good programmers like to corollate data on baseball cards, they like to organize baseball cards. I’ve seen kids read chess books, or play Magic or play Yu-Gi-Oh, know the Dewy Decimal system, it’s all the same thing: breathing life into internal rules processing machines in your brain, and then using physical ( versus digital ) objects as the inputs to your automata.

So why do kids get asked “but are you good at math”.

Math is a convenient, albeit misleading, question, it’s a forced symbolic system that kids are forced to learn. To this extent, it can be used as a good measure of “will you be a good programmer”. Further, and a child has no way of knowing this, this lazy question implies that “liking math” and “liking the pedagogical approach used by the school board and as practiced by your teacher” are the same. They are wholly different and a child has no way of knowing this.

I disliked most of my math teachers, and the pedagogy was slow, pedantic, too slow to build connections, to sketch an architecture, to paint a direction. Math class, for me, was about exercises and who in their right mind gives a flip about that? I knew math was important, but there was no direction or structure for that statement beyond the obscure “but you’ll need it in college”.

Here’s how I now propose that math should be explained.

  • There are many difficult problems in the world ( how to get a satellite in a crater on the moon), how long to incubate a new medicine, etc.
  • The language for expressing these ideas is mathematics. Just as anyone would look at this figure ( draw a capital ‘A’ ) without knowing the alphabet would suppose it’s a picture of a bird or an interesting shape, you must come to learn the basic letters and words of mathematics
  • For the next several years, you will be learning basic ideas and words in mathematics, this study is called arithmetic.
  • (later) You have learned arithmetic, but most questions in life do not hinge upon known quantities. Like we said in point 1, how do we do something that we don’t know, how do we model and predict? The branch of mathematics which deals with discovering unknown players in systems is called algebra
  • (later) You have learned algebra. Algebra helps discover nouns in systems (what plus 4 equals 11), but the world is a constant state of flux, as noted by Newton. A mathematical language for discussing flux and rates of change was invented by him and Leibniz, that is called the calculus.

I don’t know much more about math than that, but with that framework I could have seen that learning that 3/4 * 4/3 = 1 was something important in the sense that it was as fundamental as learning the crucial verbs to express want or need or identity.

And that, balance, unknown, systems for discovery of unknown, systems for modeling the unknown is incredibly interesting. Had mathematics pedagogy been about systems of symbolic manipulation to discern the unknown versus timed tests and a litany of rules and obscure little “tricks”: loose islands of thought, I feel I would have grasped the beauty of math earlier.

And ultimately this brings me back to the most sublime poem ever written “Ode on a Grecian Urn”

Than ours, a friend to man, to whom thou say’st, "Beauty is truth, truth beauty”—that is all Ye know on earth, and all ye need to know.

Algerbra, comes from the original Arabic book in which its tenets were first set: Science of the Reunion and the Opposition.

Isn’t that a beautiful phrasing for what algebra allows us to do? This is truth and this is beauty.

And hoary old double-entry accounting, it is a science of reuniting the not with the present, the received with the owed. That is truth, and that, to my good accountant friends, is beauty too. I can see why those who ply this craft love it.

And programming, it is the balancing of the abstract concepts against the abstract concepts. In this vacuum, you create, and you create function, and then you create beauty. And that’s why we love it.

And assuredly, if you choose to plumb the deepest depths of that digital reality, you will do a lot of math, but don’t scare off a child from playing in our world of pure abstraction because they mistakenly associate it with the pitiful educational quality in this country or rote, staid, pedagogy.