Do Great Programmers Have Selective Autism?

April 29, 2007
Autism is characterised by the impairment of social interaction and communication. It manifests itself early in a child’s life (first 3 years) and is seen in varying degrees. Many programmers often show similar impairments to social interaction and communication albeit at a far less severe level. I’m going to be a little controversial and propose that great programmers sometimes have the ability to strengthen this lack of social interaction and communication making them exhibit autism like behaviour.

aka In the zone

Over the past few months I’ve noticed that when I get into the ‘zone’ people can have entire conversations with me and after finishing my coding stint I’ll be oblivious to the fact they were even talking to me, let alone what I said in response. This also extends to the state I’m in when disrupted from a heavy coding session. I’ll not pick up the regular social interaction queues and often either upset people or seem like I’m not listening properly. So my line of thinking goes that the better you are at tuning everything else around you out, the deeper you will be ‘in the zone’. Perhaps turning off the behavioural parts of the brain gives better focus to the more analytical areas required for programming.

Nerds

This may explain why those we see as ‘nerds’ are so good at programming. If you haven’t fully developed your communication parts of your brain, perhaps it’s then easier to shut them off. For a lot of nerds, the only social interactions they have are over the internet via their computer. This means their entire communication development has been built up around the computer, stopping them from needing to worry about subtle queues like the change in pitch of someone’s voice when they are becoming frustrated.

Conclusion

This is something that I’ve been thinking about over the past few months and wanted to get some feedback as to whether anyone else has experienced the same thing. I realise that autism is a serious medical problem and don’t mean to trivialise it in any way. The fact that many parts of autism itself are quite controversial may mean I’ll get a little flak, but I’ll just put this next to the hate mail from my programming personality test?

Share:
  • Digg
  • Reddit
  • Facebook
  • del.icio.us
  • DZone
  • LinkedIn
  • email

Find Us On Facebook

  • Ryan

    So what you are proposing is that programmers can ‘free’ the resources tied up in social interaction and communication and ‘dedicate’ them to analytical programming tasks? In doing so, they become an autistic 3-year-old socially but Carmack-esque analytically? I’m not convinced. You will have to prove that the social skills of a ‘nerd’ improve when the nerd is not ‘in the zone’ for this idea to be respectable.

  • http://www.doolwind.com Doolwind

    Ryan-
    Have you ever caught a programmer off-guard and had them seem extra rude or abrupt? Chances are you just disrupted them while ‘in the zone’. I’ve seen it happen to myself a number of times (hence the article) and also seen it in a few colleagues.

    Next time a programmer is deeply involved in their task, go over and talk to them and see if they are any harder to talk to than usual. For some extreme nerds the difference between having their skills on or off may be quite subtle, but I’m sure you’ll be able to see at least some change.

  • zppz

    Autism? Try ADD and you would be closer…

  • Mr Thompson

    ever caught a construction worker in the middle of working? (bad example). How about anybody working hard?

    You may be suffering for standard male single-mindedness.

  • http://www.doolwind.com Doolwind

    Mr Thompson-
    I’ve certainly been caught working hard as an I.T. guy at my old job, and when studying at university and I could almost instantly snap out of it. Perhaps I just didn’t focus as much in these tasks as I do when programming in the zone.

  • http://www.alivad.com David W

    What we really need to do is teach the general populace to let zoned-in nerds be … how many times are you in an intense coding session – with algorithms and data structures and both the big and little pictures all in your head – when somebody bugs you just to ask something like “Hey, how do I turn this ‘m’ into a big ‘M’ in Word?”

  • http://9gate.blogspot.com Pablum

    Been there man… when I’m programming and it’s happened a lot of times, people may be sitting right next to me but I won’t listen!

  • http://cornbreadshome.spaces.live.com/ Andy

    I have Asperger’s Syndrome which is a form of high functioning autism. I am a software developer and most of my peers have told me I am an excellent developer. Some places I worked valued my work so much they patented it. I am not saying this to be boastful. I am just saying it to give a bit of background on myself. Yes, I have met other programmers who are on the autism spectrum. If you have Asperger’s you can generally spot another “aspie” very quickly. Not all great programmers are aspies. I have met many great developers over the years and I would be willing to bet less than 10% of them would be clinically diagnosable as being on the autism spectrum. So in answer to your question no, I don’t think all great developers have autism. I have however never met an aspie that was a developer who was bad at it. All the aspies I have ever met who were developers could be classed in my humble opinion as good to great. But the same goes for aspies I know who have no interest in computers but are musicians, painters, lawyers, or engineers. They are very good to great at what they do. Just because a developer exhibits a few autistic traits doesn’t make them autistic, eccentric maybe, but not autistic. Autism has gotten so much press lately which is great, but having grown up with it I can honestly say there is far more to it than just the few symptoms you hear about on Opra or in an article in Slate. One of the easiest ways to recognize aspies is by our voices. nearly all aspies voices have no inflection and we speak in a monotone. I had to learn inflection over many years and I still get it wrong and I still speak in a monotone especially when I am tired and forget to try and add proper inflection to my speech. I could go on all day about autism and high functioning autism but the simple answer to your question is: No, not all great developers have autism but some of them most definitely do.

  • Thomas Eyde

    I think this behavior is more related to being extrovert or introvert. Being an introvert myself, I can literally feel the pain when anyone tries to catch my attention while I am totally concentrated on something else, like programming, reading a book or watch tv.

    The new guy at my office, which seems to share many of my points of view to programming, has a different problem. When he wants to watch tv, he needs his surroundings to be quiet. If not, he gets interrupted all the time and will miss the whole tv show. I suspect he is an extrovert.

    Newer medical discoveries show extroverts and introverts have different dominating brain paths. The general population counts 25 % introverts, while the programming profession counts 50 %.

  • http://www.doolwind.com Doolwind

    Andy-
    Thanks for the insight. You’ve certainly brought up a good point that I may have it the wrong way around, that all people with Aspergers are great programmers, not the other way around. Perhaps I have some faulted logic there, but I was sure it seemed sometimes that myself and people I’ve worked with have shown most of the signs of Aspergers. It would be interesting to get some stats on how many programmers show full versus part signs of Aspergers and see what the general trend is.

  • http://www.doolwind.com Doolwind

    Thomas Eyde-
    Thanks for the stats. I have found that the majority of programmers are introverts that I have worked with. What’s also interesting is that those that are extroverted are generally worse programmers, however they are better at selling themselves so people often believe they are just as good as the quiet nerd that gets the work done but never big names themselves.

  • myschae

    I think this is an interesting artical. I have just completed my BS in CS and I am entering my MS program this coming fall. I am a returning student and I went into CS because I started programming as a hobby and really enjoy the problem solving aspects of it. Prior to that, I was pretty successful in a managerial/social job.

    One thing I’ve worried about while I’ve been in school is the stark difference in personality styles between me and the other students in my class. Aside from gender (I’m female), I tend to be much more emotional/intuitive and much less logical/sequential than anyone else I’ve encountered in the CS program.

    Frankly, I stick out like a sore thumb.

    I’ve had some serious doubts about whether or not this is the right field for me and I am currently wondering if I should find another focus for my MS. As far as my code is concerned, my instructors feedback is that my work is “excellent” and often demonstrates a lot of real thought about how things work. (I may not be logical/sequential, but I’m incredibly relational/abstract in my thinking). My solutions often tend to look completely different from any one else’s solution but they also tend to work and have a high level of useability built in or insane error trapping (I trust no one to enter things right).

    I am being strongly encouraged by my faculty to continue on in CS — but I do worry a little about the perception that the “socially skilled” aren’t as “technologically skilled” or, possibly, can’t be as technologically skilled as people who fit the more “nerdy” profile. And, I want to avoid being in ANY sort of managerial position ever again. Yeesh, I hated that.

    Mys

  • http://www.doolwind.com Doolwind

    myschae-

    Don’t lose hope just yet. It sounds like you’d be perfect as more of a lead programmer than just a grunt that works in the trench’s. People with both programming and personal skills are hard to come by in our industry and standing out is often a good thing. There are always plenty of generic programmers that can write great code, but what’s really needed is people that can relate to others.

    Even as a general programmer I believe it’s important to have excellent communication/personal skills to work really well in a team. Programming itself isn’t that much of a challenge for people that ‘get it’ so being able to think outside the box and solve interesting challenges (like somehow making a team of 100 programmers work together) is far more important than being the absolute greatest programmer.

  • myschae

    Doolwind,

    Thank you for the kind words and the encouragement.

    I am hoping that I’ll find a good niche for myself in the CS world. In school, I am usually the person everyone finds to ask questions – often after they’ve gone and asked the instructor what he’s talking about. For some reason, I tend to be able to verbalize and describe the concepts better than many of the instructors and I seem to act as some sort of quasi interpretor much of the time (I might ask the question myself then translate the answer). It’s odd.

    Of course, most of my instructors can’t write a good program specification to save their lives.

    I was wondering, some, how this plays out in “real life” because I know that school is such an artificial environment. People in classes are mainly trying to find the quickest (not necessarily the best) way to the solution and, for some bizarre reason, my instructors seem to be allergic to group projects. I have managed to organize bunches of people into some pretty amazing study groups (I naturally seem to build teams) and we’ve discovered that 6-8 of us working together can solve or figure out some of the more difficult theories much, much faster than solo. At one point, based on test score outcomes on past tests for those in the group vs. those who went solo, we ended up reserving a whole conference room to study for the final.

    That was neat.

    Anyway, I really like your web site. I took your programer profile test and I scored: PLTB.

    Once again, thank you for the encouragement. It is nice to know that there is room in the “real world” for techies who are more social. Even though I’m a team builder, I’m a closet introvert at heart, so my dream job would be working as a part of a really good team and being able to spend lots of time in the code – and not so much dealing with management issues (been there, done that).

    Mys

  • http://www.doolwind.com Doolwind

    myschae,

    I’m going to sound like a broken record, however you’re in for more good news… :)

    “I tend to be able to verbalize and describe the concepts better than many of the instructors”

    This is an almost perfect position to be in. From my experience as a developer, anyone who can talk to customers in non techno-babble while still explaining what’s actually happening is invaluable. There seems to be two groups of characteristics exhibited by software developers. Those that understand code, and those that understand how to talk to people. I was surprised how few people have both these skills. I’ve also found in certain jobs that people that can do both tend to rise above the rest very quickly. It can be as simple as knowing how to talk to management and explain why you should be moved into a senior position. However generally it means that you are seen by management and customers to be more user-friendly and therefore people with gravitate towards you.

    On the flip side however, there are plenty of jobs out there that simply want coders who code all day with pizza and coke pushed under the door at regular intervals. Thankfully these companies are in the minority from my own experience, however you need to be careful you don’t get stuck at one.

    So from my experiences, while university and ‘real life’ are completely different, the skills you have should work well for you in both areas. Unfortunately the flexibility you’re experiencing at university is quite rare in the industry, however if you can find a good enough company, or at least wait until you move up into a senior/lead role, you’ll have the opportunity to craft your own team and try for the ‘dream team’. I’m hoping to do the same myself, being able to formulate the ultimate team that spends most of the time coding and little time dealing with bureaucracy and general office politics. :)

    PLTB…it’s the only way to be ;)

  • Yadav

    Hi,

    You are right, after a heavy coding session, I too have found similar events happening to me. Later I found a way to negate this. I started having a thorough low level design and this helped me to fix up a schedule for coding, once I have fixed up a schedule for writing a piece of functionality, I split them into seperate tasks say step 1 to step 10, I simply relax between each step and it worked fine with me and I had no problem with social interaction there on.

    Sometimes I may relax by taking a walk, talking to a friend or going for a tea, but I make sure it does not waste too much time of not more than 5 to 10 minutes.

    Following this religiously just allowed me to rise as a person who can handle customers, team and also the technical side of building a product.

    But then without having a thorough low level design and having to go through a coding session is like a going inside a never ending cycle of bug fixes, code reviews, peer reviews, testing etc.,

    There is of course some politics to handle all over the tenure in a organization, if anyone works well becomes neutral to politics.

    The blog is good and I wish you to continue your good work.
    I got some good insights from your blogs.

    Thanks,
    Yadav

  • http://www.doolwind.com Doolwind

    Yadav-

    Thanks for the feedback. I’m glad to hear that someone else has had this problem and has overcome it. You’re exactly right in the way to treat the problem. If I make sure I plan a break in my code and stop working then I am ok. The problem arises when I have to stop midway through some important code and as it’s taken my brain so much power to get into the zone, it tries its best to stay there.

    I’m glad you’re enjoying my blog and I hope to continue posting some more articles soon. I plan to post an article this weekend explaining the absence of entries as well as what my secret project of late has been.

  • http://www.brainstreamer.com Peter Muys

    Hi,
    I am a software developer and have been working with computers since i was 11 years old (I’m 35 now).
    You call it ‘in the zone’ I call it being in my World. When I was younger, this was the ideal way to escape the real world. And, I guess, for me it still is a bit like that.
    It feels good when being in the zone, I am very productive, everything is under control, my brain is running at 500%.
    Having to get out of my world abruptly is hell. I don’t stop to think, I don’t want to stop. It takes a couple of hours to get out of it.
    Like with drugs, it’s addictive and like drugs, too much will get you down.

    Over the years I have learned to watch the signs. If I am in my world to long, I know I will suddenly stop working. So now I try to have periods of rest. It is hard to follow this, but I have to.
    Thinking about it now, I should probably say that programming is my drug addiction.

  • http://svacademy.org Kelli Allred

    Wow — your insight into the mind of a programmer is valuable to those of us who work with autistic adults. Funny, I was a technical writer for educational software for 5 years and worked with a number of “nerds” whose communication skills were less than acceptable. I wish I had known then what I now know about the mind of an adult with “selective autism”, as you call it. Thanks for sharing!!

  • Adam

    I always find it funny how people are always trying to look for labels or diagnosis things about thier personality. I saw a quack psycologist who tried to diagnosis me with Aspburgers. I was the programmer who shut out the world and was anti social at that time. But what he thought was apsburgers was a complete lack of social skills. Through work and use real techniques like hypnosis that worked for me I was able to let go of those fears and learn to build real social skills. So now I’m no longer the programmer stuck behind the desk, but now one who is in contact with clients, examining thier situation, suggesting and engineer the soluitions and requirments. I also cringe when people want to label thier self as this or that. Once you do that then you have to live up (or down to) whatever that label is, and it becomes a static unchanagble thing. This is your life and you are in control, and if you are like me you simply can’t excpt that you can’t change things about yourself.

  • Apples

    I’m disgusted by this. Autism is not something you choose. It is how you are born and it is something that is grossly misunderstood by society.

    It is not something that people can change by trying harder at communication or spending less time on the computer.

    This is as insulting as saying that people with cancer just need to read more.

    All you are doing is trivialising autism. Just leave those of us who are autistic alone.

  • AlexMan

    I think that there is this kind of abatraction capability in every on, some times it looks like something pathologic, because we developers are inmerge in our algorithm-logic-full world, that certainly dimish our social skill, I have meet also gret developers with som e sort of Obsesive Compulsive behavior, I guess thta ll dpend how easy we cna flip the switch to be in the abstract mode “in the Zone”, Inpired, Focused, Or however every one called this mind status where the Ideas come and make totaly sense. For sure when the brian goes to such effort the side effects is a kind of mind hang over which sacrifice the “less” important skil to survive. In my case when that happend, after a long time of exposure to the abstracness i just want to sleep. Anyway I try to keep my socials Skills ALive. Go out, meet people, etc. This is one of those egg-chikne situation, is the behavior provoked by the profesion or the profession selected because of the inherit behavior?. I think the most important think however is to be able to flip the switch, if we need to “isolote” ourself from the world in order to do a good job so be it; but once tho job is done, flip the switch back to the social mode. Life is more enjoyable if you share it with somebody else!

  • tom

    Yes, i’d always assumed it was practically a prerequisite to be located somewhere on the autism spectrum for this kind of work.

  • http://ethicminds.blogspot.com/ kyaw kyaw naing

    Great concentration and no-non-sense approach to life shouldnt be confused with autism.

    e.g. Mushashi went for days without a bath.

  • http://salevy.blogspot.com Steve Levy

    I have managed “nerd” programmers and support people. They are like everyone else basically. They do like email. But after a number of interchanges they will meet with people.

  • Thomas Jane

    All good programmers have to be Anti-Social

  • http://gamerboom.com/archives/36353 优秀游戏程序员是否就有间歇性自闭现象? | GamerBoom.com 游戏邦

    [...] but I’ll just put this next to the hate mail from my programming personality test?(Source:doolwind) 分享到: QQ空间 新浪微博 开心网 [...]