I visited the Design Museum in London recently because there were two exhibitions that I wanted to see, both of which subsequently reminded me of why I enjoy computer programming. As an aside, don't visit the Design Museum website that I just linked to, unless you want a lesson in how not to design a website!
The first exhibition was a retrospective of the work of the graphic designer Peter Saville, who includes in his portfolio many seminal record sleeve designs, most famously for Joy Division and New Order. It was an interesting show, with lots of original source material on display. If you're in the area, I'd recommend that you catch it before it ends in seven days.
The second exhibition, entitled “When Flaminio Drove To France” was about the work of Italian car designer Flaminio Bertoni for Citroën. Bertoni apparently designed the bodywork for the 1934 Traction Avant—the first front wheel drive car and the first car with a monocoque chassis—in a single night and then went on to style the utilitarian 2CV and the legendary Citroën DS, which was almost certainly the most modern car ever conceived and which hasn't dated as much as you'd expect for a 48 year old design. It seems to exist outside of time.
I originally wanted to be a car designer when I grew up, inspired by my first trip to a motor show in October 1982. That was the British launch of the Ford Sierra, a car which was groundbreaking at the time (hard to believe now, I know) and which defined the aerodynamic look for family cars during the 1980s. Even though I was a wide-eyed child and swallowed the Ford hype about the car totally, the effect of the design—both on the industry and on me—was undeniable. I remember that people used to stop, stare and point upon coming across a new Sierra. When did that ever happen with a Mondeo?
As I got older, my interest in all matters of design and engineering broadened from cars to product design and to a lesser extent, graphic design. At the same time, I was also dabbling with computer programming. When I started coding for the PC using Borland Delphi in about 1996, I realised that much of what I enjoyed about design also applied to programming but obviously in an abstract way, since all I was doing was manipulating bits in a computer.
For me, one of the joys of programming is that it offers the chance to experience many disciplines during the development activity. For example, aesthetics and ergonomics whilst designing user interfaces. There is pleasure to be had in architecting how all the pieces of a program are going to fit together and applying experience and ingenuity, just as there is in designing a car and knowing how the moving parts will come together to form the whole. The programmer can take pride in what he or she has created and in its use by others, in the same way that a craftsman can. The very process of building something is enjoyable, of starting with nothing and creating something and fashioning it over time until it is done. The satisfaction I get from programming is the same as I used to get when designing things at school. It doesn't matter to me that the results can only exist in a computer. Good design is good design, regardless of how it manifests itself.