Many programmers, including some of the brightest and best, are dyslexic - how does that work!?
I want to make a confession.
I’m slightly dyslexic and being a programmer this is a worrying condition!
It is even more worrying that quite a few of the “good” programmers I have had the privilege and frustration of working with over the years have also been dyslexic, some very much so.
First I need to explain why dyslexia is a strange defect to find in a programmer, just in case some of you don’t know what dyslexia is or what programming involves.
Firstly, dyslexia is a complicated collection of symptoms and problems that often goes unnoticed in the school system.
Here are seven thing you need to know about dyslexia courtesy of help4dyslexia:
Click for larger poster
The major problem is that dyslexics find it difficult to read.
This isn't their only problem but it is the one that surfaces as soon as they encounter formal education with its set stages of learning to read.
When all the other pupils are zooming ahead onto Dick and Jane book 12, a typical dyslexic is still wondering what the black blobs on the paper might be.
That is, if they are lucky - many know all too well that the black blobs are important, and probably the key to the universe, only they can’t quite grasp it. The frustration often leads to other more antisocial problems and eventually a proportion of dyslexics end up being classified as "bad" and "lazy" rather than having a problem not of their making.
A Range of Problems
Being one of their number, I would like to claim at this point that dyslexics are in fact fine people with huge IQs and wonderful abilities given to them to make up for the problem – but I can’t.
Dyslexics I’ve known have a range of abilities, IQs and failings.
Just because you have dyslexia it doesn't mean that you are gifted with many compensating factors. Usually it's just that dyslexia makes it more difficult to show off what you do have, because people focus on what you cannot do rather than on what you can do.
Once they have managed to decode the blobs, if they manage to decode the blobs,dyslexics usually show other problems – reversal of letters and figures e.g. d/b and p/q, 5 and 2, difficulty with sequences of all sorts, terrible spelling, very short short term memory for learning lists etc.
One odd symptom that is very rarely discussed, but a number of dyslexics I have known recognise it when it is mentioned, is a strange symmetric transposition of whole character or figure groups.
For example, one person I work with always confuses the numbers 12 and 20 to the point where if I find a 12 or a 20 in a program there is a 50% probability it should have been the other one!
Why 12 and why 20?
A good question, but you can see, or rather hear, that there is similarity in the way that they sound – yes the problems are complicated and sometimes comical!
The Big Fail
The big problem is that the formal education makes a fetish out of being able to read. It doesn't much matter that a dyslexic might be able to do difficult algebra or master scientific ideas - if they can't read they they are a failure.
The same is true but to a slightly lesser extent for arithmetic. Many dyslexics are also "discalculic". The problem with this is that mastering arithmetic is also another barrier that formal education sets up. If you can't do arithmetic then you can't do math so there is no point in progressing to anything more difficult. The important point is that many dyslexics can tell you how to solve a problem in arithmetic but they can't do it without a calculator.
It is time the distinction was made between spelling and creating works of great literature and begin able to add up and doing real math. Arithmetic is what a cheap calculator can do, math is something else again.
Dyslexics often have the ability to master the algorithms if not the machinary to execute them and this quickly becomes a barrier to making any further progress in formal education.
If you can't read and you can't do arithmetic then you can't move on to do literature, algebra, the whole world or mathematics and science or anything else for that matter. And yet in many cases if reading and arithmetic are simply ignored then dyslexics can do more difficult things.
I am always amazed when I encounter a young dyslexic failing at school, perhaps taken out an put into a special education program that drills them for as many hours as possible in reading and arithmetic and discover they they are an expert astronomer, programmer, engineer, maker, electronics expert, photographer, mathematican, etc.
Remedal programs sometimes help but simply ignoring the difficulites an moving on works much better.
Now we come to the programming connection.
Dyslexics often can't read long flowing paragraphs or do arithmetic but they do have algorithms in their heads. They often are very know how to do things and find it possible to express the dynamics of a process as a static text - which is what programming is all about.
Of course there is a the small problem of having to write it all down and read it. There are also problems of spelling, seriation and short term symbolic memory deficits.
What is more programs use lots of symbolic names which need to be spelled 100% accurately and even capitalised in the correct way.
This is the spelling problem on steroids.
Oddly this doesn’t seem to be a huge problem for most of the dyslexic programmers I have worked with.
They seem to be able to keep to a single spelling of a symbol.
In the early days this was probably due to the fact that compilers would spit out error messages when variables were spelt incorrectly - yes compilers were early spell checkers!
It isn't always the spelling of a symbol that most of us would have picked but it is often consistent.
The real problem occurs when they have to “interface” with another programmer’s code. For example, two programmers are working together on a project to build an application for managing a production line which makes automatic measurements. One works to build a class library for the other to use in building the application.
Fine until the first programmer writes a call to the “height” method of the “widget” object only to find that is actually the “hieght” method of the “wiget” object!
Such things are usually easy to notice with spelling and intellisense autoprompting and relatively easy to put right with modern refactoring tools, apart that is from the shame of it all!
To be serious for a moment many dyslexics are very loath to admit that they have a problem at all and become hostile and or embarrassed at any attempt to notice let alone discuss the problem. This unwillingness to even admit that there is a problem is perhaps the only intractable problem!
Most dyslexic programmers do a good job and may even do a better job for having to battle with their problem – but this isn’t the important point. If you know that a particular programming language has a tendency to a particular type of error then you do something to guard against it. The same should be true of the programmer’s tendency to make particular types of error.
When I was first learning to program I kept a notebook of the errors I made and very quickly learned what to look out for. Today my errors are much more diverse and subtle for the approach to be of much use but it was helpful in getting the bugs out of me!
Over time I have also had to admit to the errors caused by my own dyslexia which, no matter how mild I claim it to be, still causes me much embarrassment.
The good news is that research reveals some interesting things about dyslexia. First off it seems to be a real physiological problem and not just an “attitude of mind”. This is important because so often children, and programmers, are treated as lazy rather than dyslexic!
Recent research has even identified structural differences in the connectivity patterns in the left occipito-temporal region of the brain between dyslexics and developing readers. The developing readers showed greater connectivity to linguistic regions than the dyslexic group. Those with dyslexia showed greater connectivity to visual and parahippocampal (memory encoding and retrieval) regions.
Second it seems, whatever the deeper neurology is about, to be a perceptual problem rather than a deeper problem in language processing. Hence dyslexics understand well enough but have I/O problems not IQ problems.
In particular it seems to be a problem with particular types of visual and auditory perception – dyslexics just don’t see or hear in quite the same way as the rest of the population.
The final question I have is why is it that so many people who find coping with text difficult take to programming – the most text based of all the technologies? Again research has come up with possible answers.