Новый герой нашей рубрики "Войти в IT" попал в мир разработки пять лет назад, ещё будучи студентом ОмГТУ. Окончив вуз, по приглашению своих педагогов остался в качестве преподавателя-практика. Сейчас он рассказывает студентам о технологиях программирования, которые используют на реальном IT-рынке.
Разработчик компании "Автоматика-сервис", старший преподаватель кафедры ПМиФИ ОмГТУ, куратор направления образования омской IT-Лаборатории Михаил Гуненков рассказал о своём пути в сферу информационных технологий, как быть айтишником и преподом одновременно и какие подходы использовать, чтобы сделать студентов классными "разрабами", а также дал совет, как научиться мыслить на языке программирования.
- Миша, этот вопрос задаю всем героям рубрики, потому что у каждого свой путь: как ты пришёл в IT?
- В школе меня не особо привлекала сфера информационных технологий. Начиная с 10-го класса, я видел себя в первую очередь инженером, который связан с физикой, с проектированием трубопроводов, разработкой 3D-моделей. Будучи школьником мне удалось в рамках летних стажировок поработать в ОНИИПеи ONHP, где осваивал такие продукты, как Компас 3D. Интересовался моделированием, по черчению у меня было отлично. А программированием особо не интересовался, да и как таковой информатики(в привычном для айтишников понимании) в школе не было. В 11-м классе я задумался о поступлении и рассматривал Политех. Во-первых, здесь училась моя мама на ИВТ, во-вторых, были целевые направления. А родители меня приучили, что всегда нужен резервный план. А целевые - это как раз история про стабильность. Я увидел направление от компании "Автоматика-сервис" и воспользовался им. Собственно, эта компания уже пять лет связывает меня именно с IT. Несмотря на то что у меня образ IT-преподавателя ОмГТУ, я ещё полноценно работаю программистом в компании.
Именно так я вошёл в эту сферу. В вузе я начал учить базовые языки программирования и мне просто понравилось это. Ещё и в школе была нормальная математическая база, без которой никуда, поэтому всё классно получилось.
- Легко было изучать основы?
- Если один язык выучить, то можно уже все остальные освоить спокойно, потому что они все, по сути, стандартизированы. Мы даже сейчас студентов учим 1-2 языкам, а они потом идут спокойно на любые технологии и работают. Самое сложное - выучить первый язык. Но тут есть особенность, многие думают, что сложно, потому что надо запомнить, условно, буквы. Но изучение айтишного языка - это не то же самое, что изучение, например, английского языка. Грамматика этих языков гораздо проще, чем английского. Там же нет спряжений, склонений - надо просто выучить 10-20 ключевых слов, и всё.
- Что же тогда сложного?
- Самое сложное - это именно мыслить на этом языке программирования. Если это получилось с первым языком, то потом просто будет мыслить на любом другом. Потому что с точки зрения мышления все языки программирования работают практически одинаково.
- Как мыслить на русском, английском, я понимаю, скажи, как это - мыслить на языке программирования?
- Составлять алгоритмы программы. Грубо говоря, все сайты, приложения, которыми мы пользуемся, на самом деле состоят из трёх действий: выполнить команду, повторить её и выполнить команду, если произошло какое-то условие. По сути, это обыкновенная жизненная категория: мы делаем действие, можем его повторить, можем оценить, что что-то произошло, что мы его сделали. Ключик к пониманию языка - это научиться мыслить алгоритмами.
- Хорошо, как научится мыслить алгоритмами?
- Условно, можно идти по улице и своё движение рассматривать как алгоритм и весь свой день расписать алгоритмами. Что я сделал, когда я встал, что съел на завтрак, а что было бы, если… Это всё, по сути, алгоритм. Если примерно так попрактиковаться и взять синтаксис языка, то можно реально программировать. А дальше уже по примерам спокойно учиться.
- Ты преподаёшь в Политехе, не думал открыть свою частную школу? Ты же практикующий преподаватель.
- Не думал над вопросом монетизации своей преподавательской деятельности. Я изначально вообще не думал, что буду преподавать. Когда я выпускался из вуза, уже работал в компании разработчиком и никак не думал, что буду когда-то учить. При защите выпускной работы, мне предложили остаться на кафедре преподавателем. И оказалось, что мне это действительно интересно безо всякой монетизации. Высшее образование фундаментально, в отличие от частных школ.
- Если некому будет преподавать в вузе, то и базы у молодых айтишников не будет?
- Это точно. Если посмотреть, в IT-компаниях некоторые люди думают, что научиться программированию можно без фундаментального образования. С одной стороны, они правы. Сейчас много различных курсов по этому направлению, и они обучают программированию. Но это скорее история про механические навыки написания кода, а не про мышление. Чтобы осилить именно мышление, надо понять математическую базу программирования. Мы можем посмотреть на код, написанный человеком, и определить, кто его писал. Человек с математической базой, который знает системное мышление, знает, что такое конечные автоматы, знает, как выражения строятся, который графы проходил в вузе, или же тот, кто по видеороликам изучал материал, научился делать что-то по шаблону. Поэтому роль фундаментального образования большая. И при собеседовании в IT-компанию этот фундамент пригодится. Там тебя не будут просить писать код, особенно в крупных компаниях. Тебя все, условно, 4 собеседования будут гонять по теоретическим алгоритмам, тем самым, которые в вузах, имеющих IT-профиль, учат на 1-2-м курсах.
- Миша, какие ещё навыки, качества, на твой взгляд, наиболее важны для успешной работы в IT и, опять же, для преподавания в этой области?
- Ещё лет пять назад для себя сформулировал одно из важнейших качеств - понимание и способность к постоянному обучению. Айтишники действительно учатся всю жизнь, потому что в какой-то момент осознали, что каждые год-два выходит новая программная технология. Люди стремятся удешевить разработку, на каких-то задачах заменить людей на искусственный интеллект. Современные технологии развиваются очень быстро: библиотеки, программные компоненты. Поэтому код постоянно надо переписывать, вносить изменения в проекты. Тут нужен инженерный подход, а не просто человек, который пишет код. Если перестать обучаться, читать профильные статьи, следить за тематическими новостями, то можно быстро оказаться аутсайдером в профессии. А конкуренция сейчас очень высокая, и все хотят в IT, но есть порог, до которого работодателю айтишник практически не интересен. Если перейти этот порог, то можно получить оффер.
- Как ты организовываешь процесс обучения своих студентов, чтобы молодой специалист не по шаблонам работал, а был классным айтишником?
- Я преподаю прикладные трендовые дисциплины. Это не только программирование, но и машинное обучение, большие данные. Эти дисциплины звучат практически везде. И мы здесь анализируем, как они звучат, какие есть прикладные кейсы и соответственно обучаем по ним. Какую-то часть программ меняем каждый год. Например, в прошлом году я учил третий курс писать ИИ для обработки текстовых документов. Тогда это выглядело иначе, чем сейчас. Потому что эти языковые модели сильно развились за это время. Но я не могу сказать студентам, чтобы они не пробовали новое. Хотелось бы, чтобы все преподаватели, особенно практикующие, подходили к обучению с прикладной точки зрения. У нас, преподавателей-практиков, есть возможность в обучение пригнать технологии с рынка. Иначе обучающие планы, которые меняются раз в 5 лет, не будут актуальными, и ребятам придётся потом переучиваться, доучиваться, а это потеря времени.
Плюс подстёгиваю ребят участвовать в IT-Лаборатории, в хакатонах. Какие-то организовываем сами - это позволяет задвигать в процесс обучения реальные кейсы от крупных компаний. Ребята их решают, понимают, чем эти компании живут, какие у них проблемы, а те, в свою очередь, потом водят студентов на экскурсии и так далее. Таким образом мы знакомим студентов конкретно с IT-рынком. Иногда компании даже бьются за будущих сотрудников на хакатонах. Приходит сотрудник одной компании, видит, как студент-разработчик талантливо делает кейс для другой компании, и начинает его хантить. Предлагает оффер, а студент даже и не догадывается, что это из другой компании сотрудник. Но студент понимает, что он востребован, а это хорошая мотивация для развития. Хакатоны, соревнования, фестивали позволяют сильно прокачиваться и добавляют внутренней уверенности молодому специалисту. Помогают понять, куда дальше двигаться.
- Насчёт мотивации, какая ещё, кроме финансовой, должна быть, чтобы достигать лучших результатов?
- Многие до сих пор видят только финансовую мотивацию, верят, что с первых дней им будут платить 300 тысяч в месяц. Да, в этой сфере финансовых проблем почти ни у кого нет, но чтобы зарабатывать, нужно учиться, нужно в итоге перейти как раз тот порог, где работать исключительно по шаблонам не получится.
Некоторые люди в какой-то момент перестают заниматься. Возможно, они поняли, что не смогут всю жизнь учиться, это действительно непросто. Понимают, что хотели бы другим заняться в жизни. А кому-то просто нравится изучать что-то новое. Я работаю со студентами и вижу, что им просто это нравится. Они приходят на новый хакатон, решают то, что раньше не пробовали, и у них глаза горят. Видимо, интерес и есть ещё одна важная мотивация, кроме финансовой.
- Миша, а что тебя мотивирует?
- В трёх местах мотивация своя. На работе и финансовая присутствует, и пробую новые интересные проекты делать. Но самое главное - в компании я всё-таки остаюсь именно айтишником. В моей жизни много преподавательского аспекта, но если я буду только преподавателем, то своим студентам я буду не настолько интересен, как сейчас, - препод с реального рынка. Ещё поэтому на работе всегда стараюсь пробовать что-то новое, набираюсь ещё больше опыта. Здесь мотивация не только, чтобы самому было интересно, но и чтобы потом учить студентов чему-то интересному.
В образовании у меня мотивация такая - помочь ему стать более практико-, проектно-ориентированным. Потому что теорию у нас в ОмГТУ и других вузах дают отлично. С этим, я думаю, проблем нет. Никто из студентов не скажет, что им не хватило часов по высшей математике. Те, кто хочет учиться, теорию выучат все. Но теорию нужно пробовать. Студенты обычно жалуются на проектную деятельность, на какие-то прикладные дисциплины. И это не потому, что вуз не умеет вести, дело в том, что с проектной деятельностью вообще отдельная специфика. Логическая цепочка следующая: чтобы стать разработчиком, в ходе обучения нужно делать проект. Просто изучая теорию, код, без практики стать программистом не получится. Как делать проекты? Есть дисциплина "проектная деятельность", где за семестр можно собрать какое-нибудь приложение. Но начинать работать над проектом в вузе очень сложно, потому что начало - это не код. Именно начало проекта - это работа с заказчиком, выявление требований, аналитика, иногда бизнес-аналитика и так далее. То есть полноценная проработка, то, что мы называем EventStorming, когда предметная область прям штормится. Когда люди садятся и в определённой нотации выписывают связи, понятия, глоссарии предметной области, чтобы банально, говорить на одном языке. И это тоже ресурсы, время. И вот уже семестр заканчивается, а ничего не разработано. Да и студентам трудновато: им пока тяжело искать экспертов, на это тратится время, нет столько опыта в общении с ними. В IT-Лаборатории в этом плане легко стартовать проекту за два месяца, потому что здесь и бизнес, эксперты, директора компаний, и заказчики приходят. Да, два месяца недостаточно, чтобы полноценно завершить проект, но хватает при наличии всех составляющих, чтобы его запустить. Возвращаюсь к своей мотивации в образовании. Мы не знаем, когда у нас это получится, но я бы очень хотел интегрировать эту работу в вуз. Например, летом студенты начинают проекты именно при поддержке бизнеса, а потом они становятся у кого-то ВКРом, у кого-то - выпускным проектом, у третьих - просто проектная деятельность в универе. Планируем с Алексеем Коровянским (сооснователь и технический директор IT-компании Effective и один из организаторов IT-Лаборатории - прим. ред.) проверить эту гипотезу. Это и будет практическая база студентов, потому что проектная деятельность нужна обязательно.
Что касается Лаборатории, я пришёл сюда в 2023 году посмотреть, что происходит и остался там ментором проекта "Виртуальная лаборатория", а потом мне предложили быть директором по маркетингу. Сейчас я в Лаборатории занимаюсь образованием - буду полностью курировать это направление. Здесь моя мотивация, чтобы этот проект, которому уже больше 10 лет, развивался, сделать его лучше. Проводили чемпионаты, круто зарядились с OM FEST’ом, у нас в последние пару лет было много интеграций и даже с теми, с кем раньше даже не пробовали. Например, с IT-субботником. В планах у нас написать для вузов методичку проектного образования и внедрить её в школу высшего образования.
- Расскажи, как ловишь баланс между преподаванием, основной работой и тусовкой в IT-Лаборатории?
- Да, выходит широкий круг деятельности. Сначала была только работа, потом появилось преподавание, затем влился в IT-лабораторию. Приходится балансировать, но у меня никогда не было проблем с тайм-менеджментом. Банально в школе я ходил в разные кружки, на занятия и так далее, и надо было переезжать с одного места в другое и как-то всё свести по времени. Вот и сейчас просто правильно распределяю время. Не прям душно расписываю, чем буду сегодня заниматься, а просто распределяю задачи.
В Лаборатории приходится пахать, но в основном летом, на кафедре пахать приходится в другое время - с осени до весны. Эти два направления моей деятельности хотя бы немного можно развести по сезонам. А на работе пашу всегда.
- Кстати, чем именно занимаешься в компании?
- Я целевик и пришёл туда на стажировку. Это был 2019 год, и тогда был очень модным VR. Его пытались все внедрить. И у компании к этому направлению был интерес. И коллеги из Москвы месяц раз в неделю рассказывали, как на VR создавать тренажёры для инженеров на заводе, для операторов. Мне понравилось. У меня получилось себя проявить так, что через два месяца меня пригласили на работу. Но только не VR заниматься, а мобильными приложениями на том стеке. Кстати, которого сейчас не существует. Мы начали писать внутренний проект для сотрудников, потом пробовал там и другие проекты, делали веб-сайты для конференций, виртуальную витрину для продажи внутренних продуктов компании и так далее. И это были не только мобильные приложения, но и веб. Изначально я всё-таки веб-разработчик с уклоном в бэкенд. Но могу в разных направлениях, поэтому чаще всего выполняю роль тимлида. А последний проект всё же VR, но экспериментальный и прям интересный получился.
Над каким именно проектом работал Михаил и чем он так зацепил человека с пятилетним опытом и внушительным багажом знаний, мы расскажем вам в следующее воскресенье в нашей рубрике "Войти в IT". Тогда же Михаил расскажет, какие технологии и подходы в разработке ПО он считает наиболее перспективными, какую роль играет ИИ в написании кода и что это значит для разработчиков, а также, что интересно школьникам-айтишникам. Поделился наш герой и тем, как он переключается между своими работами, какие у него есть хобби, на каких трёх музыкальных инструментах умеет играть, когда успел научиться писать музыку и зачем читает рэп.