Monday, 8 February 2016

Chasing the Dragon

Fig 1. Man chasing Dragon.
It's no secret that, I am an addict ...

I'm allowed to assume that if you are reading my blog, about programming, you too are an addict.

All of the time I am awake, I chase the ultimate high ... that high is ... making computers do stuff.

We probably both have a problem ...

I've always found "chasing the dragon" to be a beautiful metaphor for the pursuit of our aims, in spite of the damage it does to us.

Beautiful, right up until the moment the chaser catches the dragon, the dragon turns and kills the chaser.

I don't have the energy I did four, three, two, or even one year ago, do you !?

The pursuit of my aims is taking it's toll, days are shorter now, I can't concentrate for 16 hours at a time any more.

I'm acutely aware that I'm becoming less able.

Before the dragon turns and gets me, I have to change pace.

For some months now I have been trying to get out of the house at weekends (I work from home), stop working at a reasonable time, and spend time with the family and kids most evenings, rather than on code.

This is a difficult adjustment, days where I really feel I achieved something are vanishingly few, I'm assured this is all in my head by people I work with. That my perception may be skewed doesn't make the adjustment any easier.

If you're still reading, I like to think it's because my words are ringing in your ears: I could be describing a version of you, from not too far in the future ...

Maybe you have excellent foresight, and it won't come for another decade or two.

Mentoring as Substitute

Fig 2. Blob headed beings, whom I would like to meet.

I'm super fond of solving problems, and I don't care whose problem it is.

Within the PHP ecosystem, there is a sense in which all problems of a certain kind are my problems: Because there are so few of us (relative to the number affected) that are able (or willing) to solve the kinds of problems I'm talking about.

I love that. I can get my fingers in many pies, become familiar with software we all take for granted, even most other internal developers. It helps me to understand ... I don't know about you, but understanding doesn't come easy to me, I have to really work at it.

Electronically at least, I'm also super fond of talking; Ask me a question about something you know I have the answer too, and I'll waste the rest of the day talking to you about it, if you'll let me.

I'm not always great at seeing the big picture, and until recently it had never occurred to me that I might enjoy mentoring other programmers.

Room 11 on Stackoverflow is where I ... I think the right word is roost, or possibly fester ...

There are an amazing bunch of internals and community programmers that frequent the room. It has produced, indirectly, many great projects, and some of the most popular RFC's.

I think this is a pretty widely known fact by now, and as a result, the room manages to attract new internals and extension developers.

One such programmer has just released, to roaring crowds (I think), a very nice data structures extension for PHP 7.

Over the last few weeks, Rudi and I have collaborated in Room 11, and by other means, but, for the first time, I didn't take the lead writing code.

I answered questions in as much detail as my skills allow, helped Rudi debug, reviewed code, made a few very minor fixes, and finally helped him prepare to publish his work.

I enjoyed this experience at least as much as I would have enjoyed writing the code myself, maybe more.

Rudi has kindly, without me asking him too, put my name in the credits, he's also thanked me no end.

All I actually did, was stuff I would have done anyway, stuff I enjoy, stuff that actually is less demanding and better for me than always trying to pursue solutions for myself.

This is absolutely a revelation to me, and I think we all see within it a way to keep the dragon at bay.

I look forward to the next project, and the next programmer ... is it you ?

Consider this an invitation.