Monday, December 2, 2013

The Different Kinds of Programming

I came across this article at Ars Technica: What's the difference between college-level and corporate programming?* I liked this quote the best:
CS will prepare you for "real world" software development like athletics training would prepare an army for battle.
Interesting analogy. I'd like to expand on it a bit:
  • College programming is like speed skating.
  • Interview question programming is like figure skating.
  • Corporate programming is like hockey.

College Programming

Image credit: McSmit
College programming is about teaching the fundamentals, and about getting lots of things done quickly: problem set!—problem set!—project!—project! It's about going the distance, and racing against the deadlines (although speed skating doesn't have late days).

Interview Question Programming

Image credit: Caroline ParĂ©
Interview question programming is about data structures, programming fluency, and being able to perform the occasional algorithmic parlor trick. A good programming interview will have at least two double salchows, a flawless camel spin, and no Tanya Hardings—all so to speak.

Corporate Programming

Image credit: Elliot
Programming in the real world is a lot more like hockey. It's not about pure speed, nor pure aesthetics, nor pure anything: it's just about getting the puck in the goal—and spilling whatever blood you have to along the way. There will be fighting. There will be head injuries. And you'd better be damn sure your team has a good goalie.

Nomenclature

This blog's name is derived from Neal Stephenson's Cryptonomicon. That title refers to a fictitious book (inside the book itself) that contains all knowledge about cryptography. So this blog will be dedicated to containing things about the web.