Dyslexia and Coding

What we can do in workshops to help people with dyslexia

This post originally appeared on the Data Carpentry website


I am dyslexic! :-)

Dyslexia is a polymorphic condition that affects more than just reading and writing. It is thought to be caused by poor short term memory, where short term memory is about equal to the length of time it takes to turn a key in a lock. A common analogy is that the CPU is good but the buffering on I/O is not good enough to keep up with the CPU. For example, it would be like having a keyboard or scanner with a buffering system that mixed up input or output and sometimes lost characters. This would also make it difficult to rapidly change from reading to writing and explains why doing things like reading, writing, listening, speaking and transcribing at the same time are more difficult for a dyslexic than for a non-dyslexic. I think this can make Software Carpentry a difficult way for a dyslexic to learn how to write programs, as it requires multi-tasking a variety of activities that are separately quite hard for a dyslexic. The rapid switching between them makes this worse.

On top of this, nearly half of dyslexics have another condition, visual stress, that 10 per cent of non-dyslexics also have. People with this condition do not handle the high contrast of a white background with black text well. While there are indeed fonts that are considered good for dyslexics, they tend to be similar to the Arial and Helvetica fonts, only with slightly more spacing between the letters.

In my opinion, dyslexics benefit from spending extra time setting up their environment and understanding/documenting what they have done. Setting up an environment means getting everything working technically as well as setting up fonts and background colours to suit their preferences. They will be slow to read and to configure the system on their own, especially if programming is new and they do not understand the vocabulary. If they have to do this at the start of a course, they may well fail to ever catch up with the class. I think they would benefit from being offered help the day or week before to set up their environment.

Dyslexics are also more likely, especially initially, to like text editors that open up in their own window rather than one that takes over their shell. They are unlikely to remember how to spell things that are in the shell and will have to keep on opening and closing the text editor to get the syntax and spelling right. This will disrupt learning.

A dyslexic will have to repeat and practice more than a non-dyslexic. They are less capable of surface learning and will need to deep learn. This will take time and they may prefer to work at their own speed and repeat concepts and exercises. It may be good for them to have a summary of what they will learn at the beginning, then do exercises and then get another summary at the end. There is a fair amount of evidence that some dyslexics are not good at multiple choice exercises so self-assessments which have multiple choices are not suitable for them.

Having one consistent reference text book for an entire programming language may be helpful as this lays out all parts of the language in one place so that the learner can go back and identify areas they do not know over the first few years of using that language and so can gradually fill in the gaps. I have seen some short programs that are the length of a page in a text book that can be used to document the main parts of syntax used in a programming language. These are good references for the main syntax and functionality of a language. The classic example program is a program where the user inputs a radius and the program uses a function or class to calculate the area of the circle with that radius.

A dyslexic will probably benefit from being able to ask lots of questions and to chat about programming - social learning. They should try to get one or more technical mentors to whom they can go with niggling questions.

This post initially appeared on our Discuss email list.

Dialogue & Discussion

Comments must follow our Code of Conduct.

Edit this page on Github