Инженер-программист — о постоянном обучении в индустрии IT
© ПРЕСС-СЛУЖБА РБК
О работе в сфере IT говорим с Натальей Логиновой, старшим инженером-программистом, ведущим фронтенд-разработчиком, наставником в международной организации Women in Tech
По данным исследования Cnews, в 2023 году самой востребованной IT-специальностью в России стала «разработчик ПО», на которую пришлось около 63% от общего числа вакансий в этой сфере. Подобный рост отражает интерес общества к профессии, о чем мы и побеседовали с Натальей Логиновой — старшим инженером-программистом, ведущим фронтенд-разработчиком, реализовавшей несколько крупных проектов.
Среди инженеров-программистов нечасто встретишь девушку, тем более с таким опытом, как у вас. Вы уже восемь лет в мире IT — это серьезный бэкграунд, однако технологии постоянно меняются. Что позволяет вам оставаться ведущим специалистом в этой индустрии?
IT — это сфера, в которой постоянно происходят различные изменения, поэтому профессия инженера-программиста требует безостановочного развития и получения новых знаний. Основной принцип моей работы — это непрерывное обучение, благодаря которому я всегда остаюсь в курсе последних тенденций и инноваций в разработке ПО. При этом я использую свои знания и навыки для того, чтобы грамотно и оптимально применять новые технологии в работе.
Еще одним моим профессиональным принципом является убеждение, что для успешной реализации крупных проектов необходимо активное командное взаимодействие и четкое определение трудовых ролей. Это обеспечивает точное понимание задач каждого члена команды проекта, способствуя более координированной работе. Считаю, что учет мнения каждого участника команды в сочетании с доброжелательной и конструктивной рабочей атмосферой помогает эффективно решать любые возникающие трудности и вызовы.
Вы регулярно сталкиваетесь с необходимостью быстрого освоения новых технологий. Приведите пример, который вам запомнился благодаря необходимости ввести новые инструменты разработки.
Наиболее запомнившимся для меня был проект для заказчика из сферы фармацевтики. В мои задачи как фронтенд-разработчика входило продумать интуитивно понятный и легкий в использовании интерфейс, спроектировать архитектуру клиентской части приложения, написать код в соответствии с разработанной архитектурой, решить задачи по оптимизации производительности приложения, то есть на меня лег целый спектр сложных, многофакторных задач. Для разработки фронтенд-части этого проекта использовались следующие языки и технологии: JavaScript, SAP UI5, XML, Less. Данный проект запомнился мне из-за своей специфической доменной области и применения новой на тот момент для меня технологии SAP UI5.
Расскажите, какие методики разработки программного обеспечения вы применяли. Какие принципы и паттерны вы предпочитаете при проектировании программ?
Я стараюсь придерживаться принципов SOLID. Это акроним, обозначающий пять основных принципов объектно-ориентированного программирования:
- Single-responsibility — принцип единственной ответственности;
- Open-closed — принцип открытости/закрытости;
- Liskov substitution — принцип подстановки Барбары Лисков;
- Interface segregation — принцип разделения интерфейсов;
- Dependency inversion — принцип инверсии зависимостей.
Эти принципы обеспечивают возможность создавать такой код, который легко поддается модификации и тестированию. Также я следую принципам KISS, DRY, YAGNI, чтобы дополнительно обеспечить простоту, удобство поддержки и эффективность разработки.
Что же касается паттернов проектирования, то я стараюсь использовать их, когда это действительно необходимо и оправданно. Например, использую паттерн Singleton для создания объектов, которым требуется обеспечить единственный экземпляр и глобальную точку доступа. Также я использую паттерн Observer для создания механизма подписки, который позволяет одним объектам следить и реагировать на события, происходящие в других объектах. Помимо этих, мне часто приходится использовать и другие паттерны, такие как Builder, Strategy, Decorator и другие, в зависимости от конкретных требований и обстоятельств.
Я всегда критически подхожу к применению того или иного паттерна, стараясь избегать лишней сложности, и всегда помню о «правиле трех», что означает избегание предварительной оптимизации и применение паттернов только при реальной необходимости.
Основной принцип моей работы — это непрерывное обучение.
Вы наставник в международной организации Women in Tech, а также координатор учебного курса по Angular в школе The Rolling Scopes School. Расскажите, как влияют IT-инструменты на образовательный процесс.
Современные технологии необходимо постепенно вводить в образовательный процесс, так как они способны сделать обучение более эффективным и увлекательным. В частности, такие инструменты, как интерактивные доски, обеспечивают больше взаимодействия между учащимися и преподавателями.
В дополнение, для централизованного управления курсами и отслеживания успеваемости студентов, можно использовать системы управления обучением (LMS). Также технологии искусственного интеллекта и машинного обучения могут помочь адаптировать учебный процесс к потребностям каждого отдельного студента. Кроме того, технологии облачных вычислений предоставляют доступ к образовательным ресурсам из любой точки мира, то есть учащиеся могут заниматься в любое удобное для них время и в любом удобном месте.
Отдельно хотелось бы отметить виртуальную и дополненную реальность. Они становятся все более популярными и позволяют учащимся почувствовать и понять трудно усвояемый материал, показывая процессы и сложные абстракции.
Почему вы решили заняться преподаванием?
Начнем с того, что я сама прошла путь от выпускника университета без опыта до старшего программиста и знаю, как сложно освоить необходимые для работы навыки без поддержки опытного наставника. Именно поэтому я решила помочь начинающим программистам в развитии внутри профессии и начала работать на волонтерских началах в организации Women in Tech и школе The Rolling Scopes School.
На основе своего опыта хочу отметить, что нужно непрерывно стремиться к развитию и совершенствованию своих навыков. После окончания специалитета, например, я обучалась в аспирантуре, параллельно работая программистом. В аспирантуре я обучалась по направлению «Информатика и вычислительная техника», писала научные статьи, участвовала в конференциях. Сегодня я дописываю кандидатскую диссертацию, используя свой опыт и знания.
Что важно знать начинающим специалистам?
Постоянное обучение — это путь к успеху.