Larry the Software Guy

written on Friday, October 5, 2012

Anil Dash published a blog post today I think is a victim of a bad title: "The Blue Collar Coder." I normally skim over the "Is programming an art, craft or science?" discussions but there were a couple of very smart programmers discussing it on Twitter, and I joined in. During the conversation, I vacillated between agreeing with Anil's proposition and agreeing with Alex Feinberg.

I think the title is poor because programming will never be "blue collar." Anil knows that; he more or less admits it was basically caste-baiting in the first sentence of the final paragraph. Unfortunately, I think people reacted to the notion of a programmer being considered "blue collar" more than the real points I think he was trying to make. The tl;dr of Anil's blog post seems to be:

  1. A CS degree is overkill for most job openings
  2. The "tech community" (??) should be focused on creating lots of jobs, not entrepreneurship
  3. Huge amounts of good for people & business can be done by creating a vocational training program for software development

I don't even want to touch (1) because people seem to have such ridiculously strong feelings one way or the other (and possession of a CS degree seems to be no indicator of which way those feelings will go). I don't have a CS degree, and I am enjoying my career. I recognize though that in a few years maybe I'll be bored of the nature of problems I'm working on and maybe getting that degree would have been a smart move after all. In other words, I don't have an opinion on this because I don't know what I don't know.

The second point is eyeroll-worthy, in my opinion, because I think the impression the "tech community" is hyper-focused on producing "the next Zuckerburg" is the result of Hacker News's own "reality distortion field" about startups. Hacker News is the modern equivalent of a sweaty, manic Steve Ballmer trying to pump up a room full of nerds, but instead of "Developers! Developers! Developers!", HN is chanting, "Startups! Startups! Startups!" But what're you gonna do? HN exists for a very specific reason: startup news. Point being that it's not good or bad that this reality distortion effect exists, but you have to seek other perspectives.

I agree with the third point. Full stop. My SWAG (pretty light on the "S") is higher ed could serve more people with lower per-person costs, deliver employees to the job market with high skills, while maintaining/building a reputation as a high-quality institution by offering associates degree & certification programs in software development compared to the current BS/BA in CS.

This is where I think Anil's points get lost because of the title, illustrated by something Alex F. wrote:

There will be demand for "non-programmers who code" for sure, but these positions will still require analytical thinking.

Maybe I'm misreading it, but the implication seems to be that "blue collar" implies work where analytical thinking is optional. There's no less analytical thinking in e.g. managing inventory, building windmills, etc. My opinion, based on my military experience, is that there are many smart and savvy people out there with great analytical abilities, who couldn't get into or complete a CS degree. For these people an associates of applied science or 1-year certificate in software development would be FAR more accessible. Not only that, I'd wager the distribution of skill among graduates would look pretty close to that of most CS programs. What I'm saying is, in my short time doing this I've met some dumb/bad/lazy programmers with CS degrees from universities with respected programs.

Now obviously I don't do much manual labor anymore, but I'm proud of and enjoy the maintenance work I do. Most programming IMO boils down to the equivalent of "blue collar" work: refactoring code you or someone else wrote; patching over and smoothing out ugly spots; squashing bugs that have been around so long they're just considered part of the product. This isn't something I'm claiming I discovered by the way; this is a conclusion other people have drawn that is supported by my own anecdotes.

This entry was tagged programming