Tuesday, 10 July 2012

How programming lets me know I'm getting older


You're hammering away at a particularly hairy bit of code (or any other problem). You know exactly what you want it to do, but are just struggling to translate it into the right language. After hours of wrangling with convoluted logic and endless cycles of edit-build-debug-rinse-repeat, you throw your hands in the air, give up and walk away.

And then suddenly, while cooking dinner, or watching a movie, or in the shower thinking of what manner of pasta to snarf down for lunch, or simply just on the can focussing on your business -- it hits you. A brilliant solution to the hair-puller-outer, so elegant and so bloody simple you wonder how you never thought of it in the first place.

You scribble a quick note in your head (or Evernote, or a notepad, or whatever) and suddenly nothing else will do except firing up vim and set things straight right away. You do it.

The final turn on the safe -- maybe something audibly goes "click" in your head -- and it's done. You step back and marvel in the beauty of it. You can feel the mystery briefcase glow on your face, a la Pulp Fiction. All is right in the world again. You are the master of all you survey - there is no mystery you cannot solve, no stream you cannot ford.

You are also not me.

Maybe I am slowly gathering up enough work experience, or maybe I'm just getting older and my mind is atrophying, but while the initial frustration and subsequent elation are still very firmly in place, the "eureka!" appears to be happening a lot less these days. Instead, what I find works most of the time is just plugging away at the issue, continuously breaking it down into smaller bits, and gradually piecing the solution together from these little digested chunks.

"Solution epiphanies" strike about two or three times out of ten, down from 6-7 out of ten from back in the day [when we wrote our code with styluses on papyrus and prayed to Ra to compile it into machine code via heliography]. The adrenaline and oxytocin rush is still phenomenal, but I find myself needing them less and less, since I can be more objective about the side effects and just more productive overall.

I still end up getting celebratorily hammered over the next weekend though.

6 comments:

TheIrishman said...

Hi,

Sorry to hear of your blockage. But I don't think it has anything to do with age.

I am 47 now, and started programming when I was 11. So I have been at it a while.

There was a period (maybe a year and a half) when I suffered the same block on Eureka.

I couldn't see the problem at that time, but I was maxed out with stress. Everything was a mess, and it was only after I sorted out all those things that I had the TIME to allow those thoughts to percolate.

I am a smoker (Oh no!), and I find that that 'blank' relaxing having a quite smoke is 60-70% of my Eureka capacity. The rest is usually when relaxing in the bath.

My point is, however you do it, you need the time an PEACE to let your left brain go to work.

For me, a shower would never work (too rushed), and cooking is, well, for cooking. Yes, these things can relax you, but they are still to busy to allow your brain to really work on the problem.

I suspect, therefore, that all that is happening, is that programming is reminding you of how busy and lacking in peace that your life currently is.

Try to take some real time out. No distractions, no cooking, no kids. I think you may find that it works. But it will take some time for you to get back in the habit of meditative inner peace. This is what allows you full access to your creative functions.

After my little 'burnout' it took me over three months to get back to being able to really become still for the necessary time.

Any how, good luck, and remember, 30% Eureka is still pretty good going!

Best Regards

Liam
TheIrishman

Anonymous said...

What if it is just that you know more now and you are able to leverage it to continue plugging away at the problem? What if it is also the ability to focus for longer periods of time because of all the training you have put yourself through?

You should have less moments like that as you go on because you have tackled many problems and solved them. You leverage that as you do new projects and come upon new problems to solve. You also have learned how to tear down a problem in smaller chunks to solve it.

Shrikant Narasimhan said...

As with nearly everything, I suspect it could be a bit of both: maturity and experience combined with a side serving of stress. I'd prefer to focus on the positive and soldier on, keeping a lookout for any telltale signs of burn-out..

Thanks for the inputs, Liam and Anon - much appreciated!

Anonymous said...

Stress is often the cause - coding just after the birth of my first child involved virtually no eureka moments, but I've since gone back over the hairy messy bit by bit plugged-out code I wrote then and had the eureka moments and elegant solutions I didn't get at the time.

Agiama Yokohama said...

For me, a shower would never work (too rushed), and cooking is, well, for cooking. Yes, these things can relax you, but they are still to busy to allow your brain to really work on the problem.

obat tradisional asam urat

seemi seemab said...

Free Download Premium WordPress Themes and Blogging Tools blogger Templates and joomla templates and much more
free wordpress themes