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.

Free JavaScript: Novice to Ninja Sample

Get a free 32-page chapter of JavaScript: Novice to Ninja

http://www.realityedge.com.au mrsmiley

When I started my engineering degree, I was specialising in electrical engineering. Yet in the first of four years, they make you do one semester in each type of engineering (materials, mechanical, context, chemical, etc) for the very reasons you’ve mentioned above.

I’ve also found that in web development it has translated well to the sales process. It’s much easier to sell yourself and your skills if you can hold your own in a conversation in an area you do not specialise in. Sure I don’t know the intricacies of chemical engineering, but at least if I hear the terms mass flow rate I have a rough idea of what they are talking about.

mde

That’s why I really liked this talk — I have a degree in English Lit, and I’ve found it really valuable to have taught myself stuff in areas outside of UI development like SQL and sysadmin stuff. It really provide fresh ways to think about problems, and helps me relate better to the other guys on my team.