Как готовить системных программистов
д.ф.-м.н., проф. А.Н. Терехов (СПбГУ, ЛАНИТ-ТЕРКОМ)
Интерес к профессии программиста растет с каждым годом. Этому способствует то, что программисты востребованы на рынке труда и их работа хорошо оплачивается. Но стать действительно квалифицированным специалистом в области программирования, в частности, в области системного программирования, очень сложно.
Кафедра системного программирования Санкт-Петербургского государственного университета имеет многолетний опыт подготовки системных программистов. На основе нашего опыта мы хотим рассказать, как добиться того, чтобы выпускник обладал тем опытом и знаниями, которые потребуются ему в работе, и стал специалистом, конкурентоспособным в мировом масштабе.
Во-первых, важно КТО учит программированию. Преподаватель должен быть в первую очередь исследователем, рассказывать о своих работах и тех, в которых он принимал участие, а не о том, что до него сделали другие, учить студентов новому.
Во-вторых, важно КАК учат программированию. Студент должен получить реальную практику программирования. Университет может дать теорию, но чтобы научить практической деятельности, необходимо сотрудничество Университета с профильными компаниями, которые были бы заинтересованы в проведении исследований и обучении студентов (хотя бы для того, чтобы в будущем иметь возможность нанимать квалифицированные кадры с реальным практическим опытом). Поэтому сегодня практику надо совместить с теорией, что успешно сделано в СПбГУ.
В-третьих, важно ЧЕМУ учат будущего программиста. Если человек имеет диплом по специальности "Системное программирование", он должен уметь программировать, то есть иметь представление об экспертных системах, архитектуре ЭВМ, различных технологиях, телекоммуникациях и так далее. Мы считаем, что существующие программы обучения должны соответствовать международным стандартам, например, ACM / IEEE Computing Curricula 2001. На данный момент, немногие университеты могут похвастаться выполнением всех требований этого документа, и даже мы соответствуем им процентов на 80. Тем не менее, мы постоянно работаем над этой задачей и стараемся распространять методические знания, в частности, опубликовали перевод этого стандарта на русский язык. Одна из проблем, на которую хотелось бы обратить внимание - это необходимость знания студентами теории. Само по себе знание языка программирования не делает из человека программиста - программист должен знать намного больше. Без знания теории невозможно эффективно решать практические задачи. Иначе получится ситуация, что человек знает язык программирования, может сдать по нему экзамен, но ПРОГРАММИРОВАТЬ не умеет. Или умеет, но так, как умеют программировать многие другие. А квалифицированный и дорогой системный программист должен уметь программировать лучше других.
В-четвертых, важна ИССЛЕДОВАТЕЛЬСКАЯ работа студентов. Важно не просто получить программу, которая работает, важно получить что-то новое. Иначе студенты будут ходить вокруг да около тривиальных задач и заново изобретать велосипед. Университетские люди должны быть способны не только написать программу и придумать эффективный алгоритм, но и сравнить, обосновать и оценить возможные границы применимости. Это входит в понятие "университетское образование".
В-пятых, важна ГОСУДАРСТВЕННАЯ ПОДДЕРЖКА И ПОДДЕРЖКА СО СТОРОНЫ БИЗНЕСА. Государственная поддержка нужна для того, чтобы люди способные и заинтересованные в научных исследованиях могли ими заниматься. Поддержка со стороны бизнеса необходима, чтобы студенты могли получить практику, работая в компаниях, а учебные заведения могли знать, чему учить, исходя из результатов своих выпускников. Идеальным вариантом было бы создание технопарков. Поддержка образования и науки со стороны государства и бизнеса поможет справиться с утечкой мозгов, и подстегнет научные исследования.
Презентация к докладу (MSPowerPoint, 130Kb)...
Обсудить на форуме...
|