Editor’s Note: This post was originally published on Seattle 2.0, and imported to GeekWire as part of our acquisition of Seattle 2.0 and its archival content. For more background, see this post.

By Anthony Stevens

If I were to draw a little arrow diagram with the symbol “—>” beinginterpreted as “depends on”, then you could write this:

Tech Startup –> Tech –> Software –> Computer Science –> Math

Math is an important foundational element to a large amount of what we do inthe tech startup world.  Having had the opportunity recently to reassess whatreally makes a good software developer, I realized that “mathiness” (to borrowphraseology from Stephen Colbert) is important.

The relationships between software and math are numerous, deep, andessential.  They range from the obvious – for example relational databases and set theory, or program control and Boolean logic – to the non-obvious, such ascryptography’s dependence on modulo arithmetic.  The whole notion of a “function” in thesoftware sense is taken wholly from the same concept in math (a function issomething which maps inputs to outputs).  Big-O notation, which is important and describes afunction’s performance characteristics, was drawn from math.  The list goeson.

The everyday work of a software developer is suffused with mathematicaloperations: taking counts and averages; using the increment operator; using logicaloperators, like AND, OR, and NOT; performing database joins and dealing with divide-by-zero errors anddetermining how many bytes of storage a given structure will take up in memory or on disk.

And yet, today, in 2010, innumeracy is still rampant, even among those whowould style themselves software people.  It’s mind-boggling how you can claimsoftware skill and yet have problems with basic subtraction and division, let alonenext-order problems such as binary math, exponentiation, or simple databasejoins.

Is math still important?  Is the success of a software developer keyed tofluency in math?  I say yes.  Software professionals who lack math skills arebound to have more limitations in their craft than someone who has those sameskills.  I suppose an analogy would be a writer who lacks an understanding ofbasic grammar.  Sure, every now and then you get a breakout novelist whoappears to violate every rule of language, but their success is usuallyshort-lived.

The other element to this is that the skills and attitude you need to achieve success in math are, in my opinion, directly transferable to softwaresuccess.  It includes the notion that something is either correct ornot.  There is a certain rigor involved.  There are well-tested methods of proceeding from hypothesis through toa solution.  There is the notion of fundamental building blocks that can be combined to solvehigher-order problems.  Finally, and not least, the universe of math involves a comprehensive, exact, and yet brief notational structure that helps us define, and thus helps us understand, the problems before us.

On the other hand, there have been numerous efforts to make softwaredevelopment more accessible, to turn the industry into a corps of simplebuilders, assembling blocks of prefabricated code into a program thatruns.  Instead of programming, we’ll drag-and-drop our way to software success. Or we’ll have whole frameworks that build our application for us!  Andsometimes, it works – look at Visual Basic, or Ruby on Rails.  But even VisualBasic and RoR require math once you get beyond the toy program stage. Indeed,they are just like any other programming environment in this regard.

What do you think? Is math important?  If so, why?  If not, why not?  I wouldlove to hear your reasoning!

Like what you're reading? Subscribe to GeekWire's free newsletters to catch every headline

Job Listings on GeekWork

Find more jobs on GeekWork. Employers, post a job here.