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

Характерным признаком неупорядоченности системы подготовки кадров является несоответствие специальностей из номенклатуры Министерства образования реальным профессиям, существующим в ИТ-индустрии, где сформировался достаточно устойчивый список массовых специальностей:

  • программист-разработчик (Software Design Engineer);
  • разработчик аппаратуры (Hardware Design Engineer);
  • специалист по разработке тестов (Test Design Engineer);
  • специалист по тестированию (Tester);
  • менеджер разработки (Program Manager);
  • менеджер проектов (Project Manager);
  • аналитик бизнес-процессов (Business Analyst);
  • менеджер информационных систем (IT Manager).

В перечень специальностей российской высшей школы сегодня входят следующие специальности, относящиеся к ИТ:

  • 010200: прикладная математика;
  • 010300: прикладные математика и физика;
  • 071900: информационные системы (по областям применения);
  • 220100: вычислительные машины, комплексы, системы и сети;
  • 220200: автоматизированные системы обработки информации и управления;
  • 220300: системы автоматизированного проектирования;
  • 220400: программное обеспечение вычислительной техники и автоматизированных систем;
  • 220500: конструирование и технология электронно-вычислительных средств;
  • 220600: организация и технология защиты информации;
  • 220700: комплексное обеспечение информационной безопасности автоматизированных систем;
  • 510200: прикладная математика и информатика;
  • 511200: математика, прикладная математика;
  • 552800: информатика и вычислительная техника.

Явно видна нелогичность номенклатуры специальностей. Например, прикладная математика в различных комбинациях встречается четыре раза, но при этом отсутствуют специальности, необходимые для подготовки профессионалов в области управления ИТ — такие, как менеджер информационных систем, аналитик бизнес-процессов или менеджер проектов. Даже если говорить только о подготовке специалистов в области разработки программного обеспечения (программистов), картина оказывается достаточно удручающей. Программирование можно рассматривать и как науку (Computer Science), и как инженерную дисциплину (Software Engineering), ремесло. Программирование как наука, безусловно, базируется на классических дисциплинах общей математики — алгебре и логике. Оно также тесно связано со многими специальными математическими дисциплинами (дискретная математика, теория управления, исследование операций и т.п.).

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

Эти особенности предъявляют очень высокие и при этом специфические требования к подготовке специалистов по программированию — как к исследователям, так и к разработчикам. Именно этим объясняется постоянная и интенсивная работа мирового программистского сообщества по разработке новых методологий и курсов. Следует отметить, что российская система образования имеет определенные преимущества, позволяющие говорить о возможности организации качественной подготовки программистов. В первую очередь, это математические традиции ведущих университетов и фундаментальное базовое образование в средней школе. Кроме того, в советское время была создана (и пока продолжает функционировать) уникальная система поиска и отбора одаренных детей через математические школы, кружки, олимпиады и т.д. В некоторых случаях это приводит к впечатляющим результатам. Например, студенческая команда Санкт-Петербургского государственного университета два года подряд была победителем международной студенческой олимпиады по программированию ACM International Collegiate Programming Contest, в которой принимают участие около 6000 университетов со всего мира.

Однако отдельные положительные факты перекрываются тенденциями опасными для будущего экономики России. Несмотря на внешнюю демократичность системы высшего образования в СССР, в реальности система подготовки кадров была выстроена с ориентацией на выпуск незначительного числа «элитных» квалифицированных кадров. По-прежнему существует и продолжает увеличиваться огромная дистанция в уровнях подготовки специалистов между несколькими ведущими университетами и основной массой вузов. Отсутствие выделенной специальности в номенклатуре специальностей Министерства образования РФ зачастую является оправданием низкого уровня подготовки. Дисциплины программирования преподаются как сопутствующие курсы. Как правило, подготовка по таким математическим дисциплинам, как дискретная математика, математическая логика, общая алгебра, статистика, является достаточно слабой, а именно эти предметы составляют математический фундамент программирования. Кроме того, наблюдается опасная тенденция подмены фундаментальных технологических курсов (базы данных, анализ программ, управление транзакциями и т.п.) продуктовыми «тренингами» от конкретного ИТ-производителя. В результате вместо понимания причин принятия тех или иных инженерных и технологических решений (и, соответственно, возможности самим принимать такие решения) студенты приобретают набор навыков, сводящийся к знанию пользовательского интерфейса распространенных программных продуктов.

В принципе, уровень преподавания программирования в «элитарных» университетах за последние годы вырос, однако учебные курсы покрывают не более 70-80% требований ACM/IEEE CS Computing Curricula. Низкий уровень преподавания базовых математических дисциплин и слабая подготовка выпускников по важнейшим современным технологиям и продуктам приводит к тому, что ИТ-индустрия вынуждена развивать собственную систему переподготовки молодых специалистов, через которую проходят даже выпускники лучших вузов.

Наконец, нужно отметить недостаточное количество выпускаемых специалистов. Вузы не обеспечивают потребности ИТ-индустрии и особенно потребность в программистах, хотя в последние годы в России отмечался стабильный рост рынка труда для таких специалистов, достигавший темпов в 30-35% в год. Только 250 российских вузов (примерно 25% от общего их числа) готовят ИТ-специалистов. При этом общее число студентов на таких специальностях не превышает 100 тыс. человек более чем из 3,5 млн. студентов, включая студентов заочных отделений (т.е. около 3% всех студентов). Сегодня выпуск составляет менее 10 тыс. специалистов в год с тенденцией к росту до 20-22 тыс. за счет увеличения приема на эти специальности три-четыре года назад.

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

Рис. 1. Распределение студентов ИТ-специальностей в ведущих университетах (по данным Министерства образования РФ, 2002 г.)

Достаточно равномерная картина становится совсем иной, если просуммировать количество студентов по городам (рис. 2). Хорошо видно, что сколько-нибудь заметное число студентов учится только в Москве и Санкт-Петербурге, в то время как основная часть упомянутых 250 вузов, готовящих специалистов в области ИТ, представляет на таком графике длинный, но незначимый по числу студентов «хвост».

Рис. 2. Распределение студентов ИТ-специальностей по ведущим научным центрам (по данным Министерства образования РФ, 2002 г.)

Что же делать? Во-первых, требуется отбор, перевод и распространение учебных курсов и методических пособий лучших зарубежных университетов — в первую очередь, Computing Curricula ?2001. Пересмотр и унификация номенклатуры специальностей и введение новых, покрывающих потребности индустрии (прежде всего, в области программирования и управления ИТ).

Во-вторых, необходимо наладить институт приглашенных профессоров (visiting professor), включая ведущих зарубежных и российских ученых. К сожалению, этому процессу зачастую препятствуют не объективные причины, а завышенная самооценка многих университетов.

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

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

Игорь Агамирзян (igora@microsoft.com) — сотрудник компании Microsoft Research; Виктор Иванников (ivan@ispras.ru) — директор Института системного программирования РАН (Москва).


Оригинальная версия статьи размещена по адресу www.microsoft.com/rus/EDUCATION. Статья перепечатана с разрешения Microsoft. Права сохранены.