View Sidebar
The Dirty Secret of Computer Science

The Dirty Secret of Computer Science

March 10, 2010 10:37 am3 comments

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.

Kate Gregory

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.


  • I always referred Computer Programming as a Scientific Art. You create something out of nothing (art) but there is a lot of problem solving and (science).

    But I think the Artisan or Craftsman idea is a pretty close analogy. Some one once told me that if you liked playing with Legos as a kid, you probably will like Software Dev. Because Programming is like playing with legos. you just put all the pieces together to get what you were trying to build.

  • Well, and a lot of us has ‘sold out’. When I went through computer science university programs, most people were in the program as their ‘expected salary’ after graduation was significantly higher than if they graduated from a college as a ‘simple’ programmer. So, many people werent in there to take the ‘science’ torch further and go on solving the shortest path algorithm, which btw is still sitting there unsolved.

    Universities got suckered into it too – facing pressures from the government during the dot com bubble, they significantly increased computer science programs – in order to ensure country competitivness. Hence, they pumped out ‘programmers’ and not ‘scientists’, therefore making this ‘dirty secret’ you refer to.

    But I agree with you. The people I know in software programming world are all resonably-to-very creative people. Our profession doesn’t get the respect it deserves. It provides opportunities to succeed in both the core field and also to jump into many other fields. Many professions out there lock you in whatever you graduate from – but not computer science


  • I trained in the now forgotten science of Control Engineering, which (my personal opinion) morphed into computer science in the late 80’s early 90’s. I trained in applying analogue solutions to problems, using things like synchros and resolvers. Comp Sci changed all that, but I agree that it does appear to be a ‘dirty secret’ nowadays. What we as Software Developers do IS an art form, that will never be recognized by the hoi polloi because it’s never seen. ‘Hello World’ doesn’t begin to show what incredible sophistication has gone into writing that on the screen in front of them. I have often taken the bitter pill of what we, as engineers, used to say, “You’re only as good as your last stuff-up”.