Photo_56_small Michael Bedward 6 posts

I’m an ecological researcher and a self-taught programmer. I spend a good deal of my time puzzling out how to model the complex dynamics of plant and animal populations in changing environments, and then how to implement those models as software.

When I heard about Andy’s new book I thought – YES ! For me, the intellectual challenge and perennial pleasure of programming is that it IS learning. I mean this in many senses… learning about the problem that forms the context for a given project; learning how to best use the features and design philosophy of a particular language; learning another language (and another, and another…); and above all, learning how to learn.

My favourite metaphor for programming is The Glass Bead Game. I first read this Herman Hesse novel when I was about 20 and going through my search for the meaning of everything phase. Nearly thirty years on the image of the Game still resonates.

In the Glass Bead Game the player or players build patterns of symbols, which represent facets of knowledge drawn from music, design, literature, philosophy, mathematics… As the pattern develops, connections between disparate fields emerge and, on a highly abstract level, some sense of ‘oneness’ of all artistic and intellectual knowledge is reached.

What better metaphor for programming ? The common grammar of a programming language, and the conventions of pseudo-coding, form bridges between separate disciplines. In my own ecological work I have been able to draw on ideas, approaches and algorithms in musicology, astronomy, linguistics, econometrics, political science, epidemiology to name just a few. The technical literature of many of these fields is often a closed book to me, or at least one that would require much study of each field’s specialized language and conventions. But program code provides a key.

The other aspect that I love about programming, and one that I’m looking forward to reading about in Andy’s book, is that it is like watching your mind work. Looking back on your own old code (gulp !) is like looking at a journal of how you understood and approached problems. Comparing code written in a variety of languages lets you pick out the common threads, habits and constraints of your own thinking. Learning a new language is an opportunity to keep your thinking fresh, to find new angles, and (it seems from current neurological understanding) to actually restructure the ways you think.

Er, I see I’ve gone on a bit here :) I hope that’s not out of order in these forums.

Michael

 
Andyhorn_small Andrew Hunt Administrator 22 posts

Not at all! Long posts are always welcome.

I read The Glass Bead Game a few years ago, and yes, I agree. Parts of it really resonated with me—I had a group of friends once where we developed a similar game. We’d try and see how long you could carry on a conversation strictly using movie quotes, song lyrics, literary quotes, etc. Some many years later there was a Star Trek episode that effect, where an alien race befuddled the universal translator because they always spoke in metaphors, using their shared cultural references as source material.

Patterns and metaphor is what it’s all about.

/\ndy

 
Photo_56_small Michael Bedward 6 posts

Andy said:

I had a group of friends once where we developed a similar game. We’d try and see how long you could carry on a conversation strictly using movie quotes, song lyrics, literary quotes, etc.

I know people who can do that just with quotes from Douglas Adams… Actually, I’m one of them.

Michael

 
Andyapril2008_small Andrew Dent 1 post

Haven’t read your book yet but Dick Gabriel has a section on the GBG in his excellent “Patterns of Software”, now available from his site as a free PDF http://www.dreamsongs.com/Files/PatternsOfSoftware.pdf which I recommend to anyone who missed it when it was in paper.

4 posts, 3 voices