The Dirty Secret of Computer Science
These thoughts were originally posted at http://ardentdev.com in 2010. I’ve moved them here in order to repurpose that domain for a software development podcast.
The term “computer science” is a laughable misnomer. Outside of universities and operating system development, there isn’t a lot of computer science involved in the daily grind of computer programming. There’s some, of course, but not enough that I would call myself a computer scientist. Not by a long shot.
I’ve long thought that Donald Knuth had it right when he titled his books The Art of Computer Programming.
Creating software bears some resemblance to art as in the work of an artist. It bears an even stronger resemblance to art as in the work of an artisan. Software artisans use the tools and techniques of modern software development to create the wide variety of software that entertains us and runs our businesses.
Eric Sink had it right when he put Software Craftsman on his business card.
Sadly some of the most enthusiastic artisans in our field are disregarded out of hand as geeks and nerds when in fact they have creative and curious minds more commonly associated with artists like poets and sculptors.
I love the way Kate describes the art of software:
The number one response by my aunts/uncles/friends parents etc was “you’re programming? But you were always so creative as a child…” — people need to be told that this is a very creative field. I make business solutions out of ones and zeroes. I change people’s working lives, the entire 8 hours they spend at the office every working day, forever — using nothing but the skin on my fingertips.
I worry that software development as a discipline is stunted by its false reputation of being science-y when in fact it appeals to people who are creative and innovative. I’ve noticed that a disproportionate number of my colleagues in software development are musicians and/or fans or even creators of comic books, science fiction, fantasy fiction, and role-playing games. Those types of pastimes are qualitatively different than watching reality TV or playing sports. *
The dirty secret of comp sci is that most us who trained as “computer scientists” do precious little that could ever be considered true computer science and certainly not science at all by many definitions of science. We are artisans abiding by the platforms and boundaries defined by computer science to create truly amazing and useful things. We are the glassmakers, sculptors, and blacksmiths of our time.
Recommended reading: Knuth: Computer Programming as an Art
* Relax, I’m generalizing. Lots of programmers watch reality TV (though I judge them for that) and/or play sports. Lots of programmers are not musicians (like, say, me). The set of all RPG players (A) overlaps the set of all computer programmers (B). B is not a subset of A.