В настоящее время профессиональные кадры в области информационных технологий являются одними из наиболее востребованных на рынке труда развитых стран, в том числе и в России. Система подготовки таких кадров развивается на протяжении последних 40–45 лет – так, в России, а точнее, в Советском Союзе, первые учебные курсы по программированию были прочитаны в университетах еще в первой половине 50-х годов прошлого века. За это время в западных странах подготовка профессиональных кадров в ИТ-области в значительной мере стабилизировалась. Однако в России, к сожалению, такая система до сих пор не может считаться хотя бы упорядоченной, не говоря уже о соответствии потребностям ИТ-индустрии по количеству и качеству подготавливаемых специалистов.
Характерным признаком неупорядоченности системы подготовки ИТ-кадров является несоответствие перечня специальностей, утвержденного Министерством образования Российской Федерации, реальным профессиям, которые существуют в индустрии информационных технологий. Хорошо известно, что к настоящему времени здесь сформировался достаточно устойчивый список наиболее распространенных специальностей:
Даже если говорить о подготовке ИТ-кадров в более узком смысле, т.е. о подготовке специалистов в области разработки программного обеспечения (программистов), то картина оказывается достаточно удручающей. В целом программирование включает в себя следующие основные направления:
Однако и программисты, специализирующиеся в разработке программного обеспечения, также должны обладать навыками к адаптации. Отсутствие таких навыков, а также возможность восприятия новых знаний только в упрощенной, чисто инженерной форме не позволяют эффективно работать в новых технологических областях. В программировании, как в инженерном искусстве, черпающем свои идеи и методы в программировании-науке, чрезвычайно велик темп обновления – не только в части использования новых технических и программных средств, но и особенно в новых применениях. Обновление здесь носит устойчивый революционный характер. Более того, новые технологии имеют возможность успешно развиваться во многом благодаря программированию.
Рассмотренные выше свойства предъявляют очень высокие и специфические требования к подготовке специалистов по программированию – как к исследователям, так и к разработчикам. Именно этим объясняется постоянная и интенсивная работа мирового программистского сообщества в области разработки новых методологий и курсов с целью поддержки и развития профессионального уровня, адекватного требованиям времени.
Следует отметить, что российская система образования имеет определенные преимущества, позволяющие говорить о возможности организации качественной подготовки программистов. В первую очередь это математические традиции ведущих университетов и фундаментальное базовое образование в средней школе. Кроме того, в советское время была создана (и продолжает функционировать до сих пор) в значительной мере уникальная система поиска и отбора одаренных детей через математические школы, кружки, олимпиады и т.д. В некоторых случаях это приводит к весьма впечатляющим результатам. Так, например, студенческая команда Санкт-Петербургского государственного университета два года подряд являлась победителем международной студенческой олимпиады по программированию – ACM International Collegiate Programming Contest, в которой принимают участие около 6 тыс. университетов из всех стран мира (к сожалению, в 2002 году Россия уступила первое место Китайской Народной Республике).
Однако эти положительные факты в значительной степени перекрываются тревожными и опасными для будущего экономики России тенденциями. Несмотря на внешнюю демократичность системы высшего образования в СССР, в реальности система подготовки кадров была построена (и продолжает оставаться такой же в современной России) с ориентацией на выпуск незначительного числа «элитных» квалифицированных кадров. По-прежнему существует (и продолжает увеличиваться) огромная дистанция в уровнях подготовки специалистов между несколькими ведущими университетами с высоким уровнем преподавания и основной массой высших учебных заведений. Отсутствие отдельной специальности «программирование» в перечне профессий, по которым ведется подготовка ИТ-кадров, зачастую является оправданием низкого уровня обучения – дисциплины программирования преподаются как сопутствующие курсы для многих специальностей.
Даже в «элитарных» университетах требования ACM/IEEE CS «Computing Curricula» до сих пор удовлетворяются не в полной мере. Как правило, подготовка по таким математическим дисциплинам, как дискретная математика, математическая логика, общая алгебра, статистика, является достаточно слабой, а именно эти предметы составляют математический фундамент программирования. Кроме того, наблюдается достаточно опасная тенденция подмены фундаментальных технологических курсов (базы данных, анализ программ, управление транзакциями и т.п.) «тренингами» по тем или иным программным продуктам, особенно в высших учебных заведениях «второго эшелона». В результате вместо понимания причин инженерных и технологических решений (и, соответственно, возможности самим принимать такие решения) студенты приобретают набор навыков, сводящийся зачастую не более чем к знанию пользовательского интерфейса распространенных программ.
В последние годы происходит старение и растет нехватка профессорско-преподавательского состава. Средний возраст преподавателей превышает критический уровень, в то же время молодежь не привлекает карьера преподавателя, что особенно заметно для специальностей, связанных с программированием – уровень оплаты программистов на рынке труда в 10 и более раз превышает уровень оплаты преподавательского состава в университетах. Кроме того, целое поколение наиболее работоспособного возраста ушло из науки и образования в бизнес. Сегодняшние лаборатории и кафедры состоят из профессоров предпенсионного (а часто и пенсионного) возраста и молодежи, окончившей университет пару лет назад. Учебный процесс в высших учебных заведениях держится на крепкой доцентуре. Однако именно ее сегодня нет, и некому становиться новыми профессорами.
В принципе уровень преподавания программирования в «элитарных» университетах за последние годы вырос, но даже в них учебные курсы охватывают не более 70-80% требований Computing Curricula’1991. Слабый уровень преподавания базовых математических дисциплин и недостаточная подготовка выпускников по важнейшим современным технологиям и продуктам приводит к тому, что ИТ-индустрия вынуждена развивать собственную систему переподготовки молодых специалистов, через которую проходят даже выпускники лучших высших учебных заведений.
Наконец, нужно отметить недостаточное количество выпускаемых специалистов. Высшая школа не обеспечивает потребность ИТ-индустрии в профессиональных кадрах в области информационных технологий и особенно в программистах. В течение последних лет в России отмечался достаточно стабильный рост рынка труда для программистов, достигавший в отдельные годы порядка 30–35 % в год. Одновременно с этим до самого недавнего времени количество выпускаемых специалистов уменьшалось. Всего около 250 (примерно 1/4 часть) российских высших учебных заведений готовят специалистов в области информационных технологий, при этом общее число студентов на таких специальностях не превышает 100 тыс.
человек (из более чем 3,5 млн. студентов, включая заочников, т.е. около 3% всех студентов).
В последние годы выпуск составляет менее 10 тыс. человек, с тенденцией к росту до 20–22 тыс. в год за счет увеличения приема на эти специальности, которое произошло 3–4 года назад. Чрезвычайно интересно количественное распределение по университетам студентов, проходящих обучение в области информационных технологий. На рисунке 1 приведено общее количество студентов всех годов обучения в 12 российских университетах, которые готовят наибольшее количество ИТ-кадров.
Рис. 1. Общее количество студентов, проходящих обучение в области информационных технологий.
Это, во-первых, отбор, перевод и распространение учебных курсов и методических пособий лучших зарубежных университетов, с максимально возможной унификацией учебных программ с зарубежными стандартами (в первую очередь с Computing Curricula’2001). Пересмотр и унификация специальностей, а также введение новых специальностей, отвечающих потребностям ИТ-индустрии (в первую очередь в области программирования и управления информационными технологиями).
Во-вторых, налаживание и широкое использование института приглашенных профессоров (visiting professors), включая как ведущих зарубежных ученых, так и российских. К сожалению, приглашению зарубежных ученых и преподавателей зачастую препятствуют не объективные причины, а завышенная самооценка многих, в том числе и столичных университетов. Необходимо налаживать обмен преподавателями с ведущими зарубежными университетами, поддерживать участие преподавателей высшей школы в работе международных конференций, международных комитетов по вопросам образования и стандартизации.
В-третьих, поддержка возможности обмена студентами и их обучения за рубежом. Оказание помощи студентам провинциальных высших учебных заведений, благодаря которой они могут завершить образование в лучших учебных заведениях страны, особенно на этапах магистратуры и аспирантуры.
И, наконец, в-четвертых, создание образцовых центров программирования и информационных технологий на базе нескольких лучших кафедр и факультетов. Такие центры должны определить высокие стандарты подготовки кадров. Естественно, их необходимо создавать при тех университетах, в которых существуют сильные математические школы и школы в области программирования (всего менее десятка российских университетов). Центры должны в первую очередь выполнять следующие задачи:
© Информационное общество, 2003, вып. 3, сс. 63-66.