Sunday, March 23, 2014

Programming Attention

I am fortunate to work in a field that has been talking about its own neuro-atypicality for... well, we just obsess about it really.

  • Software Developers and Asperger's Syndrome
  • The Geek Syndrome
  • Programming with ADD/ADHD
  • Struggling with ADHD as a Programmer
  • These are all anecdotes and hunting them down is getting boring. There's bundles on Asperger's, the ADHD stuff primarily shows up on message boards. Bored now, google it yourself.
  • But then again, isn't that what you'd expect?

    Not just the part about me getting bored, the stuff about nerds being, well, nerdy. We think differently. We have to, actually, because it turns out that computer programming is either something that you can just do or it isn't. A couple of guys from Middlesex University, Saeed Dehnadi and Richard Bornat, wrote an exceedingly amusing paper, The Camel has Two Humps on the subject, noting in the abstract that "programming teaching is useless for those who are bound to fail and pointless for those who are certain to succeed." What they found was that they could test students before the students had ever been exposed to programming languages or techniques and accurately predict which ones would be able to grasp programming concepts based on the way the test takers approached a series of problems. Regardless of whether the students chose the correct intended meaning of a symbol (a meaning, incidentally, that is different in the language being used in this test than it is in non-programming mathematics) what was critical was whether the students applied that meaning consistently across all problems. They had to understand that symbols have meaning within the programming language that is consistent within the language but independent of the meaning outside the language, or as they put it:

    Formal logical proofs, and therefore programs – formal logical proofs that particular computations are possible, expressed in a formal system called a programming language – are utterly meaningless. To write a computer program you have to come to terms with this, to accept that whatever you might want the program to mean, the machine will blindly follow its meaningless rules and come to some meaningless conclusion. In the test the consistent group showed a pre-acceptance of this fact: they are capable of seeing mathematical calculation problems in terms of rules, and can follow those rules wheresoever they may lead.

    Does ADHD help you make this logical jump? I have no idea. But if you are an ADHD-er who can make the jump, that means that programming isn't something that you have to slog through lots of boring classes to learn; it's something that you can pick up easily, intuitively, and for someone with ADHD, that is very attractive.

    How prevalent exactly is ADHD in this field? I can't find anything that suggests that anybody has tried to quantify that. But from my own anecdotal experience... I'm far from the only one who has sat down in the afternoon to work on a particularly intriguing piece of coding, and then looked up again what seemed only minutes later to discover that the office is empty, dark and locked, that it is 8:30 at night, my phone shows several missed calls from the spousal unit, I'm hungry, really need a bathroom, and (this one blows me away every time) I have removed my shoes without realizing it... again.

    No comments:

    Post a Comment