Does anybody have tips for a programmer who recently found they have a form of dyslexia?
Currently any of the following would help...
As someone who has mainly overcome my dyslexia and have always been a productive developer according to my employers I can offer some advice, some of which has been pointed out.
I've found the convention of putting SQL keywords in all caps helps a lot, especially when paired with things like breaking after WHERE or JOIN clauses. Something like so:
SELECT id, line1, city, state, zip, country
FROM addresses
WHERE id NOT IN (
SELECT id
FROM cache
WHERE addresses.id = cache.id);
It is a ton more verbose, but it helps it be read more easily.
I suffer with mild dyslexia and have been coding since the late 70s. Here is what I tend to do:
use auto-complete.
Spell Checker for comments.
Re-read your source several times, this helps me, in re-wording comments to be more understanding.
Peer review.
Inform people about your dyslexia, tell them what would make your working environment more comfortable.
I have worked with several fellow suffers and one thing that we all agree on, work is better when not stressed. Having someone looking over my shoulder just makes my mind go completely blank.
Oh, lastly, it's not the end of the world, I have found we all work out ways of working around our conditions; personally I have found visualizing the word on a printed page helps me form and type/write that word. Good luck and lets hope all answers help you.
I have dyslexia and I code. As you are aware, there are two areas that need to be addressed.
With respect to actually writing the code, one of the keys to my being able to get along is touch typing. I usually think of what I'm writing in the correct order and don't have a problem translating that to my fingers as long as I'm not looking at what they're doing. Seeing the keys on the QWERTY keyboard can just nuke my concentration.
With respect to reading the code, I use highlighting a lot. You can't use automatic highlighting because it's not smart enough. I use my mouse to highlight key character sequences and make sure they're what I think they are. Sometimes, when I'm really seeing things weird, I'll copy the variable and paste it into a stand-alone window where I can take a really close look at it.
You're going to make mistakes and need to have personal mitigation plans in place. For me, this includes incremental compiling, running lots and lots of unit tests, etc. The upside is that if you're careful and successful in your own development, you'll actually produce better and more reliable code than your "normal" counterparts.
Good luck!
I'm not saying I approve of their solution, but I used to know a very productive dyslexic coder (C programming). They had a standard include file which contained things like:
#define fasle false
#define flase false
#define wlhie while
... lots more of these...
and just added to it as needed. It worked for them, but I'm glad I never had to work on their code myself! This was long before the days of automated spell-checking/correction in text editors.
while
is a keyword and whlie
is gibberish. Redefining the language is not user-friendly and may have unintended consequences. What if someone has a variable named wlhie
or flase
? - dss539
Free online SQL fromatter with many options. I use this regularly to clean up messy SQL.
http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl
Auto-complete can help reduce typos by showing you if what you already typed "makes sense" in whatever context you are typing into (terminal, source files).
Syntax coloring is a great help as it shows obvious results if you typed something correctly or not such as language constructs or keywords, or left off a quote or used a single instead of double etc.
Since I make a lot of JavaScript for web apps running in a native WebKit-based client I use the Google Closure compiler to verify the JavaScript functions before pushing a JSP to a server.
Lots of other types of software have syntax verification functions or tools (perl, Apache's apachectl can verify httpd.conf). Use them.
Basically anything above Notepad (or TextEdit) is a must to help catch errors for dyslexic programmers. And regular programmers, I guess.
My problem is attention deficit disorder. I find that I have some of the same difficulties as a dyslexic person. For instance, I just typed and deleted difficluties, is, and difecit. (And the big red dotted undlies (underlines) that Chrome helpfully provides. I don't look at my fingers as I type and haven't for 10+ years (ignore the plus ;). You may assume that the problem lies in not looking at my fingers as I type, but I do the same with reading and writing as weel (well).
Having said that...
One thing that helps is accepting that I will have syntax errors. When web programming, I have the apache log file open, so when I get that blank page on refresh, I command/alt-tab and reload the log file. Sure, I can read through the code, but really, this way is faster. (Although, ADD impatience might have something to do with it.) I code enough of a chunk to test (the chunk size depending on the confidence I have for the language) in increments.
Sometimes, this doesn't work, because the error doesn't generate a warning or notice. The other day I almost posted a question to SO. Because of the strict guidelines of carefully pasting your code and your output and formatting it, I found what had happened. I spelled a variable wrong. (Some languages would produce a warning, hm....I wonder if PHP has the Perl equivalent of use strict and user warnings). So that's my solution number two. If you're working through a problem, go through the motions of posting to SO (or actually do).
Another thing I do, is keep my file sizes small. On one hand, it allows for reuse of code, and helps separate out logic. For me, if the file is too big and I have to go from the top to the bottom of the file looking for something (and I haven't documented well enough), I'll forget what I was looking for by the bottom. Maybe not applicable to dyslexics, but it leads me to my next point.
Which is to just accept that you have a difficulty that will never go away. Well, at least say it out loud sometimes. This acceptance will make things a little less frustrating. Sometimes.
Hope this helps.
First, even without Dyslexia SQL can be a real pain.
Things I do... Test as often and at every increment. Slowly build the SQL.
When it doesn't work I do copy and paste into a text editor with table names. So... copy table name from the DB and paste over the SQL statement to just see if they look the same. You will notice the lines just don't look the same and can then figure out where they are spelled different.
You say you have to work with Oracle 10g. In that case you will derive a lot of benefit from using an IDE to support your working with the database. Firstly because a GUI will reduce the amount of SQL commands you will have to type. Secondly because the editors are attuned to the Oracle syntax, which will help when you do have to type SQL or PL/SQL.
Oracle's SQL Developer tool offers both code completion and syntax highlighting. Unusually for an Oracle product it is free. Find out more [1].
[1] http://www.oracle.com/technology/products/database/sql_developer/index.htmlI work as a network admin in Germany. This involves a lot of IP addresses and in German numbers are reversed when spoken, so 192 is spoken hundred, 2 and 9.
Over the phone I insist on slow speaking, one by one of each number and then answer each digit. I know it gets on peoples nerves but it works and forces people to slow down.
For text, I like to print out code samples I'm working on (mostly Cisco syntax). Formatting in Word with a fix-width font helps. This way I can highlight and circle elements that reference other points.
The thing is to slow down and don't rush.
The one general thing that comes to mind is using large fonts, and trying out a number of programmer fonts (there are related questions on SO with good answers). I'm sure legibility can always be improved compared to what ships as standard font and size in most IDEs.
I am dyslexic/hyperlexic. I am not a programmer, worked in the arts as a manager: opera mostly. Discovered I am dyslexic twenty years ago im my mid-forties. I found going off refined sugar made a big difference in my willingness to be quiet enough inside my body to handle lots of words. It also increased my willingness to consider reading. I became more disciplined with daily exercise - at least 45 minutes for at least 6 days a week. I began using color: highlighting, and creating symbols in color that meant something to me. You can learn more about my process on my website: www.dyslexiadiscovery.com
beautifier
function. v7 didn't handleWITH
well, but it was otherwise good for formatting. It's configurable if you want to change syntax highlighting, but the UI in general is rather poor IMO. - OMG Ponies