Programming is Math?

work safe

This sculpture is known by some students as the Cecil T. Lobo Whatzit. This sculpture was installed on the Rose-Hulman campus by the Civil Engineering Department as an example of 17 different the steel joints. It is an amazing technical challenge to find harmony and balance with in the constraints of 17 steel girder joints, all “Golden-Gate Red”.

Quite frankly it looks like junk to my untrained eye.

I had a conversation one morning where we were talking about art for the sake of art. We talked about collaborations and other art projects that are interesting to those steeped in the art form, but not to the uninitiated.

One phrase I keep hearing stated as a universal truth is “Programming is Math.” I’ve tried to ask people what they mean by this, but I have yet to find someone who doesn’t think I’m trolling them. The problem is EVERYTHING is Math. Economics is Math. Engineering is Math. Architecture is Math. Even Painting is Math.

But everything is also Poetry. Ask a Poet.

I was trained as an Engineer. Capital E. I took classes on fluid dynamics, forces on static structures, and circuit design. I see the world as a list of Knowns specific to a problem, a bunch of Given universal truths and equations, and a solution I’m attempting to Find. Elegance never entered in to that much. But then I began seeing how solutions work for real people, how they impact their lives. Defining the problem became much more interesting. Math was only something I used to get there. In programming that was usually Algebra, Boolean Logic, and Trigonometry.

Okay, lets get back to software. There are a bunch of techniques we use when architecting software. There are books and books of patterns on the subject. We try to find a pattern to match the entire solution, but we will fail. That’s not to say we shouldn’t understand these techniques and explore them, just that we shouldn’t confuse a study with art just because it is well done.

The problem I have with this is first and foremost, it is seen as an obvious truth that needs to be stated, but once stated is self evident. When making such a statement, you should be offering help on the road to enlightenment, not merely shouting from the mountain top that you have achieved satori. It annoys me that I’ve yet to find a way in to this secret understanding of Math having always been horrible at wrote computation we teach kids in American Math classes. But it also feels counter to what I have come to understand about software in my 13 years as a professional practitioner.

“The Second Law of Consulting: No matter how it looks at first, it’s always a people problem.” – Gerald Weinberg

The things that make my life difficult aren’t a lack of technical choices, but understanding the implications of how those choices fit together. Especially if I wasn’t there to participate in the evolution of thought and circumstance.

The thinking of Programming as Math feels like we are suborning the technique to the expression. The art is getting lost in the technical aspects of the art form. I want to say communication and clarity to my fellow developers and collaborators is far more important than technical details of my solution. There are techniques that help me do that, but only if they serve the communication.

And I still can’t see where programming like this is Math as I understand it.

No Comments

Leave a Reply

You must be logged in to post a comment.