Блогер та розробник Джозеф Круз розповів, як він працює програмістом, маючи доволі серйозні проблеми із зором.
Пропонуємо вам переклад його його авторського блогу від нашої редакції. Далі — слово автору
Я думаю, що в більшості читачів немає проблем із зором, але вони замислюються, що буде, якби зір підвів. Тут мала б бути картинка, та я її не бачу. Якщо вам цікаво дізнатися, як програмувати, не дивлячись на екран, — читайте далі.
Так сталося, що ще з дитинства в мене дуже низька гострота зору. Я бачу загальну «картинку», але без фокусу й із великою кількістю «шуму».
Я закінчив Інститут математики, механіки та комп’ютерних наук. Зараз розробляю застосунок для розпізнавання показників медичних приладів.
Наприкінці школи я вирішив стати програмістом і досі отримую задоволення від «копирсання» в комп’ютерах. Хотілося не лише користуватися чужими напрацюваннями, а й навчитися створювати власні застосунки.
На той момент я вже був досвідченим користувачем Windows. З погляду незрячого я впевнено працював на комп’ютері за допомогою двох скрінрідерів, про які нижче. З погляду зрячого — знав, що й де підкрутити в системі, аби вона знову запрацювала, і навіть мав із цього перший заробіток.
Програмне забезпечення для читання з екрану
Щоб читати текст із екрана, користуються спеціальними застосунками. Під Windows найпоширеніші — JAWS від Freedom Scientific та відкритий NVDA. Уже тоді Windows була влаштована так, що повноцінно користуватися нею можна лише з одним із цих скрінрідерів.
Звісно, коли доводилося лізти в BIOS чи перевстановлювати систему, без допомоги зрячих було не обійтися. Під час розробки коло проблем трохи інше.
Написання коду
Так, код можна писати й у Блокноті — на щастя, він чудово озвучується і JAWS, і NVDA. Але за межами Pascal, яким зазвичай навчають азів програмування, без автодоповнення нікуди.
Усі лабораторні я виконував на власному ноутбуці, бо не хотів турбувати адмінів, встановлюючи NVDA, а про ціну JAWS і згадувати не варто.
Середовище Pascal ABC озвучувалося достатньо для того, що нам викладали. «Фокус» скрінрідера — це умовна крапка, що позначає ділянку GUI, яку зараз озвучує програма; у текстовому редакторі це працює добре. Якщо компіляція й запуск успішні — фокус переходить у консоль. Якщо ні — починаються «дива» з різними хитрощами скрінрідера, якими тут не перевантажуватиму читача.
Щойно я завершував цю тему, мій ноутбук розламався навпіл — і Windows-розробка для мене скінчилася. Із усіх серйозних IDE, які я пробував під Windows, справді зручною (і тільки починаючи з версії 2015) була лише Visual Studio. Усі корисні функції на кшталт автодоповнення доступні тільки з платним JAWS. Ноутбук «загинув», потрібен новий «бойовий кінь».
Мій наступний комп’ютер — MacBook. Так, це дорого, але, по-перше і по-друге, зручнішої машини для незрячих просто немає.
Відтоді й дотепер я розробляю в Xcode: він має чудову підтримку VoiceOver, хоча вибір мов обмежений — C, C++, Objective-C та Swift.
Скільки б я не мріяв «брудно» почати писати Python — не складається. Python іще не принесли у Visual Studio for Mac, а VS Code, як би розробники не хвалилися, озвучується так, що краще б узагалі без озвучки. Інтерфейс VS Code нагадує хаотичний набір елементів: половина неклікабельна, половина відкриває нові панелі десь «у кінці вікна».
Процес розробки
Початок такий самий, як у всіх: створення проєкту й, за потреби, налаштування репозиторію (Xcode сам ініціалізує Git). З огляду на обмеження мов, зазвичай я пишу C++ або Swift.
Xcode автоматично створює файл main
і функцію main()
.
Додаю файли у міру потреби, але без чого не можу обійтися в складних проєктах — це автодоповнення: від фрагментів коду (snippet-ів) — описів класів чи циклів — до довжелезних назв методів. Тримати це в голові без «візуальної» пам’яті важко.
Налагодження
Код треба відлагодити. Добре, коли після написання проєкт збирається й одразу працює правильно, але коли таке було?
-
Синтаксичні, семантичні та пунктуаційні помилки. Навігатор помилок у Xcode доступний: виділяю помилку — курсор стрибає на потрібний рядок. Шкода, що він не показує або не вимовляє номер символу, де сталася помилка — доводиться миритися.
Відкриті/закриті дужки — вічна біда й у зрячих. Вони можуть спробувати «на око» знайти зайву дужку, а без зору лишається тільки вирізати тіло функції, скомпілювати, повернути — і так блок за блоком, поки не вирахуєш «зайву дужку».
-
Логічні помилки. Зібрали — а в консолі замість бажаного
Program ended with exit code: 0
—[LLDB]
. Низькорівневим дебагером я не користуюся, тож сприймаю це як знак, що десь «схибила логіка».Повідомлення дебагера рідко зрозумілі. Можна наставити breakpoint-ів, але без зору важко збагнути, де саме «зупинилися». Тому розставляю в різних місцях
print("test #")
. Дивлюся, до якого виводу дійшла програма — й ловлю помилку між тим, що відобразився, і тим, що ні.Під час тестового завдання для однієї компанії я опанував панель Variable View: якщо стоїть breakpoint, вона показує «живі» змінні. Завдяки їй я розбирав серіалізований JSON у словник із вкладеним масивом словників.
Контроль версій
Xcode вміє працювати з Git, але деякі речі зручніше робити через термінал.
Термінал
Стандартний Terminal у macOS озвучується. Так, VO читає весь вивід, але його можна «прогорнути» по словах, рядках чи символах. Тож терміналом користуватися реально, а текстовий редактор nano взагалі звучить блискуче. Озвучений термінал дає змогу ставити пакети через Homebrew чи CocoaPods.
Висновок
Навіть маючи проблеми із зором, можна стати (і залишатися) розробником. Є достатньо програм доступу до екрана на різних платформах: JAWS, NVDA й екранні диктори Windows; Orca в GNOME для Linux; VoiceOver на Mac. Існують IDE, з якими можна працювати: Visual Studio під Windows, Xcode під macOS.
Більше того, дедалі частіше з’являються новини, що інші редактори роблять доступними. Впевнений, із часом VS Code та інші середовища стануть цілком придатними для незрячих розробників.
Отже, бережіть зір у будь-який спосіб. Але якщо все ж таки станеться біда, професію покидати не доведеться. Потрібно лише освоїти програми доступу до екрана й застосувати мій підхід — або вигадати свій.
If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.
Favbet Tech – це ІТ-компанія зі 100% українською ДНК, що створює досконалі сервіси для iGaming і Betting з використанням передових технологій та надає доступ до них. Favbet Tech розробляє інноваційне програмне забезпечення через складну багатокомпонентну платформу, яка здатна витримувати величезні навантаження та створювати унікальний досвід для гравців.
Цей матеріал – не редакційний, це – особиста думка його автора. Редакція може не поділяти цю думку.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: