I've looked around me at the people that were 'great' programmers (and I mean that in the sense of being able to tackle large projects, organize things well, ability to learn new stuff).

I have a very limited sample to look at, which is probably a good part of the 'bias'.

It's great to see at least one (you) exception to the empirical rule that I've found to date, which is that old programmers don't. They retire, not because they can't code any more, simply because the rate at which new stuff is generated outpaces their ability to internalize it.

To some extent I feel that programming is more and more about APIs and less about algorithms, which is where I thought the real fun was in designing software.

If I look at the guts of a piece of code written in the last decade or so, say a large framework, I see nothing but 'glue', the 'real' stuff is hidden so far underneath that people are almost unaware of it.

When you're building a web application in Django, for instance, then you have the following layers to go through in order to get some records from a database on to the screen of the end user:

- HTML

- template

- view code

- ORM

- python

- sql

- some database engine

- storage engine

- operating system

- device driver

- finally the hardware this all runs on

I call it the 'layercake', it's the closest analogy in the real world that I can find to how software is structured.

My 'comfort zone' is the one at which I can understand all of what I'm doing. There is no way to go and know all that is going on in a modern computer, there simply is too much code, and clock speeds are so high now that three seconds of computer time are more than you could possibly step through in a lifetime.

So, I'm operating on 'faith' most of the time now. And I find that hard. I have a strong tendency to 'reboot' my career every decade or so, to keep things fresh, strike out in to a path that I'm still completely clueless about to keep things interesting.

Whenever I do that the old stuff starts to look like 'new' again and I find that I can fan the fires for another decade or maybe a bit longer. I hope to keep this process going, but the programmers around me that were absolute aces in the 80's are now no longer able to keep up, one by one they fall back, lose interest and quit. Some go in to different fields (music seems to be popular, funny enough, in the 'coders at work' book there is L Peter Deutsch who became a full time composer), some just burn out completely and stop.

I wonder what is in my future. I've always been like a little child when it comes to programming, it gives me endless fascination to figure out stuff and to see what makes it tick. When I was three years old my father gave me a screwdriver and a typewriter he found at the garbage to take apart. I never stopped taking stuff apart (it took a while before I learned how to put stuff back together).

As for the memory thing, that's been a pretty scary experience, I don't know when I first became aware of it, it must have been last year or so, when I realized that there was stuff that I'd forgotten. Not that before I wouldn't forget stuff, but that only happened to things that I didn't want to remember, anything that I wanted to remember stayed put. It seems that that is no longer the case. If this goes on I may even have to start using stuff like address books and agendas!