Нечасто можно повстречать успешного незрячего человека, а слепого программиста — вообще редкость. dev.by собрал несколько примеров того, как слепые люди делают карьеру там, где обычный человек с закрытыми глазами не сможет сделать ничего.
Видимые успехи
Да, слепые программисты, действительно, есть. И многие из них пишут код если не лучше, то точно не хуже своих зрячих коллег — в Google ведь просто так не попадёшь. А там, к слову, сейчас работают как минимум двое слепых.
T. V. Raman — один из первых незрячих программистов, добившихся успеха. Он с рождения плохо видел, а в 14 лет полностью лишился зрения из-за глаукомы. Однако это совершенно не помешало ему получить степень бакалавра, а затем и магистра в родной Индии и защитить докторскую диссертацию на тему «Audio System For Technical Readings» в США. Причем, не просто защитить, но и получить за неё специальную награду.
Все свои усилия T. V. Raman направляет на повышение доступности компьютеров для незрячих пользователей. С 2005 года он работает в Google. Там он решает проблемы адаптации Google Chrome и Android для слепых. Кроме того, на основе своей докторской он разработал голосовой интерфейс Emacspeak, которым пользуются многие слепые программисты для чтения текста на экране.
Лукас Радаэлли (Lucas Radaelli), слепой программист, который тоже работает в Google, поделился с пользователями Quora своим опытом использования Emacspeak: «Мне нравится программировать с Emacspeak, потому что он предоставляет много классных штук для С++, к примеру. В этой программе есть выбор голосов, и она будет читать переменные, функции и другие элементы по-разному. Считайте это аудиовыделением кода».
420 слов в минуту и стандартная клавиатура
В целом же, пишет Лукас, слепые программисты работают так же, как и их зрячие коллеги. И другие пользователи Quora это подтверждают: очень немногие используют специальные дисплеи Брайля из-за их высокой стоимости (несколько тысяч долларов), клавиатурой Брайля тоже пользуются далеко не все.
«Я не пользуюсь клавиатурой Брайля, — пишет Пархам Дустар (Parham Doustdar), PHP-программист из Тегерана. — Иметь всего 6 клавиш, которые нужно нажимать одновременно, чтобы напечатать каждый символ, гораздо медленнее, чем нажимать поочерёдно много клавиш. Я также не пользуюсь дисплеем Брайля, а использую скринридер со скоростью чтения 420 слов в минуту — это намного быстрее чтения с дисплея Брайля».
По разным данным, средняя скорость чтения взрослого человека колеблется в пределах 120-220 слов в минуту.
А вот пример того, как работает скринридер у слепого датского программиста Флориана Бейджерса (Florian Beijers):
В своём посте Флориан подробно рассказывает о том, как он работает с компьютером:
«Я пишу этот текст на обычном ноутбуке Dell Inspiron 15r SE, который можно купить в любом магазине, который продаёт ноутбуки. Он работает на Windows 8 (это не мой личный выбор, но UEFI слишком сложно даунгрейдить). Всё, что я сделал для адаптации — установил оупенсорсный скринридер NVDA. <...> Это, действительно, вся адаптация, необходимая для слепого пользователя компьютера».
Молодой человек делится, что научился слепому набору и мысленно составляет свой код, что позволяет ему работать с ноутбуком наравне со зрячими. «Единственное отличие в том, что я практически не пользуюсь мышью. Я предпочитаю «горячие» клавиши и командную строку», — говорит он.
Вы удивитесь, но на этом ноутбуке Флориан не только пользуется интернетом через Firefox, пишет отчёты в Microsoft Word и посты в блоге. Он умудряется записывать и обрабатывать собственную музыку: для этого он использует Reaper, Goldwave, Audacity и Sonar. И конечно же, он пишет код для сайтов и приложений, используя Eclipse, Visual Studio и «старый добрый» NotePad++.
При этом программист отмечает иронию в названиях некоторых продуктов Microsoft: Visual Studio вполне удобна для незрячих (visually impaired), а Access оказывается совсем недоступным (not ACCESSible).
Помнить всё
О выдающейся памяти незрячих программистов говорят многие их коллеги. Лукас Радаелли из Google пишет, что необходимость запоминать большие объёмы информации — основной вызов для слепого разработчика:
«Вы двигаетесь строчка за строчкой, слушая каждую по очереди. Вы можете слушать слово за словом или символ за символом. Суть в том, что в каждый момент времени вы «видите» только небольшую часть содержимого экрана. Вы не можете начать программировать, подсматривая в определение функции. Вы запоминаете его. Если я хочу проверить определение функции, я ставлю маркер, ищу определение, читаю его и возвращаюсь. Как вы можете заметить, на этом теряются драгоценные секунды, поэтому тренировка памяти очень полезна».
Очень полезна она и для тех немногих программистов, которые пользуются дисплеями Брайля. Такой дисплей может отображать от 40 до 80 знаков Брайля, которые передаю то, что в данный момент выделено на экране. С помощью специальных кнопок можно перемещать зону обзора, и снова читать, постепенно «собирая» полную картину в воображении.
Программист Стив Дони (Steve Donie) из Техаса вспоминает о том, как ему довелось работать в компании Рона Морфорда (Ron Morford), полностью потерявшего зрение в 20 с небольшим лет. Стив считает Рона одним из самых талантливых программистов, которых он встречал: «У него была невероятная память. Один из первых проектов, над которым я работал с ним сразу после колледжа, — его скринридер на базе DOS. Я работал над ним всё утро и никак не мог в чём-то разобраться. Я пошёл и спросил Рона о конкретной функции, и он вспомнил её практически построчно, хотя не видел её уже несколько месяцев».
Лукас Радаэлли упоминает ещё одну особенность кода, написанного незрячим: «Слепые программисты не используют отступы. Обычно мы завершаем работу и потом форматируем код, потому что для нас в этом нет смысла. Мне очень нравится Python. Я придумал такие техники: например, перескакивать через строку в конце каждого блока — так я быстро понимаю, где он заканчивается. Когда я читаю чужой код, я могу включить опцию, с которой мой скринридер будет называть уровень индентации. Но это немного раздражает, потому что при этом он будет называть количество пробелов в каждой строке».
Сила меньшинства
Многие в своих похвалах слепым программистам делают оговорку: их продуктивность зачастую ниже, чем у их зрячих коллег, но качество кода при этом высокое. Это связано с недостаточной адаптированностью программных и аппаратных средств, которыми они пользуются.
Пархам Дустдар пишет, что многие слепые разработчики не используют IDE, потому что их интерфейсы не полностью доступны для скринридеров. К примеру, весь набор IDE Jetbrains.
«Одна из проблем с конкуренцией в том, что люди слишком заботятся о большинстве, чтобы слушать меньшинство, — сокрушается тегеранский программист. — Если вы в меньшинстве, вам нужно обходиться без вещей, которые многие люди принимают как должное. В этом, я считаю, заключается сила людей с ограниченными возможностями: вы учитесь импровизировать, двигаться вперёд и достигать невозможного каждый день просто для того, чтобы не остаться без работы».
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.