In Defense of Coders

My good friend James Somers wrote this article for Aeon Magazine. It’s a great article, well-written as I’ve come to expect from James, and there’s a lot to unpack – the idea that programming is basically plumbing, that venture-backed startups are essentially time-wasting factories of frivolity, and that our economic system’s basis in supply and demand massively undervalues creative workers like writers – but there is one idea I want to focus on in particular, because I think I have some insight into the argument that James doesn’t have.

I have a friend who’s a mechanical engineer. He used to build airplane engines for General Electric, and now he’s trying to develop a smarter pill bottle to improve compliance for AIDS and cancer patients. He works out of a start-up ‘incubator’, in an office space shared with dozens of web companies. He doesn’t have a lot of patience for them. ‘I’m fucking sick of it,’ he told me, ‘all they talk about is colours.’

I think it’s abundantly clear that this is a false contrast – rhetorically effective perhaps, but misleading. By contrasting the social good of curing terminal illness with the inanity of arguing over colors, James trivializes software engineering and elevates more traditional forms of engineering.

But he just as easily could have contrasted a mechanical engineer who makes Happy Meal toys to a software engineer who writes child welfare software. A huge number of plastics manufacturing jobs are dedicated to cheap toys that end their lives in landfills, but that doesn’t take away from medicine bottles any more than Facebook for dogs takes away from crowdfunding female entrepreneurs in third world countries.

Colors can be important. They can also be inane. I can tell you from experience that mechanical engineering is not free of mundane details – draft angles, radii, and of course – color. Nor is it free of what James earlier in the article calls knowing the “instruction manual.” In fact, for MEs, this is tenfold. I can still recite for you the names and compositions of commonly used alloys, rules of thumb for designing machined parts – depths of cut, recommended spindle speeds, and common design features of injection molded parts like bosses and living hinges – all rote knowledge accidentally commited to permanent memory through a few years of practice. And the ultimate instruction manual for traditional engineers? The $100k four-year instruction manual called a B.S. Engineering.

My friends and I who are building websites — we’re kids! We’re kids playing around with tools given to us by adults. In decreasing order of adultness, and leaving out an awful lot, I’m talking about things such as: the Von Neumann stored program computing architecture; the transistor; high-throughput fibre-optic cables; the Unix operating system; the sci-fi-ish cloud computing platform; the web browser; the iPhone; the open source movement; Ruby on Rails; the Stack Overflow Q&A site for programmers; on and on, all the way down to the code that my slightly-more-adult co-workers write for my benefit.

When James speaks of abstractions as though they’re a bad thing – something for dull people to be able to wrap their heads around instead of bothering themselves with the intellectual challenges of Djikstra and Turing, he ignores the existance of abstractions in every other creative discipline. Mechanical engineers learn physics in the same way that computer scientists learn linear algebra. One day they may use it a few times, but mostly, they’re using reference tables to calculate moments of inertia in that same way that Ruby developers might use Math.rand() instead of writing their own pesudeorandom number generator.

303 Stainless Steel Machinability Table

But that isn’t to say this article is all bad. Quite the contrary. I really appreciate raising the issue of how society values its workforce. We all know that it’s a great injustice how little teachers are paid, and how much better off society would be if we could attract more and higher quality educators to the profession. But singling out software engineers who make $100k a year, while ignoring bankers who make five times as much, and giving a free pass to makers of other disciplines with similar problems, seems disingenuous. Especially when software engineering is such a force for economic betterment, with its highly results-oriented, meritocratic culture. I know a programmer who was homeless on the streets in New York for years. He taught himself how to program, and now he’s self-sufficient. Software engineers are free of the expensive artificial certifications that create massive barriers to entry for people entering law, finance, and yes – mechanical engineering. This is why I’m excited about companies like Flatiron School and Thinkful.

Given all of that, it seems James is attacking the wrong target. The question may not be why are software engineers valued so highly, but why are the artists and writers he mentions valued so poorly? The answer to that, I think is much more elusive, one that maybe someday James will tackle with his incomparable wit and candor, but perhaps this time without the straw man.