Архивы: по дате | по разделам | по авторам

Как хотеть учиться

Архив
автор: Илья Дединский   23.06.2005

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

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

Первым признаком того, что в том или ином вузе недостаточно серьезно подходят к изучению ИT, оказывается узость спектра рассматриваемых решений. Очень часто количество таких решений оказывается равным единице. Но если предложено единственное решение, а другие не рассматривались, то, на мой взгляд, это решение всегда плохо, так как его даже не с чем сравнить!

Пример из школьного курса. Если вы знаете только один способ отсортировать массив (например, "использовать библиотечную функцию qsort"), то этот способ всегда плох, просто в силу отсутствия альтернатив. При небольшом изменении внешних данных задачи он легко может стать неоптимальным. А задачи все время меняются, это факт. Например, если массивы на входе уже частично отсортированы, их удобнее сортировать слиянием, а при добавлении одного элемента в уже отсортированный массив очень эффективны двоичные вставки. Не говоря о том, что представление данных линейным массивом далеко не единственно и не всегда эффективно.

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

  • Зачем это надо?
     
  • Что это такое?
     
  • Где это можно и где нельзя использовать?
     
  • Как это применять?
     
  • На чем основано и с чем связано?
     
  • Чем придется пожертвовать?
     
  • Что будет, если этого не делать?
     
  • Какие в этом "подводные камни" (чего опасаться)?

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

    Что хорошо удается во многих вузах - это "метод аналогий". Точнее, в таком стиле часто работают студенты. Когда разобраться в предмете с нуля трудно, проще взять решение похожей задачи у себя, у товарища или из методички. Противодействовать этому невозможно. Наоборот, очень хорошо было бы построить обучение на переходах от одной задачи к другой, но акцентируя внимание на том, что, собственно, изменилось и как это повлияет на решение. Если именно это сделать предметом пристального внимания, то разбираться в сути все-таки придется. Практическую часть (лабораторные, курсовые работы) тоже было бы полезно сделать более "приближенной к жизни". От этого они станут сложнее, но можно строить их с возможностью выбора студентом соответствующего уровня сложности. Так и поступают там, где к изучению ИТ подходят действительно серьезно.

    К слову говоря, такой подход возможен везде, но в ИТ результат будет более заметен, так как у бумаги в процессе "притягивания методики за уши" характерное качество - терпение, а у компьютера - упрямство.

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

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

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

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

    Что же делать неравнодушному человеку, попавшему в такой равнодушный переплет, как автор писем из Сибири? Прежде всего, не теряться. Не отчаиваться. Вы же IT-man!

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

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

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

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

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

    Пользовательская часть
  • Пользовательский курс на минимум двух OC (Windows, Linux) с акцентом на конфигурирование программных сред "под себя", увеличение КПД работы и поддержку общих и корпоративных стандартов. Это включает офисные технологии, Photoshop, Illustator/Corel, 3DS Max, Premiere и т. д.
     
  • Архитектура компьютера, его сборка и апгрейд.
     
  • Хороший курс сетевого администрирования изученных ОС. (Желательно, чтобы каждый студент-второкурсник мог бы подобрать подходящее железо и настроить офисную сетку из десятка компьютеров с набором программ по своей работе, не обращаясь к дорогим, в прямом смысле слова, специалистам.)
     
  • Курс специализированного ПО, являющегося отраслевым стандартом в какой-либо области.

    Программирование
     
  • Программирование на широко распространенных языках, включая C/C++, под Windows и Linux на уровне, достаточном для решения будущих профессиональных задач.
     
  • Элементы компьютерной графики (OpenGL).
     
  • Программирование с использованием ЛВС на уровне, достаточном для решения своих профессиональных задач.
     
  • Элементы численных методов и математическое моделирование (в том числе с использованием популярных сред наподобие MathCAD).
     
  • Программирование и разработка ПО в системах, являющихся отраслевыми стандартами предметной области. Поддержка и сопровождение существующих систем и модулей.

    Если студент специализируется именно на разработке ПО, то к перечисленному можно добавить как минимум: расширение количества платформ - ассемблеры (не менее двух), работу с однокристалльными ЭВМ, разработку и поддержку гетерогенных систем; контроль качества процессов (тестирование, эффективность, защита данных) и прочие разделы. А при ориентации на исследовательскую работу нужны еще дискретная математика, формальная теория языков и многое другое. Причем речь, конечно, идет только об общих для всех курсах, до разделения по кафедрам.

  • Поделиться
    Поделиться
    Tweet
    Google
     
    © ООО "Компьютерра-Онлайн", 1997-2017
    При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.