Как я открыл для себя мир геоинформатики: опыт практики и работы в Gems
Здравствуйте, меня зовут Камалиев Денис. Я недавно стал разработчиком в Gems. В этом году я закончил бакалавриат на факультете цифровых технологий и кибербезопасности ОмГУ и сразу поступил в магистратуру на этот же факультет.
Мы с сокурсниками стали одними из первых участников @omsuru (ИТ-Акселератора ОмГУ), где нам предоставили возможность проходить практику в различных IT-компаниях города. За это хочу выразить благодарность Руслану Юрьевичу Симанчёву. Практика длилась весь учебный год по два дня в неделю. Это позволило нам сохранить летние каникулы для отдыха и плавно войти в рабочие процессы, брать более амбициозные задачи и развиваться вместе с компаниями.
Не знаю, что побудило меня подать заявку на практику в Gems. Возможно, это был язык C#, на котором мы должны были работать, или просто случайность, но я рад своему выбору.
Моё знакомство с геоинформацией началось на третьем курсе, когда мы разрабатывали библиотеку для работы с пространственными данными и веб-приложение для её демонстрации. Хотя мы не переплюнули GDAL (Geospatial Data Abstraction Library), зато получили ценный опыт разработки, ревью кода и тестирования. Погружаться в предметную область и понимать все тонкости геоинформационных систем нам помогали наставники из Gems.
На втором году практики мы начали работать над более интересным и амбициозным проектом — Сервисом адресного реестра и геокодирования. В процессе я писал парсер для извлечения данных из федеральной информационной адресной системы. Это потребовало изучения нормативно-правовых актов и территориального устройства страны. Я узнал, что в нашей стране существует муниципальное и административное деление, а также что иерархия адресной системы сложно описывается какими-либо правилами. Проблем добавлял и метод хранения данных в ФИАС (Федеральной информационной адресной системе) — дома хранились в одной таблице, улицы, деревни, районы, города и области — в другой, а связи между элементами адреса в административной системе — в третьей, а в муниципальной системе — в четвёртой.
В это время мой товарищ по практике парсил координаты из OpenStreetMap — там тоже было немало сложностей. А когда мы объединили адреса из федеральной системы и координаты из открытого источника, началось самое интересное: наш код для Еврейской автономной области, меньше которой по объёму данных только Байконур, работал около 10 часов и выдавал ошибку из-за отсутствия данных в одном из источников. Мы с помощью наставника начали оптимизировать код, искать места, где были ошибки, и в итоге сократили время его работы в 15 раз — до 40 минут. Мы исправили ту ошибку, и наконец у нас был проект, который мог извлекать адреса любой области, объединять их с координатами и помещать в базу данных. Конечно, в проекте оставались недоработки, но мне тогда казалось, что я с головой окунулся в геоинформационные технологии и уже неплохо разбираюсь почти во всём.
Окончив практику, я погрузился в написание диплома на основе проделанной работы. После защиты я вернулся в Gems как полноценный сотрудник. Однако моя уверенность в своих знаниях быстро улетучилась: тот океан информации, в который я погрузился на четвёртом курсе, оказался лишь лужицей, в которой даже ноги не промочишь. Я регулярно сталкивался с непонятными словами и аббревиатурами, постоянно что-то гуглил или задавал вопросы своему техлиду.
Когда я пришёл, моя команда занималась разработкой модуля передачи сведений ТЗ ПЗЗ в ЕГРН. Если аббревиатура ЕГРН (Единый государственный реестр недвижимости) мне была хоть немного понятна, то ТЗ и ПЗЗ оставались загадкой с пятью непонятными буквами, три из которых одинаковые. Я начал изучать митапы, корпоративные ресурсы и курсы на платформе Gems Study. Хотя я не стал ходячей энциклопедией, теперь знаю, что ТЗ — это не техническое задание, а территориальная зона; ПЗЗ — правила землепользования и застройки. Главное — я понял, где искать ответы на свои вопросы; это важный навык не только в области геоинформационных технологий, но и любой другой. Запомнить всё невозможно, а вот научиться находить необходимую информацию вполне реально.
После теоретической подготовки началась практика. Для начала я просто запускал Geometa от Gems под отладкой и смотрел, как она работает; затем начал брать задачи по исправлению багов. Это оказался эффективный способ знакомства с продуктом: решая задачи, я изучал функции нашего продукта и его бизнес-логику. Так постепенно я всё больше узнавал о нашей предметной области и углублялся в детали.
Кроме того, всё это время я изучал различные материалы из плана адаптации, который составлял мой техлид.
Сейчас мой период адаптации подошёл к концу и я активно участвую в разработке. Наша команда занимается доработками для портала взаимодействия с ресурсоснабжающими организациями. Это тоже достаточно интересная задача: она позволяет ускорить процесс согласования проектов. В бизнес-логике много участников; все они взаимодействуют между собой, поэтому нужно правильно всё выстроить, чтобы конечному пользователю было удобно работать.
В заключение хочу отметить: область геоинформационных технологий интересна и важна для жизни каждого из нас. Однако она сложна для новичков, что может отпугнуть молодых специалистов. Надеюсь на большее количество конференций и проектов для популяризации этой области и поддержки новых специалистов. А пока готов протянуть руку помощи всем тем, кто только планирует устраиваться на работу в Gems — чтобы вы не набили слишком уж болючих шишек!
