Текст интервью Дмитрия Державина о курсе по Linux
Опубликован текст интервью Дмитрия Державина о базовом Linux-курсе.
Дмитрий Державин — преподаватель с большим опытом и серьёзными взглядами на процесс обучения — рассказал о том, как он проводит базовый интенсивный курс «Введение в UNIX-подобные системы» на базе дистрибутива Альт рабочая станция. В интервью он поделился некоторыми эффективными техническими и методическими приёмами преподавания, описал структуру курса и высказал небезынтересные идеи относительно того, как превратить сиюминутный, устаревающий с выходом новой версии операционной системы учебный план в нечто более фундаментальное и подходящее для академического образования.
Как оно устроено и как на него воздействовать?
Геогрий Курячий: Мы знакомы давно, так что будем на «ты», ладно? Для начала представься. Это важно, как человек сам себя представляет.
Дмитрий Державин: Я уже проходил это квест один раз. Когда я работал в Политехе преподавателем, мы решили сделать такую видеозаставку с говорящей головой преподавателя. Там нужно было записать ролик о себе, секунд десять, ровно на то время, пока указательный палец пользователя тянется к мышке, а мышка тянется к кнопочке back. Так что я представляться могу.
Зовут меня Дмитрий, фамилия моя Державин, я работаю в компании «Базальт СПО» и здесь же я читаю курсы по Linux; а до этого я читал курсы по Linux в питерском Политехе. Несмотря на то, что я там больше не работаю, моя страничка преподавателя сохранилась, и там есть тот самый видеоролик.
Г: Что происходит здесь — прямо сейчас? Мы в классе сидим, вокруг что-то гудит… доска…
Д: Здесь идёт базовый курс по Linux для тех, кто знаком с компьютером, с понятиями «файл», «программа», «операционная система», то есть для уверенных пользователей, которые хотят получить представление о том, как работает Linux, как им можно управлять и что с его помощью можно делать. Он подходит одинаково для будущих админов, будущих программистов, преподавателей. Но тут важно понимать, что это — знания об архитектуре и способах управления Linux, и никто не отменяет необходимость получать специальные знания — админские, программистские, преподавательские. В этом базовом курсе есть чуть-чуть админских знаний (потому что Linux) и программистских чуть-чуть (потому что мы изучаем shell), ну а преподавательские чуть-чуть есть, потому что можно смотреть на живого преподавателя, как он это делает.
Курс — «интенсив», в формате 5 дней по 8 академических часов.
Г: Есть какая-нибудь специфика того, что здесь происходило? Это базовый-базовый курс вообще по Linux, или что-то в нем на твой взгляд есть особенное?
Д: Особенное то, что в нём обобщён большой опыт — и преподавательский и админский, специфика — в том, что он преподаётся на «Альт»-е, иллюстрируется особенностями дистрибутивов Альт. Дистрибутив используется тот, что нужен аудитории: если приходит публика, которой нужен сертифицированный дистрибутив, выдаём им на флешках «СПТ», если дистрибутив общего назначения, то «Альт рабочая станция». Если будут в следующей группы преподаватели потенциальные — возьмём «Альт образование».
Что установлено на компьютерах класса, я даже не знаю: я их ни разу не загружал. Мы грузимся с Live-флешек с поддержкой сеансов. Это полноценная операционная система, которая грузится с флешки непосредственно, не затрагивая жёсткий диск. От обычной Live-флешки она отличается тем, что все изменения, которые делались в операционной системе, запоминаются. Можно сохранить историю команд, установленные приложения, настройку рабочей среды… Идея в том, что собственноручно изменённую и настроенную по ходу курса систему слушатель по окончании забирает с собой. Что он наделал, с тем и уедет. Правда, машины в классе однотипные — чтобы не разбираться с индивидуальной настройкой дисплея, например.
Г: Тогда по методике пара вопросов. Какие ещё средства применялись? Доска, проектор, раздатки — что?
Д: Доска и проектор применяются постоянно. На доске — схемы. Пока. Потому что потом я их перенесу в раздаточный материал. В такие книжки-раскраски, там будут эти схемы с выносками без подписей, и вот эти выноски человек будет своими руками заполнять. Это не я придумал, это было придумано в Политехе, до того, как я туда пришёл. Я работал по этим схемам, действительно схема отличная: когда человек рисует, он может и криво нарисовать, а его задача — содержательно заполнить. Я считаю, нечестно брать политеховские схемы, но тетрадки эти будут, и там же будут задания по лабораторным, которые я пока пишу на доске. Тоже в виде задания — и пустого пространства, куда нужно вписать результат. И это же будет продублировано у них в истории команд на флешках, которые они заберут с собой.
А проектор тоже нужен постоянно. Это вот, к сожалению, не проектор, а маленькая-премаленькая плазма. Я не утрирую! Чтобы человек, который сидит вон там что-то разобрал, я делаю шрифт — сейчас поставлю кружку с чаем — вот такой. Дважды конский. И туда ничего не влезает.
Г: Но можно же…
Д: Да! Screen мы тоже используем, и VNC мы тоже используем (средства совместного доступа к терминалу и экрану, с помощью которых можно проводить демонстрацию на экранах пользовательских компьютеров -- FrBrGeorge), но мне это не нравится. Число методически. Нужно, чтобы смотрели на меня. Обеспечивали обратную связь.
В Политехе на доске рисовать ничего не надо было, всё было в книжке-раскраске, а всю лекцию что-то показывал на экране, её можно было смотреть как фильм. И я screencast каждой лекции записывал с моим голосом в файл. То есть там не было никакой говорящей головы. Самый первый мой доклад на конференции в Переславле был про это. Кстати, маленький скрипт, который я написал для автоматизации, он потом пригождался не только мне — спасибо тому докладу.
Сейчас так пока не получается, потому что нет конспекта, мне приходится бегать от клавиатуры к доске, поэтому я скринкасты не раздаю, а в Политехе я в конце каждой лекции отдавал это видео студентам. И оказалось, что «чужие» скринкасты смотреть неинтересно, а «свои» — интересно! Однажды я неудачно что-то объяснил, и попытался отдать студентам скринкаст той же лекции, но для другой группы. Они спрашивают: «Почему»? Отвечаю: «Они неудачный, мне не нравится». А они: «Не нравится — не смотрите»! Хочется вернуться к такой схеме.
Г: Тут есть проблема: когда ты делаешь непрерывный скринкаст, на самом деле на тебя никто не смотрит. Потому что ты сидишь где-то там в углу за компьютером, и смотришь не на аудиторию, а в экран, и студенты смотрят в экран. Обратная связь тут же гаснет.
Д: Она не гаснет! Вот в этом классе она будет гаснуть, пока я не найду, какая зараза стащила отсюда кафедру. Экран просто должен быть высоко. Это проверено, есть такая точка, когда можно заниматься компьютером и не терять фокус. Я вообще могу быстро печатать вслепую, дописывать что-то на экране — и смотреть при этом в зал.
Г: Второй вопрос — из чего состоит базовый курс? Пять дней — пять пальцев.
Д: Скукотень! (Мы тут дадим ссылку).
- День первый: мы говорим про историю UNIX-подобных систем (очень коротко), про место в ней Linux-ов (разных) и про место среди них Альта-а, а главное в первый день — особенности UNIX-подобных систем. Какие невероятные архитектурные решения были вложены в них сорок лет назад, чтобы за такой срок они не потеряли актуальности и более того, продолжали развиваться. По пунктам разбираем эти особенности весь первый день.
День второй: иерархия файловой системы, типы файлов, права доступа, упоминаем про ACL, мандатный доступ, но базовую модель разграничения доступа разбираем очень подробно. Кульминация объяснения — разбор того, как устроен TCB (технология «setGID directory traversal» — FrBrGeorge). Таких красивых вариантов немного. Лабораторка в итоге получается крайне простая: сделать структуру каталогов для двух рабочих групп, в которых частично пользователи пересекаются.
- День третий: процессы, управления заданиями, сигналы, приоритеты. И на лабораторке пытаемся всем этим управлять. Сегодня как раз этот день закончился. На самом деле день третий и четвёртый в разных группах немножко плавают, какую тему им интереснее будет слушать вначале. Вот эта группа хороша тем, что в ней — все новички, и с ними можно как мне удобно, а не как получается. А то иногда начинают задавать вопросы, на которые надо отвечать следующей темой.
- День четвёртый: вдогонку предыдущему дню немножечко попрограммируем на shell-е. Простейшие конструкции в командной строке — с циклом, с условиями. Буквально на одну пару. Главная тема — сеть. Проекция стека TCP/IP на операционную систему. По опыту — обычно слушателям непонятно, кто на ком стоял, что все уровни вплоть до транспортного, реализованы в яре. Что firewall, например, реализован в ядре, а не программа такая, да и все утилиты управления сетью просто меняют что-то в ядре. И на это приходится тратить много времени, люди этого совсем не понимают, а это ведь ключевой момент. Я очень-очень давно не имел дела с Windows, не представляю, почему у пользователей Windows такое смутное представление о сети.
В конце мы обычно разбираем netstat, Secure Shell, как им пользоваться: вот netstat-ом и смотрим открытые соединения. Ещё очень хочется (хотя не всегда получается и, возможно, уйдёт на пятый день) здесь же, в сетях, разобрать X11. Потому что протокол X11, как и SSH — это тоже удалённый доступ, и… всё наоборот! Клиент — там, сервер — тут, очень показательно получается, работа сети неплохо иллюстрируется. В этот раз не уверен, что получится, потому что новички, может быть я ради этого пожертвую большей частью программирования на shell-е, потому что новички, им рано осознавать кайф от программирования. И в лабораторке будет как раз надо установить соединение так, а потом — так.
День пятый. Технологии ALT. Начинаем с сетевых ресурсов типа packages/webery, Bugzilla. Сборка пакетов: на лабораторках они, естественно, не собирают пакеты, а только устанавливают, но должны знать, как это устроено, из чего пакет состоит, из чего состоит репозиторий и как всё это друг стругом соотносится. Ещё мне очень нравится на лабораторную работу оставлять заведение багов в багзилле. Не знаю, как с этой группой будет, но если в группе люди более опытные, админы, они говорят: «а вот у вас вот это не работает!». Прекрасно! Багзилла — вот она, тема нашей лабораторной работы — оформление сообщения об ошибке. Честно говоря, я не вижу особого смысла заниматься установкой системы во время занятий. Тратить время, чтобы научить их процессу установки? Думаю, с этим они справятся сами. Получается, пятый день полностью посвящён инфраструктуре Linux-сообщества на примере Альт-а.
Г: Вредный вопрос, вот какой. Обычно все эти производственные тренинги (по сути это именно он) — это такая законченная дрессура. Например, нижний уровень тренингов RHEL. Неужели и твои занятия, о которых ты рассказываешь с интонациями творца — такая же дрессура? Где здесь, я не знаю, наука… академичность… что-нибудь помимо дрессуры?
Д: Да я не то, что видел. Я проходил. И вот там была дрессура. А тут я не вижу никакой дрессуры. Разница в том, что там мы рассматривали HOWTO. Какие кнопки нужно нажать, чтобы задача оказалась решённой. А здесь мы разбираем, как это работает, и как на него воздействовать, в каких точках. Мы здесь вообще не рассматриваем конкретные способы решения каких-то конечных задач.
Г: А почему, кстати? Обычно именно за этим едут люди.
Д: Это такая компьютерная грамотность. Решение задач — следующий курс линейки. Кстати, там дрессуры тоже не будет! Например, мы разберём, как настраивать Samba. При этом мы разберём, из чего она состоит, какой процесс открывает какой socket и так далее.
Г: Вопрос ещё более вредный: предположим, что мы материалы этого тренинга потащим в какой-нибудь ВУЗ. Можно ли из этого сделать часть фундаментального курса, скажем, «Операционные системы» — или это всё-таки останется отраслевым спецкурсом «Давайте потыкаем пальцами в дистрибутив Альт»?
Д: Программа этого курса именно в таком виде была отшлифована именно в ВУЗ-е, в Политехе. Как — в том числе — часть учебного плана по одной из специальностей. Естественно, там был спущенный сверху набор названий, которые должны быть в плане, но при желании этот набор можно местами ужать, а местами наполнить. Это не очень большой секрет: современный уровень подготовки в профильных ВУЗ-ах соответствует уровню подготовки в техникумах того времени, когда мы с тобой учились. И это уровень очень хорошего техникума. Как часть курса «Операционные системы» — безусловно, да. Вот первый день — это же в чистом виде обзор UNIX-подобных операционных систем, последующие дни — раскрытие, как это работает технически, а последний день — как это работает в сообществе. Живой иллюстративный материал.
Ты ещё вредный вопрос какой-то хотел задать…
Г: Это и был вредный.
Д: Ну, это разве вредный. Вредный вопрос — другой.
Г: Задай его себе!
Д: если мы говорим про Университет, про фундаментальную подготовку — как сделать так, чтобы этот курс продолжал быть актуальным? Ведь мы хотим, чтобы он тому студенту — через три года, если это бакалавр, через пять, если магистр — ещё пригодился? Чтобы он не устарел за три года?
Надо двигаться каждый раз от требований, постоянно синхронизировать запросы промышленности, то есть той отрасли народного хозяйства, на которую ориентирован курс, с темами и наполнением курса. Это с одной стороны.
А с другой — нужно предусмотреть механизм этого согласования. Наполнение должно быть таким гибким, чтобы в пределах этих трёх лет не переписывать с нуля, а постоянно «рихтовать». Курс должен быть чётко привязанным к тем требованиям, но быть мобильным, чтобы обеспечивать соответствие.
У меня были даже наработки на эту тему в Политехе, и я даже хотел их оформить в виде — не побоюсь этого слова — диссертации. Но получилось, как обычно: или работаешь, или пишешь диссертацию. Суть наработок, если коротко — в некоторой автоматизации построения каркаса учебной программы. Хотя бы на уровне ключевых слов. То есть — теория графов, всякие RDF-ы и прочее. Инструментарий может быть какой угодно, надо попытаться формально привязать наполнение курса к требованиям в рамках постоянной структуры. Чтобы если наполнение меняется, надо было просто подменить контент, а каркас остался тот же самый, причём формально описанный.
Ещё одна мысль. Есть такой этап в разработке учебно-методических комплексов — разработка тестов проверки остаточных знаний. Я готов спорить, что начинать нужно с них, и вокруг них всё накручивать. Потому что именно это должно остаться. И составлять эти тесты нужно, начиная не с вопросов, а с ответов. А ответы как раз берутся «в народном хозяйстве». Потому что это заранее доказанная эффективность обучения.
Г: Вот это ход конём, спасибо!