Константин Евтеев @beginner760собирает Java-код с помощью диктора NVDA, редактирует его в Блокноте и передает на Linux по SSH через самописные bash-скрипты.

Константин Евтеев
Константин Евтеев

После потери зрения он не потерял интерес к жизни и желание быть полезным и выстроил собственную инженерную экосистему: оглавления по строкам .txt-файлами, навигация по main и маленьким методам, отладка на слух.

Сейчас он работает над голосовым помощником, который будет по-настоящему автономным, лёгким и адаптируемым. Потому что "гигантомания не для жизни".

В интервью, которое мы попросили дать к 30-летию Java, Константин рассказал, как стал программистом и выбрал Java и почему не может пройти мимо интересной задачи, решение которой облегчит кому-то жизнь.

1.     Как и когда вы познакомились с Java?

С языком программирования Java я познакомился в ноябре 2022 года, когда пытался самостоятельно написать для себя говорящие часы-таймер. Мне нужно было приложение, которое озвучивало бы текущее время через заданные интервалы. Это помогло бы точнее отслеживать течение дня.

Собственно, это было первое знакомство с Java «в действии». До этого я много слышал о языке, следил за его развитием в новостях специализированных изданий, начиная с момента его появления, но никогда серьёзно им не занимался. Меня вообще всегда интересовали разные языки программирования. Было любопытно, как они устроены и в чём особенности их практического применения. Время от времени я писал небольшие утилиты для собственных служебных нужд: что-то для автоматизации, анализа или конвертации данных, чтобы было удобнее использовать программы сторонних разработчиков. Но с Java до некоторого момента такого повода не было.

Повод появился, когда один незрячий пользователь написал в специализированной рассылке: нет ли у кого таймера, озвучивающего время, или совета, как его реализовать? Я решил попробовать и написал такой таймер на Java. Он работал и подходил мне, но у первого пользователя возникли трудности с запуском на Ubuntu. В итоге мне пришлось переписать его на Bash, и на этом моё первое знакомство с Java завершилось.

2. Рассматривали ли другие платформы и почему выбрали Java? Как Java изменила вашу жизнь?


Да, другие языки и платформы я, конечно, пробовал. Сегодня выбор огромный, и каждый может найти подходящий инструмент, если готов вложить время в эксперимент. Поскольку я работаю «сам на себя» и сроками не связан, для меня главный критерий — насколько язык пригоден для долгосрочных проектов: можно ли поддерживать и развивать код, не переписывая всё с нуля.

Выбор пал на Java по двум причинам. Во‑первых, появился российский дистрибутив с полноценной технической поддержкой. Для меня критично иметь возможность к кому-то обратиться, когда возникают нестандартные ситуации (и я чётко отделяю техподдержку от бесплатных курсов программирования). Во‑вторых, Java остаётся кроссплатформенной, надёжной и многопоточной средой, что помогает писать переносимые и масштабируемые приложения.

Пока Java ещё не успела радикально изменить мою жизнь, но я рассчитываю, что благодаря стабильной поддержке и долгосрочному развитию платформы мне больше не придётся искать замену.

3. Какие фичи Java считаете самыми важными и почему?

За годы моих непрофессиональных экспериментов с программированием — от BASIC в начале 1980-х, TURBO PASCAL в конце того же десятилетия и до Java сегодня — я пришёл к выводу, что самая важная характеристика для меня — это надёжность. Кто-то может сказать, что есть языки и посовременнее, и «надёжнее», и, возможно, будут правы. Я — не профессиональный программист и спорить с экспертами не собираюсь, да и смысла в этом не вижу. Но лично для себя я сравниваю Java с атмосферным дизельным двигателем: если он завёлся, то будет работать до последней капли топлива или, в нашем случае, до отключения электричества. Такая стабильность и предсказуемость — именно то, что мне нужно в инструментах, с которыми я работаю.

4. Как узнали про Axiom JDK? Почему выбрали?

Про Axiom JDK я узнал в процессе поиска российского решения, которое позволило бы мне работать с Java без риска внезапной недоступности или прекращения поддержки. Почему выбрал? По тем же причинам, по которым вообще выбрал Java:

  • российское происхождение,

  • наличие технической поддержки,

  • общее ощущение надёжности. 

Мне не хочется снова «метаться», как это было с выбором операционных систем в последние 30 лет — от MS-DOS до разных версий Windows, все из которых я приобретал легально, и до нынешней российской Linux-системы, на которой я, наконец, остановился. С инженерной командой Axiom JDK я почувствовал стабильность, уверенность в будущем и даже человеческую теплоту.

5. Расскажите, пожалуйста, о себе, своём опыте программирования и опыте в других сферах

Моё первое знакомство с программированием случилось в начале 1980-х, когда в руки попал компьютер Commodore с встроенным BASIC и бумажной инструкцией. Меня буквально затянуло: за пару часов я прочитал руководство, а ещё через полтора написал свою первую программу — координатную сетку, по которой можно было строить простые графики из школьного курса. Это был восторг — почти как рисовать математику напрямую на экране.

Примерно в то же время судьба занесла меня в территориальное управление МВД Москвы, где я впервые увидел, как работает настоящая система на СМ-ЭВМ с магнитными лентами и живым сержантом с паяльником, который что-то чинит на лету. Тогда там экспериментировали с первой электронной базой данных по административным правонарушениям. Я до сих пор помню, как на графиках расходились две кривые — одна по количеству правонарушений, вторая — по числу нарушителей. Результат: большинство случаев — дело рук тех же людей. Это было моё первое серьёзное погружение в анализ данных.

С тех пор интерес к базам данных не угасал. Я прошёл курс по СУБД PARADOX от преподавателей МИФИ в начале 90-х, использовал программирование как инструмент — не как профессию, а как средство решения задач. Я не считаю себя профессиональным программистом: у меня нет профильного диплома, я не работаю по ТЗ.

Но я — человек, который не может пройти мимо интересной задачи, особенно если её можно автоматизировать и облегчить кому-то жизнь. И в этом плане Java стала для меня новым удобным инструментом — надёжным, понятным и доступным на родном языке.

6. Могли бы поделиться, как вы пишете код? В чём уникальность вашего стиля и отличия от обычного программиста?

Работаю «на слух» и потому выстроил собственный, пусть и кривоватый, но надёжный конвейер.

·   Редактор и экранный диктор. Код набираю в обычном «Блокноте» под Windows 10 с читалкой NVDA: простое окно, минимум «невидимых» элементов. Всё, что пишет, то есть читает диктор, я слышу сразу.

·   Передача и сборка. Каждые несколько минут Bash‑скрипт по SSH отправляет файл на Linux‑машину (через WSL). Там проект собирает Maven, после чего я запускаю JAR и жду чуда — то есть отсутствия ошибок. Чуда бывает мало, так что цикл «правка → пересылка → сборка» повторяется десятки раз.

·   Почему не IDE? Большинство популярных сред для меня «немые»: половина меню не озвучивается. Я пробовал, но быстрее вернулся к plain‑text + скрипты.

·   Переход на Linux. Полностью перебраться ещё не готов: осваиваю экранный диктор Orca и «приучаю» его к своим привычкам.

·   Стиль кода. Чтобы не заблудиться, пишу очень маленькие методы и оставляю много комментариев. Для навигации храню рядом «оглавление» .txt с номером строки и пометкой «начало/конец метода X» — так легко прыгать к нужному фрагменту по номеру строки.

·   Аппаратные ограничения. Работаю на «скромном» железе, поэтому виртуалки избегаю. WSL+SSH хватает.

Рабочее место Константина Евтеева
Рабочее место Константина Евтеева

В итоге, мой процесс напоминает ручную сборку модели: громоздкий, но подконтрольный и устойчивый. Главное, что я слышу каждую строку, полностью контролирую сборку и могу быстро локализовать ошибку, а остальное лишь вопрос терпения.

7. Какие проекты вы реализуете или планируете сейчас?

Сейчас я собираю «рабочий макет» — минимально жизнеспособный продукт, который помогает людям, нуждающимся в постоянном самоконтроле: напоминает принять лекарства, измерить показатели или просто соблюдать чёткий распорядок. Первую версию пишу «как пойдёт», обкатываю логику, а затем перепишу её на Java и расширю под смежные задачи.

Долгосрочная цель — автономный, полностью оффлайн голосовой помощник, способный работать на маломощных системах. Готовых решений, удовлетворяющих моим требованиям по доступности и скромному «железу», я пока не нашёл: то слишком громоздкие, то плохо настраиваются под конкретные потребности пользователей с ограниченным зрением. Поэтому двигаюсь своим путём — маленькими итерациями, исходя из реальных сценариев и минимального набора ресурсов. Если получится сделать удобный и лёгкий инструмент для себя, уверен, он окажется полезен и другим людям, которым не по душе «гигантомания» крупных платформ.

8. Многие люди с ограниченными возможностями продолжают создавать, работать и вдохновлять других. Расскажите, пожалуйста, о своём личном опыте. Как вы находите силы идти вперёд?

Честно говоря, с удивлением узнал, то Михаил Марголин — создатель малокалиберного пистолета для Олимпийских игр — был слепым. Раньше я много тренировался с этим оружием и не знал об этом факте. Недавно от врача узнал о женщине, которая способна двигать только одним пальцем и при этом работает копирайтером. А ещё запомнился белорусский парень с диагнозом, как у Стивена Хокинга: лежа, он не только устроился на работу, но и открыл фирму, где теперь трудятся и здоровые люди.

Такие истории вдохновляют, особенно когда видишь, что человек действует в условиях, куда более жестких, чем твои. У меня есть интерес к жизни и желание оставаться полезным. А возможность создавать, даже медленно, даёт чувство движения вперед.

10. Какие у вас хобби?

Сейчас основное хобби — это прослушивание новостей ИТ-индустрии, прежде всего с Хабр. Раньше, когда было зрение, был спорт, и, пожалуй, главным хобби была сама работа. Я всегда относился к ней с уважением и искренним интересом, чем бы ни занимался. Это почти круглосуточное увлечение чуть меня не угробило, но, как я люблю шутить, ещё легко отделался — остался только без зрения.

11. Как вы повышаете уровень знаний и опыта?

Это, пожалуй, самый сложный вопрос. Могу долго рассуждать на эту тему, но если коротко — я убеждён: человек должен учиться и работать всю жизнь, пока может шевелиться и хоть что-то понимать.

Если у человека есть ограничения — социальные, физические или экономические — то обучение становится особенно трудным. Это отдельный и важный разговор. В моём случае большую роль сейчас играет искусственный интеллект, который я использую как учебник и справочник. Он помогает мне осваивать новое, структурировать знания и даже просто держаться в тонусе.

12. Как вы думаете, какой Java будет через 10–15 лет? Какие фичи вы хотели бы увидеть?

Возможно, со временем специалисты, работающие с Java, разделятся на две неравные, но одинаково важные группы.

Первая — это те, кто сможет глубоко погружаться в архитектуру и механику языка, работать «вглубь» технологических процессов и решать задачи из самых разных сфер человеческой деятельности.

Вторая, более массовая группа — это специалисты, которые будут использовать Java как надежный инструмент для решения прикладных задач в своей профессии. У них будут удобные средства абстракции — возможно, визуальные среды, DSL'ы, AI-помощники, чтобы можно было создавать рабочие решения, не погружаясь в низкоуровневые детали.

Для взаимодействия этих двух групп может появиться техническая экосистема или новое направление в технической поддержке российской Java — оперативное перераспределение задач между специалистами разных организаций, фирм и креативных групп с целью оперативного решения текущих и перспективных задач в науке, промышленности, медицине и иных отраслях.

В целом, надеюсь и верю, что любимая российская Java будет развиваться по пути обеспечения поддержки скачкообразного усложнения задач. 

Вместо заключения

История Константина подтверждает, что программировать можно, даже не видя экрана. Его опыт вдохновляет и поднимает важный вопрос: насколько инструменты разработки доступны для слабовидящих и незрячих? 

Мы начали тестировать отечественную OpenIDE с экранным диктором NVDA: базовая навигация и чтение кода уже работают, но остаются ограничения. Поддержка других ОС и дикторов также требует проверки.

Константин работает «по звуку» там, где большинство полагаются на визуальные элементы. Это не только личный технический подвиг, но и вызов для компаний-разработчиков: не пора ли нам проектировать по-настоящему инклюзивные инструменты?


Комментарии (3)


  1. psiklop
    01.06.2025 19:00

    Это познавательно, но я хочу также знать как круглосуточное увлечение программированием чуть не угробило и оставило слепым. Я понимаю людям с проблемами важно знать, что они смогут, но пока здоровых больше интересует, где кроется опасность.


    1. gmanaz192
      01.06.2025 19:00

      Раньше в основном ЭЛТ мониторы были и на них надо было выкручивать частоту обновления 100гц чтобы не вытекали глаза, и даже так глаза уставали. Даже первые TN ЖК мониторы были просто ужасны для глаз и у них мерцала подсветка.

      Чтобы кодеру не потерять зрение - надо разбираться в мониторах, т.е какой лучше выбрать по сегодняшним технологиям.


      1. psiklop
        01.06.2025 19:00

        Мой первый монитор был lg 14 дюймов элт кажется всего 75 герц и разрешение 800x600, играл и кодил немного это было вполне глаза не вытекали, 1998 год наверное, вот в 80 годах возможно было жестче.