Некачественные кадры

Логотип компании
Некачественные кадры
Рынок зарплат «перегрет», соискатели избалованы, а это одна из причин дестабилизации экономики, инфляции и сопутствующего этому кризиса.
Мы все учились понемногу чему-нибудь и как-нибудь. 
А. С. Пушкин

Почему наши студенты выигрывают олимпиады по программированию, а когда речь заходит о поиске программиста, мы понимаем, что на рынке не так много хороших специалистов? А «молодые таланты» вообще подготовлены так, что производимый ими программный код страшно отдавать клиенту. 

Уже прижился термин «хэдхантинг». И это понятно, если молодые не подходят по уровню образования, компании начинают охоту за умами, теми, кто что-то уже умеет и неплохо. В моей области специалисты переходят из одной смежной компании в другую. Новичков нужно учить, и не всегда это происходит быстро. Часто на собеседования приходят люди не только без опыта, но и не обладающие логическим мышлением. Простые вопросы на логику вызывают либо ступор, либо невнятные объяснения. Что говорит не только о том, что система образования готовит неквалифицированных специалистов, но и о том, что она не развивает логическое мышление студентов. Причины данной ситуации — тема отдельного исследования. В текущей статье рассмотрим проблемы, из-за которых наблюдается эта тенденция, и методы решения.

Проблема нехватки квалифицированных специалистов

Работодатель хочет получить специалиста, готового сразу начать качественно работать. А новоиспеченный специалист предложить наличие знаний в области не может, он только предлагает свой потенциал к развитию. Это многих не устраивает, особенно небольшие компании, не имеющие возможности тратить средства на обучение людей, а затем на переделку софта, на котором молодой специалист, образно говоря, учился программировать.

На рынке наблюдается нехватка ИТ специалистов, что вызывает повышенный спрос на них. Уровень зарплат растет, на вакансии с высокими требованиями и величиной зарплаты начинают откликаться кандидаты с небольшим опытом. Глядя на суммы, предлагаемые компаниями от безысходности, молодые специалисты не хотят идти на меньшие условия. Рынок зарплат «перегрет», соискатели избалованы, а это одна из причин дестабилизации экономики, инфляции и сопутствующего этому кризиса. Автору лично пришлось уйти из одной офшорной компании. Английскому владельцу выгоднее было перевести все в дешевые Индию и Египет, по причине возрастания зарплат на российском рынке. На текущий день автору известны случаи, когда уже наши отечественные компании выводят разработку в офшорные зоны. Это выгоднее, поскольку за небольшие деньги можно получить как минимум тех же новоиспеченных специалистов, таких же, как из наших университетов. А ввиду того что рынок идет к разработке шаблонных систем, основанных на общеизвестных фреймворках, специфические навыки специалистов становятся не так сильно востребованными. Поэтому можно с легкостью воспользоваться кадровыми предложениями третьих стран. В особенности если ваши проекты не отличаются какой-то сверхпродвинутой спецификой, на которую потребуются специалисты — победители олимпиад с головами отечественного производства.

Возникает вопрос, откуда браться высококвалифицированным специалистам, если высшая школа понятия не имеет, кого нужно готовить? В своей практике мне пришлось нанять на работу программиста, который преподавал в одном престижном столичном университете. В результате ему не удалось пройти испытательный срок. Позже один из его студентов-самоучек работал у меня, правда, его пришлось переучивать. 

Система образования готовит специалистов в разных ИТ-областях на основе устаревших рамочных подходов, давно уже не соответствующих реальной рыночной действительности и требованиям современных компаний. Время идет, изменяются требования и рынки, одни типы специалистов перестают быть востребованными, на смену приходят другие. А система образования все та же. Мир меняется вокруг, а вслед за ним должна меняться и система подготовки специалистов. 

Требования рынка

Давайте посмотрим, что нужно рынку сегодня? Специалисты, разбирающиеся в таких технологиях, как .NET, Java, функциональные языки, объектные языки, sql-базы данных, nosql-базы данных и т. д. и т. п.
Но знать или иметь небольшой опыт недостаточно, чтобы, изучив синтаксис языка, стать хорошим программистом. Нужно уметь применять эти технологии, учиться писать красивый код, уметь писать код с применением разных техник, например через тестирование (TDD). Нужно уметь проектировать системы, то есть обладать знаниями проектирования сложных программных и программно-аппаратных архитектур. В век киберразвития человечества, необходимо уметь проектировать системы, не только основанные и рассчитанные на бизнес-задачи, но и способные выдерживать внешние атаки. Отсюда вытекает потребность в специалистах по высоконадежным системам.

Программистов необходимо готовить не только для написания программного кода, но и защищенного от разного рода атак, например sql-инъекций или xss-атак.

Большинство кандидатов мало что знают об алгоритмах сортировки и поиска, тем более не помнят или не знают такого товарища, как Д. Э. Кнут. Да и зачем, когда все необходимые методы сортировки уже реализованы в разных фреймворках. А отсутствие фундаментальных знаний приводит к созданию большого количества «костылей» (неправильных программных решений, которые необходимо исправлять).

Современные социальные системы не просто сайты, а высоконагруженные системы, которые имеют сотни, тысячи серверов. Отсюда — потребность в подготовке программистов, разбирающихся в параллельном программировании.

Когда приходит кандидат, только вышедший из университета со специальностью, связанной с безопасностью программных систем, и не может объяснить, как работает алгоритм ssl, основанный на принципе ассиметричных публичных ключей, то кого, спрашивается, готовит высшая школа? А тем временем на рынке все также не хватает специалистов по безопасности. С таким же успехом я могу взять самородка, закончившего колледж и увлеченного ИТ— амбиций будет меньше, а толку больше.
Современный мир — это мир больших данных. Где же специалисты, которые умеют проектировать системы для хранения больших данных? Да и недостаточно просто спроектировать такую систему, чтобы можно было с ней работать. Данные есть данные, они бессмысленны, если их никто не использует, а большие данные — это необходимость их анализировать, выявлять какие-то закономерности, а следовательно, рынку требуются специалисты по добыче знаний (datamining). 

Часто можно услышать понятие «олап-кубы». Где-нибудь есть специалисты со знанием проектирования таких кубов? На данный момент все обладатели этих знаний самоучки.

Куда ни посмотришь, везде нужно качество, а специалистов по качеству ИТ-систем у нас не готовят. Текущая ситуация такова, что качество программных систем, разработанных молодыми и неопытными, а порой и продвинутыми, но без специального образования специалистами, оставляет желать лучшего. Исследование куска одной известной бухгалтерской программной системы выявило наличие архитектурных ошибок. 
Практика показывает, что преподавательский состав обладает знанием синтаксиса языков или аппаратной архитектурой ЭВМ. Иногда преподаватели учат программированию с точки зрения оптимальности и быстродействия, что хорошо. Но зачастую специалисты не грешат применением таких знаний в своей работе. Это нужно прививать годами. Чтобы люди работали не только на результат любыми средствами, но и на качество внутреннего представления. Сырой код – это то, что мы получаем, и это не устраивает бизнес.

Часто можно услышать, что высшая школа готовит людей эрудированных и способных разобраться в новой области самостоятельно либо с легкостью расширить свои знания по специальности. Реалии жизни показывают, что не всегда так происходит.

Как правило, вуз готовит специалиста, не способного работать в команде, а в мире сейчас тенденция к гибким методологиям разработки. Новоиспеченные инженеры в лучшем случае знают об этом только понаслышке.

Вектор развития высшей школы

Очевидно, что нужно менять высшую школу — подготовить кандидата технических наук недостаточно для того, чтобы он смог передавать знания. Нужно думать о вариантах интеграции высшей школы и рынка. Причем процесс интеграции должен осуществляться непрерывно, с обратной связью, с периодической корректировкой. Таким образом, чтобы отставание высшей школы от развития технологий в мире было минимальным.

Нужно внести кардинальные изменения в состав предметов для изучения в высших учебных заведениях. Включить современные технологии программирования, проектирование архитектуры систем как на программном уровне, так и на программно-аппаратном, расширить изучение систем защиты информации, включить методы тестирования, методы управления проектами, добавить более глубокое изучение проектирования систем хранения данных, как на основе sql-ориентированных хранилищ, так и на основе постреляционных систем и многое другое. Не только на теоретическом уровне, но и на практическом.

Подводя итог, отмечу, что в статье произведена попытка раскрыть проблемы подготовки неквалифицированных ИТ-кадров. Остаются открытыми вопросы того, как жить с этим, что делать, чтобы совсем не отстать от рынка, каков должен быть вектор развития высшей школы и методы приобретения знаний будущими специалистами. А вы как думаете? Давайте обсудим.

Опубликовано 28.06.2013