У программистов всё непросто. Каждый год в 256-й день, который в невисокосный год выпадает на 13 сентября, а в високосный на 12 сентября, в России свой профессиональный праздник отмечают представители этой мудрёной профессии.
О том, что это за люди, накануне Дня программиста мы обсудили со старшим преподавателем кафедры цифровых технологий факультета компьютерных наук ВГУ Алексеем Максимовым.
Кадров много, специалистов мало
Алена Курицына, корреспондент vrn.aif.ru: Алексей, профессия программиста сейчас очень модная: высокие зарплаты, льготы, отсрочки от армии – словом, есть, чем привлечь молодёжь. К вам и так всегда был высокий конкурс. А сейчас он, наверное, просто бешеный?
Алексей Максимов: В прошлом году нам добавили дополнительный бюджетные места в бакалавриате и магистратуре, поэтому – да, студентов стало больше. Плюс ещё на некоторых специальностях распределение идёт почти напополам, то есть допустим у нас есть 30 бюджетных мест, к ним ещё поступает 30 по договору.
Интерес к ИТ-специальностям растёт каждый год. Почему? Мы живём в информатизированном обществе. У детей сейчас появляется смартфон с 4-5 лет, они понимает, что это инструмент цифровых технологий, и умеют им пользоваться. Казалось бы – что дальше? Дальше – компьютерные игры, осваивание цифровой среды в школе, и в какой-то момент человек решает, что хотел бы её не только познавать, но ещё и создавать. Тем более что для этого множество возможностей. Курсы информатики, «Точки роста», кванториумы, ИТ-кубы, где очень хорошо представлены эти направления. Мне кажется, что государство сейчас очень активно завлекает детей в ИТ- направления. Несмотря на это, качественных кадров на рынке совсем немного.
- Что за молодёжь к вам приходит? Есть отличия от той, что поступала учиться ещё лет 5-10 назад? Изменилось ли что-то в программе обучения с тех пор, когда учились вы, и сейчас, когда вы преподаёте сами?
- Изменилось всё! Например, когда я пришёл учится в университет, мы начинали с языка, который назывался Delphi, а к тому моменту как я выпустился, этот язык уже фактически являлся условно мёртвым. Ему на смену пришел языки C#, а кто-то перешел на Java и множество других. Поменялись технологии разработки и сейчас они изменяются снова.
Студентам раньше для трудоустройства необходимо было знать что-то простое. Сейчас недостаточно даже знания объекто-ориентированного программирования, нужно знать подходы к его использованию, паттерны, методологию ведения проектов.
Теперь каждый студент при поступлении создаёт репозиторий на GitHub. Туда программисты выкладывают свой код, чтобы будущие работодатели могли посмотреть, как часто они пишут, как изменяется стиль их программирования со временем. Когда я поступал, такого не было. А сейчас, когда студент выпускается, у него на GitHub уже есть портфолио, начиная от студенческих задач, пет-проектов и заканчивая дипломным проектом.
Современное обучение становится более специфическим и ориентированным на рынок труда. Несмотря на то, что остаётся изучение фундаментальных дисциплин, например физики, добавляются специфические предметы, которые понадобятся в современных компаниях при трудоустройстве.
Каков наш студент? Он, поступая в университет, зачастую уже имеет какие-то навыки программирования, примерно понимает в тех технологиях, в которых хочет развиваться, активно участвует не только в образовательном процессе, но и во всяких мероприятиях, которые проводят ИТ-компании, и активно записывается на стажировки. По сути, университет для него становится вторичен, потому что у него достаточно других источников знаний. Университет только помогает «поставить мозги на место», организовать подход к труду, организовать себя в коллективе.
- Мальчиков, наверное, гораздо больше, чем девочек? На обывательском уровне это в принципе не женская профессия. Вы с этим согласны?
- Совсем нет. Девочек и мальчиков где-то 50 на 50. Девочки, кстати, некоторые задачи выполняют лучше, потому что им больше присущи скрупулёзность, прилежность, которые очень важны в нашей профессии. Основные качества программиста – это внимательность, упорство и лень.
- Вы правда сказали «лень»?
- Да, именно так. Потому что чем больше программист думает, тем меньше он пишет. Потому что, если он много пишет, то, скорее всего, у него будет выше вероятность ошибки, как минимум, потому что в самом коде больше, символов.
Математика и упорство
- Сейчас вообще популярно убеждение, что можно быть программистом и без высшего образования, все эти фундаментальные науки ни к чему. Мол, профессией можно овладеть на курсах и успешно работать. Вы с этим согласны? О каких вообще курсах идёт речь?
- Я сам в последнее время становлюсь поклонником таких курсов, потому что там эффектные вещи рассказываются достаточно быстро и просто. Но такие курсы во многом программирование преподают как какую-то магию. Там говорят, что «вот, есть такая библиотека, в ней есть такие методы, из них можно вот так собрать нейросеть». При этом не рассказывают, какие математические модели лежат в основе. Почему? Потому что либо сами не знают, либо для того, чтобы про это рассказать, сначала нужно дать математическую базу, а это в часы, отведённые на курс, уже не влезет. Получалось бы что вместо полугода нужно было потратить четыре. Тогда какая разница между курсами и вузом?
Мне кажется, что, например, тестировщиков, фронтенд-разработчиков на таких курсах можно готовить запросто. А вот датасаентиста – уже вряд ли, разве что, если он планирует стать стажёром в каком-то офисе, потому что для решения более сложных задач нужны более обширные знания.
Подытоживая, можно сказать, что такие курсы полезны только в тех случаях, когда их «наслаивают» на фундаментальные знания, или в том случае, когда нужны базовые знания для решения простых задач. В любом случае, карьерный рост без высшей школы затруднителен, всё равно придётся в какой-то момент идти и получать больше знаний.
- Посоветуете ли подрастающей молодёжи учиться на программиста? По вашим прогнозам, как долго в этой сфере будет кадровый голод?
- Боюсь, что кадровый голод будет всегда. Но есть нюанс. Сейчас мы имеем много специалистов, способных решать простые задачи, совсем немного тех, кто может решать задачи средней сложности, и единицы на всю страну тех, кто способен решать сложные задачи. А таких задач много. И здесь кадровый голод будет всегда. То есть, существует прямая зависимость между сложностью задачи и количеством таких задач, а также обратная зависимость между количеством задач и количеством программистов, способных с ними справиться.
Я советую осваивать ИТ в школе и в допобразовании, а дальше самим решать, куда поступать.
- Говорят, у вас на факультете много математики. Зачем она нужна, и можно ли научиться программировать без неё?
- Возвращаясь к ранжированию специалистов – те, кто решает фундаментальные задачи, конечно, знают математику. Тогда как тем, кто решает простые задачи, достаточно знать арифметику. У нас на факультете очень классный уровень математики, очень серьёзный. Будущему студенту нужно быть готовым к тому, что если он гуманитарий, то ему придётся сложно, хотя в целом это не помешает получить необходимые знания. Но математика, конечно же, это база.
- Трудно ли молодому специалисту в нашем регионе развить собственный стартап или внедрить разработку?
- У нашего государства множество фондов, которые поддерживают молодёжь, начиная со школьной скамьи. Есть, например, фонд Бортника, он предлагает студентам множество направлений, по которым можно получить грант. Есть конкурс «У.М.Н.И.К.», где победителю даётся полмиллиона на разработку его научно-исследовательской работы. Поддержка есть, и если правильно и упорно двигаться в этом направлении, то можно получить деньги и запустить свой проект.
Помимо этого, есть негосударственные фонды, например ИРИ – Институт развития интернета, или ФРИИ – фонд развития интернета, которые занимаются как образовательными программами, так и поддержкой различных грантов.
Нейросети и танцы с бубном
- Что влияет на тенденции в сфере ИТ?
- Глобально – это, конечно, машинное обучение и искусственный интеллект. На это повлияла математика, экспериментальные модели и подходы к развитию этих моделей. Появляются новые вычислительные мощности. Например, раньше для каких-то сложных вычислений необходим был сверхмощный компьютер, оборудование, которое занимало целую комнату, а сейчас это видеокарта в вашем системном блоке, которую вы изначально купили для игр.
- Бытует мнение, что вскоре нейросеть сможет заменить людей в некоторых профессиях. Для чего это человечеству?
- Ответ простой – потому что мы можем! Такова наша природа: мы всегда стремимся к познанию мира, развитию и изменению мира вокруг себя и самих себя. И так как нейросеть – эта некая модель нас, то её развитие – это попытка человечества ответить на вопрос: «Кто мы такие и зачем мы?» И этот процесс даёт кучу побочных продуктов.
Касательно того, что нейросеть может заменить людей в некоторых профессиях, – да, это так. Но текст, написаний искусственным интеллектом (ИИ), легко отличить от написанного человеком (особенно если вы разработчик ИИ), точно так же – и картину. Потому что нейросети помогают нам понять, как мы делаем «творчество», но не имеют способности к творчеству, так как не обладают своим уникальным жизненным опытом. И, разумеется, машина сможет полностью заменить посредственного писателя или художника, и, в нашем случае, эта ситуация – скорее вызов по-настоящему творческим людям, повод совершенствоваться.
В прикладном плане развитие ИИ повлияет на качество медицины, оптимизацию производственных процессов, расходов, в целом на качество нашей жизни.
- Вокруг профессии программиста сложилось много мифов, что, например, они не общительны, замкнуты, что не от мира сего и, кроме компьютера, им ничего не нужно, что могут как починить, так и вывести из строя любую технику. Что из этого правда?
- У большинства программистов знания электроники очень посредственные. То есть починить утюг или микроволновку они не смогут. И зачастую даже не смогут починить свой компьютер, если есть какие-то аппаратные поломки. Но программисты не замкнутые. Просто это сообщество очень специфическое. У него есть свои ценности, свой язык, своя культура общения, которая не пересекается с общечеловеческой. Есть свой малопонятный посторонним юмор, свои развлечения.
Специфика большинства программистов, в том, что они гиперрациональны. Мы больше похожи на роботов, потому что мыслим так же, как и работаем. Иногда это доходит до того, что мы мыслим кодом.
- В продолжение о мифах – у вас есть резиновый утёнок или бубен? И при чём тут вообще программисты?
- Нет, ни того, ни другого. Бубен – это админская штука. Наверное, с нулевых годов это пошло. Когда мы работаем с программой, то плюс-минус понятно, почему она работает и не работает. Когда мы работаем с оборудованием, там есть куча моментов, которые нужно учесть. Например, обжать кабель или правильно настроить роутер. Мы можем правильно провести всю эту процедуру, но ничего так и не заработает, потому что версия программного обеспечения другая, мы чего-то не учли, в документации этого не было. И тогда начинаются так называемые пляски с бубном, когда мы посредством случайных штук, перевтыкания проводов, переназначения адресов пытаемся заставить что-то работать.
А утёнок…Когда у программиста возникает проблема, он обращается к воображаемому или настоящему резиновому утёнку и задаёт ему вопрос, на который отвечает от его имени. Ценность этого метода, по моему мнению, завышена. Если у программиста появляется проблема, то он обычно идёт на GitHub или stack overflow и задаёт этот вопрос там. Наверное, если и там не помогут, тогда можно попробовать обратиться к утёнку.
- Если бы программистов не было, что бы в мире исчезло?
- Совсем не было бы? Это был бы стимпанк (направление научной фантастики – ред.), наверное. Если считать программируемыми ткацкие станки или машину Бэббиджа XIX века, то без программистов там, наверное, мы бы и остались. Ладно, XIX век с электрификацией, но без телеграфа Морзе, без арифмометра.