I am a blind PHP programmer. The way I write code is perhaps different from the methods mentioned in the other answers. Before we begin, let me tell you a little about myself.
I am blind from birth. I have never had the problem of "loss of vision": I never had it. That makes it a lot easier.
Personally, I, unlike many other blind people, use the development environment. We use screen speakers, and development environment interfaces are mostly poorly accessible to them. For example, screen speakers are not available all the development environment of the company JetBrains . This is one of the disadvantages of competition in our society: people are too busy taking care of the majority to listen to the minority.
I use Zend Studio, based on the well-known Eclipse. Eclipse is a pleasant exception: accessibility is very well implemented. It is not fully available, but 80% is enough for me. The blind cannot choose.
The development environment effectively eliminates a routine like memorizing method signatures, documentation, and many other things, leaving me to worry about more pressing things (for example, why thelegacy code is such a crap).
I don't use braille keyboard. Using only 6 keys, which also need to be pressed simultaneously for each character - this is too slow. A hundred keys, which can be very quickly pressed one after the other - this is much, much faster.
I don't use the braille display either. Instead, I have a screen announcer tuned to 420 words per minute. This is much faster than reading from a braille display.
The most important thing in my opinion is to be ahead of the competition. For the blind it is in itself difficult. We have to compete without having one of the feelings that most people in the world have. This would not be a big problem if the conflict between the interests of the majority and the minority mentioned above was not mentioned. Being in the minority, you need to find ways to get what many people take for granted. This, I think, is the strength that comes from weakness: you have to improvise, force yourself, achieve the impossible every day just to not remain unemployed.
Have you heard about Python Bee? Now imagine what your typical day looks like.
One of my best friends in high school was diagnosed with Leber's hereditary optic neuropathy when he was in graduation class. NONL constantly reduced his eyesight and in the first year of college my friend was almost completely blind. His specialty was computer science, and the way he programmed was one of the most incredible things I've ever seen in my life.
In college, he used a combination of screen magnifier and screen speaker. The screen magnifier was called MAGic and allowed it to enlarge the text so that only a few characters fit on the monitor. The monitor itself was a huge screen over 30 inches, optimized for the visually impaired. The screen speaker was JAWS , although my friend tried many other programs. He said that existing open source programs look pathetic compared to very expensive programs that he enjoyed thanks to the help of our school.
My friend always put the narrator on the maximum reading speed (probably over 300 words per minute). For comparison, audiobooks usually sound twice as slow. It sounded like a completely different language to me, but he understood it perfectly. My friend preferred to use the absurdly old version of Firefox (3.5 or something like that), because it was best supported by its narrator. Almost all the actions he performed hot keys, moving through the applications and windows with astonishing speed. All this, coupled with a40-fold increase, made it almost impossible to attempt to follow his actions. At the same time, he worked more efficiently than many programmers I had seen.About how exactly my friend was programming.
As a code editor, he used Emacs (I thinkbecause I got the hang of it with crazy hotkeys). The narrator read the code that he missed. Similarly, the narrator read the output of the terminal, so that any possibilitythat something would not be announced was excluded. As you might guess, the program code is harder to understand than English words. Although languages ​​that do not abuse characters in syntax are easier to understand. More accessible are those languages ​​that “look” similar to English, like Python, Ruby, and the like. However, the use of indentation instead of bracketsrather complicates life - you have to carefully listen to the number of tabs on each line.
So that you have a better idea of ​​the overall picture, I will tell you a funny incident that happened in the second year. We studied OCaml, a functional language with a funny syntax. My friend was forced to listen to nonsense likelet rec fib n return match n with return , …
and the like. On this day, he worked with a very large piece of code that did not compile. He listened to this ridiculous syntax again and again, but could not find a single error. Nothing changed until he came to the classroom, where a sighted teaching assistant noticed that forsome reason the screen announcer pronounced the number “0
” as the letter “”. It was a completely new kind of bugs that sighted programmers do not encounter.
It is also worth noting that he is keen on the HTML accessibility specification, especially ARIA . Most sites on the Internet completely ignore it, despite the fact that it is very easy to implement. The way he uses sites with ARIA attributes and without them is heaven and earth.
He now works as a full-time software developer.
Ron Morford is one of the most talented programmers I have worked with. He hadsomething called “ Marfan syndrome ”,because of which he completely lost his sight when he was a little more than twenty. I worked for him in the early90s , developing a screen reader for Windows 3.1. Ron owned the company Automated Functions, Inc., which developed programs and hardware for the blind. One of his first products was VERT . It was a box the size of an ordinary PC , designed as an intermediary between the computer and the terminal. He tracked the traffic passing between them and converted it into speech. VERT could say up to 400 words per minute, and Ron remembered them.
Ron had an incredible memory. One of the first projects I did for him right after college was a screen announcer for DOS . Sometimes I fumbled with him for half a day and, if I couldn't do anything, I went to Ron and asked, “What does this function do?”. Ron remembered her line by line, although he might not have looked at her for several months.
Before Ron founded AFI , he was a computer security specialist at NASA . He told great stories about how local programmers constantly tried to hack each other to find holes in early versions of Unix.
I worked in the field of accessibility for about 8 years, then I got a job at Microsoft and worked on the implementation of accessibility in Windows. During this time I have seen many blind programmers. They used a variety of different techniques and tools, but mostly it was a standard keyboard and voice output. There were braille keyboards, but few used them daily. There are nine main keys on the Braille keyboard - four for each hand and a space; letters are entered using the key combinations that make up the braille alphabet. As other participants have mentioned, there is still a braille display, with retractable and retractable plastic sticks. But such displays are incredibly expensive: the80-column display sold for $ 8,000, although I think it could be cheaper in the last 20 years.
I am absolutely blind. I work for Google, participate in the development of a ranking algorithm. In my experience and in what I have heard from many other blind programmers, our way of programming is not much different from the way our sighted colleagues. I use mainly a text editor (Emacs with the Emacspeak extension, which speaks text) and a browser to view Google internal pages with documentation and other things.
The main difference is that we either listen to what is on the screen, or read on the display of Braille. I can not say anything about the use of this display, because I have never had it (too expensive), but I can share some thoughts about how to program by ear.
The hardest thing in programming by ear is to memorize a bunch of things. You move from line to line, listening to them entirely. You can listen to the code word by word or character by character. The difference, as you can see, is that at the same time only a small part of the code is available. You cannot start programming by looking at the names of the incoming function arguments. You remember them. If you need to check the function declaration, then you bookmark, go to the ad, read it and go back to the bookmark. As you can see, this is not an instant process at all, so memory training becomes an essential skill.
I like programming with Emacspeak because it is well suited for programming inC ++ . For example, this program has voice styles: it reads variables, functions, and other parts of a language with different intonations. It helps to understand what is what. You can think of this as an audio code light.Finally, from the interesting
Blind programmers do not use code alignment. Usually we indent after writing. They do us no good.You may ask: what about Python?
I am very much in favor of Python and even the need to align the code does not change this. I came up with some techniques: for example, moving a line to the end of each block of indents — this is how I can very quickly find out where the block ends. When reading someone else's code, you can configure the announcer to pronounce the depth of indents, but I am slightly annoyed to hear how many spaces are on each line.
I came here from the Slack notice in the Free Code Camp community and I see that my blog post is mentioned twice. Thank. I appreciate it and am very glad that it turned out to be useful for so many people. Unfortunately,due to some accessibility issues, I cannot read the comments with its mention. However, I ask everyone who has questions to hit me on Twitter Zersiax . I usually answer right away if I am not sleeping :-) This discussion shows that blind people also write programs and some even like it.
Returning to some of the questions that are specifically mentioned in this discussion:
As I mentioned in my blog, I try to use the development environment. These are mostly environments based on Eclipse and Visual Studio, which, by ironic coincidence, is quite well suited for visually limited people, while Microsoft Access is not accessible at all (English, “accessible”, translator's note) . Isn't it ironic? :)
Using the old browser (Firefox 3.5) is simply stupid if you are at least a little code for the web. This may be rude of me, but it's still better than IE . Things like this are the reason that I now strive to work with the open source NVDA speaker. It works just fine with the latest Firefox.
Although I would love to learn how to work in Vim and Emacs, I have no time to do this. In addition, I try to work in an environment where sighted developers (mostly students) can interact with me. As a rule, Linux scares them, “Vim” for them is a cleansing agent, and “Emas” sounds likesome kind of magic. Therefore, I have to work in editors with a graphical interface, even if the command line would be more efficient.
Ok, enough for this time :) Thanks for reading.
Source: https://habr.com/ru/post/262363/
All Articles