Friday, November 04, 2005

Teach Yourself Postmodern Programming in Ten Years (or Whenever)

What do I know? Probably nothing. I have no theory. But here's an ill-considered list of possibly postmodern programming challenges:
  • Use think through debugging. Use step through debugging. Use delta debugging. Experience a compiler bug. Experience a hardware bug.
  • Make a user interface. Script a user interface. Scrape a user interface.
  • Write (and debug) a program in a language that requires you to manage memory explicitly. Persist data (and reclaim expired data).
  • Write (and debug) a program that passes messages to another program. Use a stateful protocol. Use a stateless protocol.
  • Break modules (object / file / compilation unit) apart and put them back together.
  • Work on a program using two or more languages on multiple levels. Work on a program that mixes languages throughout.
  • Generate code. Delete code.
  • See how long a task actually takes to do.
  • Stay with a program until it gets used by someone else (i.e. until after a round of maintenance).
  • See what happens to your program after someone else (better/worse) has taken responsibility for a cycle or two.
  • Make a change to another person's program using their programming style.
  • Work too close to someone else. Work too far away from everyone else.
  • Resolve a conflicting merge (see above).
  • Roll back a change.
  • Replace a perfectly usable module because of licensing issues.
  • Write a program to compare the previous behavior of an old module with that of its replacement.
  • Never do anything more than twice manually.
Notes on Postmodern Programming
How to Teach Yourself Programming in 10 Years

No comments: