Tuesday 20 November 2007


Dear Junior

Programming is a tough art, craft, and science. I guess I could ramble for ever about each and every of those aspects. I have thoroughly enjoyed our chats and conversations on the topic, and I hope that you have learned some things inbetween my monologues and half-structured answers to your questions. I certainly have learned a lot myself by trying to formulate thoughts and feelings I have had during my professional life. Often I have felt that the adequate, well-formulated answers have popped up in my head at a later occasion. I apologise for confusions I have caused.

However, as I would like to share with you as much of my experiences and thoughts as possible, I realise I cannot rely on our discussions alone. To complement them, I thought I will make an attempt to write you letters. The issues will be the same as our discussions: on how to build software systems, what I call ‘programming’ – both about what we build, and about the things we do to build them.

Of course, these thoughts will neither be totally adequate, nor totally well-formulated, but the goal is not to build a ‘theory about programming’ but rather to share my intuitive feelings and ideas.

I hope you will find these letters interesting. Hopefully some of the ideas will resonance against something in your own experience; you will bounce them around for a while, change them, and make them into your own.