Как выбирала профессию и университет
Интерес к IT появился у меня еще в школе. На курсы по этому направлению отдали родители, но к тому моменту я и сама поняла, что меня больше привлекают технические науки. Поэтому на момент поступления точно решила, что пойду на «айтишную» специальность.
Документы подавала в несколько вузов, но в итоге выбрала ИТМО ― он понравился и запомнился больше других. И тогда, и сейчас ИТМО позиционирует себя как университет, где готовят перспективных IT-специалистов, которые находят работу сразу после выпуска. Меня привлекло, что я получу актуальные знания и мощную базу, которые смогу применить на практике. Также произвело впечатление, что документы на поступление можно было подать в электронном виде — тогда, в 2010 году, в остальных вузах еще требовали бумажные экземпляры.
В итоге я поступила на кафедру вычислительной техники (сейчас мегафакультет компьютерных технологий и управления — прим.ред.) ИТМО на специальность «Информатика и вычислительная техника». А после бакалавриата пошла в магистратуру по «Программной инженерии» на мегафакультете компьютерных технологий и управления ИТМО, откуда выпустилась в 2016-м.
Чему училась в университете и что из этого пригодилось в жизни
Все, что я изучила в ИТМО, пригодилось мне в работе. На первых двух курсах нам рассказывали, как устроен компьютер с точки зрения «железа». Это чем-то похоже на анатомию, которую учат студенты-медики, но только в мире техники. Не зная устройство организма, невозможно оперировать. Так и с компьютерами — без понимания принципов работы сложно создать IT-продукт. На следующих курсах я изучила операционные системы, в том числе Linux, языки программирования Python и Perl, узнала, как создаются базы данных и составляется техническая документация, как планируются и разрабатываются IT-продукты. Это основные навыки, которыми пользуюсь и сейчас.
Как нашла работу и чем занимается сейчас
Еще на третьем курсе бакалавриата я попала на стажировку в IT-компанию RAIDIX, которая создает программное обеспечение для систем хранения данных. О стажировке нам рассказал менеджер Digital Design ― компания проводила школу разработчиков и искала стажеров в ИТМО для себя и RAIDIX. Я прошла школу, попала на стажировку, а после осталась в компании на позиции разработчика. В конце 2022 года ― после сделки YADRO и RAIDIX ― продолжила работать уже в YADRO.
Сейчас я занимаюсь разработкой программного обеспечения для TATLIN.FLEX — российской корпоративной системы хранения данных (СХД). Она позволяет в одном надежном месте хранить большой массив файлов, резервных копий и архивов, а также оперативно с ними связываться. Эти возможности полезны малому и среднему бизнесу из разных областей ― часто компаниям не хватает собственных жестких дисков для хранения данных. Например, многочасовых записей видеонаблюдения или информации о клиентах банков или мобильных операторов. Все данные компании можно хранить в TATLIN.FLEX и увеличивать количество накопителей системы с ростом объема данных.
Как устроена разработка программного обеспечения для систем хранения данных на примере TATLIN.FLEX
Над продуктом TATLIN.FLEX работает несколько команд. Разработка программной части для систем хранения данных состоит из различных задач — от работы над модулями ядра операционной системы Linux до UI-дизайна браузерной части, чтобы пользователям было удобно отправлять команды.
Я занимаюсь взаимодействием TATLIN.FLEX с пользователями. Другими словами, связываю систему и человека вместе и слежу за тем, чтобы команды выполнялись корректно — поддерживаю код и исправляю баги, разрабатываю новые архитектурные решения и фичи. Как раз здесь и пригождается умение писать на Perl и Python.
Я пишу код каждый день. Может показаться, что это скучная и рутинная работа, но на самом деле мы постоянно добавляем в продукт что-то новое. Мне нравится видеть, как изменения приносят реальную пользу клиентам. Это похоже на работу повара. Гости наслаждаются едой, а повар счастлив, что сделал что-то приятное и полезное.
Еще очень заряжает, когда что-то наконец получается. Например, очень запомнилась ситуация, когда я сидела несколько дней над парой строчек кода и не могла понять, почему он не работает. Советовалась с куратором, но он не сталкивался с подобной проблемой. В итоге сама провела серию экспериментов и разобралась. Приятно, что в YADRO можно обсудить сложности в команде — в компании работают более четырех тысяч разработчиков из Москвы, Санкт-Петербурга, Нижнего Новгорода, Минска и других городов.
Прочитайте также:
Стоит ли заниматься разработкой СХД
Еще когда я училась в ИТМО, один преподаватель говорил нам, что люди, разрабатывающие СХД, всегда будут при деле и деньгах. Сейчас уже на своем опыте могу сказать, что это действительно так. Разработка систем хранения данных ― действительно перспективное направление, хотя бы потому что большинству людей нужно место для хранения фотографий и других личных данных. У разработчиков СХД всегда будут задачи — например, как создать мощную систему, которая будет хранить огромный массив данных, при этом сжимать его с минимальными потерями и давать к нему быстрый доступ.
Решить такую задачу искусственный интеллект не сможет. Разработка СХД — достаточно сложная и специфичная тема. Здесь больше трудностей не в коде, а в технологии: как придумать и реализовать работу системы. Кроме того, важно обсуждать многие решения с командой, в одиночку построить СХД не получится.
Научиться разрабатывать программное обеспечение для систем хранения данных можно в магистратуре «Инструменты разработки и анализа программ», которую совместно открыли YADRO и ИТМО. На программе студенты познакомятся с подходами к анализу программ и методами обнаружения ошибок, научатся создавать статические и динамические анализаторы, верификаторы и другие средства автоматизации тестирования ПО и проектировать новые языки программирования. В перспективе студенты ИТМО смогут пройти стажировку или трудоустроиться в YADRO на позиции разработчиков, DevOps-инженеров и тестировщиков ПО и высоконагруженных систем.
Советы студентам
Если вы планируете стать разработчиком систем хранения данных или пройти стажировку в компании, которая развивается в этом направлении, стоит обратить внимание на несколько моментов.
- Первое, в чем нужно досконально разобраться, ― это операционная система Linux. Ведь именно на ее базе разрабатываются большинство СХД. Это связано с тем, что они сильно завязаны на ядре — содержащихся в нем технологиях и алгоритмах. В отличие от других операционных систем, в Linux есть возможность доработать ядро под свои нужды, выбрать более подходящее для разработки ядро или его версию. К тому же Linux — open source-система, которой может свободно пользоваться любой человек и не платить за лицензию.
- IT-компании применяют разные алгоритмы при разработке СХД, поэтому придется разбираться, кто и каким инструментом пользуется. Но, конечно, прежде всего важно базово понимать, что такое СХД, как она устроена и работает ― вам точно пригодится знание о том, что такое RAID и чем сетевой доступ network-attached storage (NAS) отличается от storage area network (SAN).
- Нужно владеть несколькими языками программирования. У меня это Perl и Python, а также JavaScript, если нужно поправить UI-дизайн продукта. Но это могут быть базовые языки программирования вроде C и Ассемблера. У большинства языков можно найти общие черты, поэтому перейти с одного на другой будет проще, чем учить свой первый язык программирования.
- И наконец, конечно, пригодится английский язык ― ведь предстоит много работать с документацией и иностранными источниками.