What Hath Von Neumann Wrought?

Skeptical musings of a reluctant cyborg

“Please Don’t Learn to Code” – Cybercrud At Its Worst

This may be the only post you’ll read today that isn’t about Facebook. I said everything I wanted to say about Facebook two years ago when I left. Instead, I want to talk about Jeff Atwood’s “Please Don’t Learn to Code”, as well as Poytner’s Steve Myers’ response, “Software developer revives debate about whether journalists should learn to code”.

To put this in context, I’ve been programming for a living and as a hobby since I was 19. And despite what Atwood says about requiring 10,000 hours, I was as good at programming as I was ever going to get at the end of my first six months as a professional programmer. That puts it at 1000 hours, more or less.

Moreover, I would venture to state that there are only three things a programmer needs to know to be as good as any programmer who’s ever lived – as good as Countess Ada Lovelace or Admiral Grace Hopper:

  1. Imperative program structure: variables, assignments, if / then / else, and while loops (what you’ll get from CodeAcademy in JavaScript)
  2. Applicative program structure: LISP/Scheme, Structure and Interpretation of Computer Programs (you can do this in JavaScript, see JavaScript: The Good Parts for some hints, and
  3. Refactoring.

The rest of what I learned over the ensuing decades was logic automation, applied mathematics, scientific computing, numerical analysis, signal and image processing, real-time operating systems, programming language design, high-performance computing, computer performance engineering, and as much automata theory and discrete mathematics as I could stand, which isn’t much. In short, application domain knowledge – it most assuredly was not coding.

The thing that consumed the bulk of the first 10,000 hours of my career was not learning how to program. What took all the time was having the arrogance of being able to do the three things listed above – at a time when few people could even do the first – beaten out of me by managers, colleagues and customers. Apparently Jeff Atwood hasn’t had that arrogance beaten out of him yet.

Yes, I’m guessing he’s a better programmer than Mayor Bloomberg will ever be. But his cheap shot at Bloomberg doesn’t get him more than the one vote anyone gets. Atwood’s piece is cybercrud, pure and simple. As Ted Nelson so eloquently put it, “The purpose of computers is human freedom.” The fact that a well-known computer blogger like Atwood practices cybercrud almost 40 years after Ted Nelson denounced it sends shivers down my spine.

So by all means, learn to code. While you’re at it, learn how to participate in the political process. You could end up writing a tech blog or as Mayor. Moving on to Steve Myers’ post, which is more about the realities of journalism today, I’d say, for openers, “Yes, journalists should learn enough code to be able to tell their stories, but for God’s sake, don’t lose the stories!” Don’t let the cybercrud spewers discourage you, but don’t get so sucked in to the frustration of learning to code that you miss your deadlines. And above all, keep beating up on computational journalism tool builders like me to make the tools you need. Because it is about the stories, not the technology.

Real Time Analytics