Очень часто говорят о неком зазоре (gap) между тем, что ожидают от выпускников работодатели и тем, что они реально умеют делать.
Какие навыков, умения, опыта не хватает больше всего? Что вузы могли бы сделать и уже делают, чтобы студенты были лучше подготовлены к работе в IT-компаниях?
Здесь интересны точки зрения и представителей вузов, и работников IT-компаний, и самих студентов.
О, на эту тему можно говорить вечно. На самом деле всё очень сильно зависит от ВУЗа/специальности, но в целом тенденция выглядит примерно так:
Основная проблема - IT довольно быстро меняющаяся сфера, а ВУЗы по своей сути довольно инертны. Типичная рабочая программа, созданная 4 года назад, когда в ВУЗ поступали выпускающиеся сейчас бакалавры, может не соответствовать современному стеку технологий в некоторых областях чуть менее чем наполовину. То есть есть некоторое "ядро" (например, алгоритмика, общие подходы к разработке баз данных и т.д.), которое меняется медленно, и есть конкретные языки, библиотеки, и фреймворки, которые могут появляться и устаревать если не за пару лет, то лет за пять - запросто. Для преподавания IT это означает необходимость, сохраняя ядро, постоянно подстраивать учебную программу под актуальные технологии, и тут начинается проблема номер 2.
Вторая проблема, и она очень актуальна именно для преподавания IT-дисциплин - это очень большой разрыв между зарплатами типичного IT-шника и типичного преподавателя в ВУЗе. В реальности можно запросто встретить ситуацию, когда студент 4-го курса, начавший работать на 3-м, получает в IT-компании з/п в 3-5 раз больше, чем у его преподавателя. Не удивительно, что при таком раскладе молодые толковые преподаватели довольно быстро меняют стены ВУЗа на уютные кресла в современных офисах IT-компаний. А среди остающихся тех, кто реально готов постоянно активно учить что-то новое и на хорошем качественном уровне делиться своими знаниями с первокурсниками остаётся всё меньше и меньше...
В результате во многих ВУЗах можно встретить такую дичь, как преподавание, например, Дельфи (всё бы ничего, но иначе как в очень-очень-очень старых и неповоротливых конторах встретить его на практике невозможно уже лет десять как). Причём, чтобы добить, видел я это пару лет назад в дисциплине с гордым названием "Современные технологии ООП". Или статические страницы HTML преподносятся как вершина современных Web-технологий. И т.д.
Сделать с помощью этого набора технологий какие-либо более-менее современные проекты крайне затруднительно. А с учётом в целом не самой высокой квалификации преподавателей... в общем, с практическими навыками тоже всё плохо. Типичный студент мало что знает про системы контроля версий, практики совместной работы на проектах, да и в принципе большие проекты, по сути, не видел даже со стороны.
Исключений из этого правила хватает, но это именно исключения и очень часто это не заслуга ВУЗа, а инициативы конкретных IT-компаний, которые засылают в ВУЗы своих сотрудников, чтобы они повышали уровень преподавания, одновременно приглядываясь к лучшим студентам, либо самих студентов, которые полностью самостоятельно изучают современные технологии по видеокурсам в интернете (ещё и иногда получающие за это по шапке от преподавателей, которые хоть немного знают только Дельфи и требуют сдавать проект именно на нём, а не на Java, C#, или Pyton).
Иными словами, в ВУЗах более-менее нормально даётся совсем база и основы алгоритмов, а вот дальше уже всё сильно зависит от удачи, конкретных преподавателей-фанатиков (в хорошем смысле слова), или сотрудничества ВУЗа с IT-компаниями региона. Но в основной своей массе типичного выпускника ВУЗа, который не начал копать сам всё, что относится к современным технологиям, надо брать и переучивать этим самым технологиям в реальном IT перед выпуском на проект чуть менее, чем полностью. Что, собственно, ведущие IT-компании обычно и делают в своих внутренних учебных центрах.