“Everything I Know about Programming”

Friday, 15 Jul 2005

Christopher Diggins:

I’ve been programming computers for twenty years. I’ve finally come to terms with the fact that I only know three things:

  1. your code will change
  2. no matter how simple you think your code is, it is complete nonsense to almost everyone else
  3. if you haven’t tested your code then it’s probably wrong

I can’t claim that much experience yet, hence still struggle with occasional immodesty. But I already appreciate these truths to a fair extent and I know that my appreciation will only grow.

Nice and amusing takes in the comments, too, particularly about #2: No matter how simple you think your code is, it is complete nonsense to almost everyone else, and in six months you’ll come back to it and wonder what you were doing.. That reminds me of a great, simple truth I will always remember: It’s harder to read code than to write it. That’s a quote from Joel Spolsky in the context of explaining why programmers always think code is a mess and needs rewriting. I can’t say I always agree with Joel, but this short sentence has great elucidative power.

I believe understanding and coming to terms with this fact and all its implications is key to becoming a great programmer.