Проблемы ИТ-образования: взгляд программиста

Почему сегодня, на фоне стабильно растущего рынка ИТ, многие компании испытывает острую нехватку высококвалифицированных специалистов?

Текст моего доклада из сборника трудов 1-ой Международной научно-пркатической конференции “Современные информационные технологии и ИТ-образование”, МГУ, 2005 (http://www.2005.edu-it.ru)

  • Академическое образование в области ИТ не всесильно.

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

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

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

Существующие в мировой практике процессы разработки ИТ-продуктов практически не используются в российской практике разработки ПО. В конце 2004 года был проведен опрос 5 крупных компаний о том, какие процессы разработки используются у них. Были только два варианта ответа - скромный взгляд в пол или мечтательный взгляд в потолок. При этом на рекламных материалах и сайтах 3 из этих компаний было расписано о том, какие передовые процессы они используют (от RUP до процессов собственного производства). Реально в лучшем случае программисты используют системы контроля версий. Это дает основание сделать вывод о том, что процесс разработки “на коленках” пока еще самый распространенный у российских ИТ-компаний.

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

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

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

Кроме того, современные ИТ-компании не всегда заинтересованы в самостоятельном воспитании хороших и опытных программистов. Трудовое законодательство не дает гарантий возврата инвестиций, вложенных компаниями в обучение и повышение квалификации своих сотрудников. Иногда руководству компаний кажется, что эффективнее нанять десять студентов, готовых работать круглые сутки, вместо одного профессионала. Поэтому стимулов для профессионального развития технического персонала, и единственный для них шанс улучшить свое материальное положение - это не развивать свое мастерство, а переходить в менеджмент или становиться “гуру” и учить других. Но хороший профессионал – это не всегда хороший учитель.

Индустрии информационных технологий свойственна особая динамичность. Версии и среда разработки меняется раз в два-три года достаточно радикально, особенно это касается технологий Microsoft . В мире Unix также меняются версии операционных систем и библиотек и обратная совместимость не всегда поддерживается. Традиционное академическое образование просто не в состоянии выдержать темп этих гонок, поэтому на сцену выходят альтернативное образование и обучение и сертификация вендоров.

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

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

  • Пути решения

В качестве рекомендации для академического образования сообщество IEEE Computer Society разработало документ CC 2001 (Computing Curricula 2001 Computer Science). Этот документ описывает учебные программы и планы, методики и подходы к академическому обучению ИТ-специалистов, а также цели академического обучения и многое другое. Высшим учебным заведениям необходимо учитывать эти рекомендации при составлении своих учебных программ.

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

Вероятно, также стоит включить в программы курсы психологической подготовки программистов к командной работе.

Обучение техническому английскому жизненно необходимо, и академическое образование может и должно усилить свои позиции в этом вопросе.

Обучение самым последним технологическим веяниям необходимо давать в качестве спецкурсов на старших курсах перед выпуском.

Компаниям, в свою очередь, не стоит всю ответственность за подготовку и совершенствование ИТ-специалистов возлагать исключительно на вузы. Если в компании отсутствуют отделы или структуры, отвечающие за повышение квалификации ИТ-персонала, то это обычно ведет к провалу или зависанию проектов и убыткам, значительно превышающим расходы на обучение. Такое обучение может проводиться как внутри компании, так и в специализированных учебных центрах в виде быстрого “натаскивания” специалистов по конкретным технологиям и языкам, используемым в текущих проектах.

  • Ссылки по теме:

Как меня пытались выучить на программиста

Поделиться/Сохранить

Вы должны авторизоваться, чтобы оставлять комментарии.