Проблема подготовки IT кадров
О подготовке неквалифицированных специалистов
Мы все учились понемногу чему-нибудь и как-нибудь. А. С. Пушкин
Почему наши студенты выигрывают олимпиады по программированию, а когда речь заходит о поиске программиста, мы понимаем, что на рынке не так много хороших специалистов. А молодые «таланты» так вообще подготовлены так, что производимый ими программный код страшно отдавать клиенту.
Уже прижилось понятие «head hunting». И это понятно, если молодые не подходят по уровню образования, компании начинают охоту за умами, теми, кто что-то уже умеет и неплохоВ моей области специалисты переходят из одной смежной компании в другую. Новичков нужно учить, и не всегда это происходит быстро. Часто на собеседования приходят люди не только без опыта, но и не обладающие логическим мышлением. Простые вопросы на логику вызывают либо ступор, либо невнятные объяснения. Что говорит не только о том, что система образования готовит неквалифицированных специалистов, но и о том, что она не развивает логическое мышление студентов. Причины данной ситуации – тема отдельного исследования. В текущей статье рассмотрим проблемы, из-за которых наблюдается эта тенденция, и методы решения.
Проблема нехватки квалифицированных специалистов
Может собственных Платонов и быстрых разумов Невтонов Российская земля рождать. М.В. Ломоносов
Работодатель хочет получить специалиста, готового сразу начать качественно работать. А новоиспеченный специалист предложить наличие знаний в области не может, он только предлагает свой потенциал к развитию. Это многих не устраивает, особенно небольшие компании, не имеющие возможности тратить средства на обучение людей, а затем на переделку софта, на котором молодой специалист, образно говоря, учился программировать.
На рынке наблюдается нехватка ИТ специалистов, что вызывает повышенный спрос на них. Уровень зарплат растет, на вакансии с высокими требованиями и величиной зарплаты начинают откликаться кандидаты с небольшим опытом. Глядя на суммы, предлагаемые компаниями от безысходности, молодые специалисты не хотят идти на меньшие условия. Рынок зарплат «перегрет», соискатели избалованы, а это одна из причин дестабилизации экономики, инфляции и сопутствующего этому кризиса. Автору лично пришлось уйти из одной офшорной компании. Английскому владельцу выгоднее было перевести все в дешевые Индию и Египет, по причине возрастания зарплат на российском рынке. На текущий день автору известны случаи, когда уже наши отечественные компании выводят разработку в офшорные зоны. Это выгоднее, поскольку за небольшие деньги можно получить как минимум тех же новоиспеченных специалистов, таких же, как из наших университетов. А ввиду того что рынок идет к разработке шаблонных систем, основанных на общеизвестных фреймворках, специфические навыки специалистов становятся не так сильно востребованными. Поэтому можно с легкостью воспользоваться кадровыми предложениями третьих стран. В особенности если ваши проекты не отличаются какой-то сверх продвинутой спецификой, на которую потребуются специалисты — победители олимпиад с головами отечественного производства.
Возникает вопрос, откуда браться высококвалифицированным специалистам, если высшая школа понятия не имеет, кого нужно готовить? В своей практике мне пришлось нанять на работу программиста, который преподавал в одном престижном столичном университете. В результате ему не удалось пройти испытательный срок. Позже один из его студентов-самоучек работал у меня, правда, его пришлось переучивать. Данный пример показывает, что высшая школа обладает старыми паттернами знаний, которые устарели в нынешних рыночных условиях.
Система образования готовит специалистов в разных IT областях на основе устаревших рамочных подходах, которые давно уже не соответствуют реальной рыночной действительности и требованиям современных компаний. Время идет, требования меняются, рынки видоизменяются, одни типы специалистов перестают быть востребованными, на смену приходят другие. А система образования все та же. Мир меняется вокруг, а вслед за ним должна меняться и система подготовки специалистов.
То же относится и к фундаментальным знаниям, которые следует предоставлять слушателям так, чтобы усвояемость была максимальной.
Требования рынка
Нет ничего более постоянного, чем непредвиденное. Поль Валери
Давайте посмотрим, что нужно рынку сегодня? Специалисты, разбирающиеся в таких технологиях, как .NET, Java, функциональные языки, объектные языки, sql базы данных, nosql базы данных и т.д. и т.п.
Но знать или иметь небольшой опыт не достаточно, чтобы, изучив синтаксис языка, стать хорошим программистом. Нужно уметь применять эти технологии, нужно учиться писать красивый код, нужно уметь писать код с применением разных техник, например, через тестирование (TDD). Нужно уметь проектировать системы, т.е. обладать знаниями проектирования сложных программных архитектур, а также программно-аппаратных. В век киберразвития человечества, необходимо уметь проектировать системы, основанные и рассчитанные не только на бизнес задачи, но и способные выдерживать внешние атаки. Отсюда вытекает необходимость в специалистах по высоконадежным системам.
Программистов необходимо готовить не только для написания программного кода, но и защищенного от разного рода атак, например sql-инъекций или xss атак.
Большинство кандидатов мало что знают об алгоритмах сортировки и поиска, тем более не помнят или не знают такого товарища, как Кнут Д.Э. Да и зачем, когда все необходимые методы сортировки уже реализованы в разных фреймворках. А отсутствие фундаментальных знаний приводит к созданию большого количества “костылей” (неправильных программных решений, которые необходимо исправлять).
Современные социальные системы не просто сайты, а высоконагруженные системы, которые имеют сотни, тысячи серверов. Отсюда – потребность в подготовке программистов, разбирающихся в параллельном программировании.
Когда приходит кандидат, только вышедший из университета со специальностью, связанной с безопасностью программных систем, и не может объяснить, как работает алгоритм ssl, основанный на принципе ассиметричных публичных ключей, то кого, спрашивается, готовит высшая школа? А тем временем на рынке все также не хватает специалистов по безопасности. С таким же успехом я могу взять самородка, закончившего колледж и увлеченного ИТ— амбиций будет меньше, а толку больше.
Современный мир — это мир больших данных. Где же специалисты, которые умеют проектировать системы для хранения больших данных? Да и недостаточно просто спроектировать такую систему, чтобы можно было с ней работать. Данные есть данные, они бессмысленны, если их никто не использует, а большие данные — это необходимость их анализировать, выявлять какие-то закономерности, а следовательно, рынку требуются специалисты по добыче знаний (datamining).
Часто можно услышать понятие “олап кубы”. Где-нибудь есть специалисты со знанием проектирования таких кубов? На данный момент все обладатели этих знаний самоучки.
Куда не посмотришь, везде нужно качество, а специалисты по качеству IT систем у нас не готовятся. Подготавливая программистов в ВУЗ-е, мы должны задумываться о том, чтобы качество программного кода, который они будут выдавать на выходе своей работы, было на уровне.
Текущая ситуация такова, что качество программных систем, разработанных молодыми и неопытными, а порой и продвинутыми, но без специального образования специалистами, оставляет желать лучшего. Исследование куска одной известной бухгалтерской программной системы выявило наличие архитектурных ошибок. Что говорит о необходимости в реструктуризации системы.
Практика показывает, что преподавательский состав обладает знанием синтаксиса языков или аппаратной архитектурой ЭВМ. Иногда преподаватели учат программированию с точки зрения оптимальности и быстродействия, что хорошо. Но зачастую специалисты не грешат применением таких знаний в своей работе. Это нужно прививать годами. Чтобы люди работали не только на результат любыми средствами, но и на качество внутреннего представления. Сырой код – это то, что мы получаем, и это не устраивает бизнес.
Часто можно услышать, что высшая школа готовит людей эрудированных и способных разобраться в новой области самостоятельно, либо с легкостью расширить свои знания по специальности. Реалии жизни показывают, что не всегда так происходит.
Как правило, ВУЗ готовит специалиста, не способного работать в команде, а в мире сейчас тенденция к гибким методологиям разработки. Новоиспеченные инженеры в лучшем случае знают об этом только понаслышке.
Вектор развития высшей школы
Плох тот учитель, который не учится или учится совсем мало. М. Горький
На сегодняшний день проблема очевидна – подготовка неквалифицированных кадров, отсутствие квалифицированного преподавательского состава, отсутствие у высшей школы понимания требований рынка, как результат – недостаточная квалификация специалистов в компаниях и завышенные зарплатные ожидания у молодых специалистов.
Очевидно, что нужно менять высшую школу — подготовить кандидата технических наук недостаточно для того, чтобы он смог передавать знания. Нужно думать о вариантах интеграции высшей школы и рынка. Причем процесс интеграции должен осуществляться непрерывно, с обратной связью, с периодической корректировкой. Таким образом, чтобы отставание высшей школы от развития технологий в мире было минимальным.
Нужно внести кардинальные изменения в состав предметов для изучения в высших учебных заведениях. Включить современные технологии программирования, проектирование архитектуры систем как на программном уровне, так и на программно-аппаратном, расширить изучение систем защиты информации, включить методы тестирования, методы управления проектами, добавить более глубокое изучение проектирования систем хранения данных, как на основе sql-ориентированных хранилищ, так и на основе постреляционных систем и многое другое. Не только на теоретическом уровне, но и на практическом.
Подводя итог, отмечу, что в статье произведена попытка раскрытия проблемы подготовки неквалифицированных ИТ-кадров. Остаются открытыми вопросы того, как жить с этим, что делать, чтобы совсем не отстать от рынка, каков должен быть вектор развития высшей школы и методы приобретения знаний будущими специалистами.