OSCON 2007: The Holistic Programmer

Adam Keys is a software developer and writer. His blog is at therealadam.com.

The days of one guy putting together all the hardware and software together by himself in his garage are long gone — working with computers increasingly means doing something very specialized in one of the layers between the hardware and the end-user.

Adam made a good case for the idea that despite this specialization people working with computers should develop at least a passing familiarity with the layers other than their own — e.g., a guy working in the database learning typography, and a Web designer learning about compilers.

Many developers may not have the interest (or the discipline) to spend time learning about subjects so far removed from their little piece of the pie, but a couple of the benefits to doing so that Adam described seemed pretty compelling:

  • The ability to converse with the people you work with and understand better how your work interfaces with theirs.
  • Gaining a new perspective that allows you to find unexpected or creative solutions to problems in your own domain.

Adam spent the end of his talk going over the two example layers just mentioned — CSS/layout/typography, and compilers. That might not have been something every developer was super-interested in learning about, but for a guy like myself who’s kind of all over the place from the database layer all the way up to end-user-facing design, it was really interesting stuff.

Adam has his slides available online here.