Так вот, дорогой абитуриент, школьные коридоры полны предсмертного блеяния. То там, то здесь ягнят убивают тупыми предметами – где физикой, где историей, а иные живодеры – так чистописанием прямо в первой четверти. Ваша задача – отличить агнцев от козлищ и не путать нелюбимые предметы с нелюбимыми учителями. Как, впрочем, и наоборот. Видели бы вы, как мучаются студенты, выбравшие профессию сердцем. Образование нельзя любить или бояться его. Образование можно получать, или ему можно подвергаться, использовать или иметь, гордиться им или гордиться собой. Это зависит от того, что вырастает вместо снятой в школе шкуры.
ТЕМА НОМЕРА: Как хотеть учиться
По моему мнению, главная задача вуза, и не только в сфере ИТ, – научить студента действовать грамотно и самостоятельно. Под грамотностью я понимаю умение классифицировать проблемы, знать типовые решения, выбирать спектр адекватных решений, контролировать качество, мыслить не решениями, а как минимум технологиями. Многие вузы с этим успешно справляются, из них выходят классные специалисты, а не юзеры-исполнители.
Первым признаком того, что в том или ином вузе недостаточно серьезно подходят к изучению ИT, оказывается узость спектра рассматриваемых решений. Очень часто количество таких решений оказывается равным единице. Но если предложено единственное решение, а другие не рассматривались, то, на мой взгляд, это решение всегда плохо, так как его даже не с чем сравнить!
Пример из школьного курса. Если вы знаете только один способ отсортировать массив (например, «использовать библиотечную функцию qsort»), то этот способ всегда плох, просто в силу отсутствия альтернатив. При небольшом изменении внешних данных задачи он легко может стать неоптимальным. А задачи все время меняются, это факт. Например, если массивы на входе уже частично отсортированы, их удобнее сортировать слиянием, а при добавлении одного элемента в уже отсортированный массив очень эффективны двоичные вставки. Не говоря о том, что представление данных линейным массивом далеко не единственно и не всегда эффективно.
К этой проблеме примыкает другая, более тяжелая, – проблема плохого осознания условий применимости методов и технологий. Здесь ситуация тем хуже, чем меньше понимание азов и больше тенденция к слепому заучиванию. Вообще, на мой взгляд, системный подход к любому практическому знанию (технологии) предполагает получение ответов на такие вопросы:
– Зачем это надо?
– Что это такое?
– Где это можно и где нельзя использовать?
– Как это применять?
– На чем основано и с чем связано?
– Чем придется пожертвовать?
– Что будет, если этого не делать?
– Какие в этом «подводные камни» (чего опасаться)?
Еще одна характерная проблема молодых ИТ-специалистов – отсутствие навыков работы в команде, а как следствие, и навыков поддержки стандартов. Всегда проще строить все самому и с нуля, отринув историю, но грамотнее – поддерживать то, чем люди привыкли пользоваться. Проще договориться с собой, любимым, чем с членами команды, но фокус в том, что один все не сделаешь. Или обгонят. Время одиночек в разработке ПО уже прошло. Разработка теперь – коллективное сумасшествие.
Что хорошо удается во многих вузах – это «метод аналогий». Точнее, в таком стиле часто работают студенты. Когда разобраться в предмете с нуля трудно, проще взять решение похожей задачи у себя, у товарища или из методички. Противодействовать этому невозможно. Наоборот, очень хорошо было бы построить обучение на переходах от одной задачи к другой, но акцентируя внимание на том, что, собственно, изменилось и как это повлияет на решение. Если именно это сделать предметом пристального внимания, то разбираться в сути все-таки придется. Практическую часть (лабораторные, курсовые работы) тоже было бы полезно сделать более «приближенной к жизни». От этого они станут сложнее, но можно строить их с возможностью выбора студентом соответствующего уровня сложности. Так и поступают там, где к изучению ИТ подходят действительно серьезно.
К слову говоря, такой подход возможен везде, но в ИТ результат будет более заметен, так как у бумаги в процессе «притягивания методики за уши» характерное качество – терпение, а у компьютера – упрямство.
Очень важна связь и преемственность курсов – когда, например, в курсе матмоделирования используются курсы программирования, компьютерной графики, численных методов. Студенту должно быть понятно, что некоторые вещи удобнее считать и реализовывать в тех или иных промышленных средах, а для других свой собственный софт незаменим.