I have the code-brain.

Now that I live centrally, I’ve been finding myself more frequently excusing myself for having code-brain. What is code-brain? It’s when I’ve spent a day immersed in hacking code without social interaction… and to get out of this state generally just requires time. Usually if I went anywhere it’d require a drive and enough temporal separation for me to revert to a more sociable state, but now that I live in town, it’s about a 5 minute walk to meet up with people which is not enough time and words come with difficulty.

Given the plasticity of the brain, I sometimes wonder if coding for a living is psychologically stunting for one’s social behaviour. However, I can quickly reject that because many coders I know are very social and I don’t see them having the same difficulty.

I sometimes liken it to a mild form of Aspergers, since when dealing with code, for the most part it’s possible to keep everything you need to know about in front of you and it’s finite. It’s not overwhelming except when you’re thrown into a new project with a large existing code-base. Coming from being immersed in such a controlled environment it’s hard to adapt to being in a room full of people because it’s impossible to predict exactly what everyone else will do.

I don’t want to predict what everyone else will do, that’d make life boring. I just know it personally takes time to adjust between the two environments. If anyone has read or seen anything about this phenomenon then I’d appreciate links/comments – mostly so I can understand how to speed the transition and get more enjoyment from social situations without the painful transition.

Possibly I just need to make the transition more often and it’ll become easier 😉


#1   Rob Hunter on 12.14.09 at 12:54 pm

I’m a bit of a pair-programming fanboy, but making coding into a social experience makes the transition necessary.

(After several years of pairing for my day job, my attitudes are significantly biased. If you’re at home alone, you may not have a viable pair; I haven’t experimented with cognitive tricks like pairing with a teddy bear, but I suspect they’d have a non-zero effect.)

#2   Trond Nilsen on 12.19.09 at 10:06 am

I also am a pair-programming fanboy, in that I find almost all complex technical activities more engaging and productive when there’s someone else around working on either the same code, or something related.

Code-brain, though I’ve never used the phrase, is something that’s familiar to me in the coding form, and in various other forms, as well; a week spent writing a research paper makes me more literate, more attentive to detail and more curious, but much more conservative in what other tasks I’m willing to take on – I get this whole “OK – I’ll do that when I finish the paper” thing going on that I distinctly don’t get with coding.

Basically, it seems logical that different focused activities over a period of time result in heightened attention and faculties in those areas, and thus less in others. Switching, obviously takes time.

Solutions? Not sure there are any firm ones or if they’re desirable, but I definitely think forcing oneself to interlace different activities can result in a greater level of mental agility, at the cost of higher rates of exhaustion and less focus.

It’s always a tradeoff, I think. Improved cognition seems mostly to be about conscious meta-cognition – knowing your own behaviours, reactions, and the ways you get into them, then consciously applying those (as best you can, while still being subject to them). I’m really interested in tools for automating / enhancing / understanding meta-cognition. There’s really not many general purpose tools, as far as I’m aware, though of course there’s planners galore for things like dieting, exercise, and the like. Plus the humble alarm clock.

#3   Joel on 12.21.09 at 7:43 am

I think the best tool for meta-cognition is experience. Lack of conscious behaviour often occurs in new extreme situations, but if you’ve already been there you can respond in a more considered way. At least in my opinion.

Pair programming would be interested to try with someone I could relate and whose skill was on par with mine. Not that I think I’m the most fabulous coder or anything, it’s just my pair programming experiences have usually resulted in me doing most of the work and explaining algorithms the other person isn’t aware of. I guess this is a good thing, as it ensures I understand what the hell I’m on about, but it feels unproductive at the time.

#4   jekin on 02.18.10 at 11:27 am

Pair Programming can be frustrating sometimes but if both of us are at same level then it can be of great help as they can concentrate on problems rather than explaining each others

Leave a Comment