Чуть более четырёх лет я работаю ментором для старшеклассников-стажёров, недавно взял уже четвёртого ученика. Этого достаточно, чтобы заметить некоторые закономерности. Конечно, каждый из них приходит с различными компьютерными знаниями и опытом, но есть два последовательных и тревожных пробела. Первый — это концепция, а другой — навык. Но обе эти вещи обязан стать продвинутый старшеклассник, особенно который интересуется компьютерами. Этот пробел сохраняется, хотя школьники посещают уроки информатики.
Файл, директории и пути
Существенный пробел в концепциях — это файлы, каталоги или, в целом, пути. Студенты изначально приходят с базовым пониманием файлов и каталогов (т.е. «папок») и, возможно, с какой-то общей мыслью, что во всём этом есть иерархия. Но они не понимают, что расположение файла задаётся последовательностью компонентов каталога, которая может быть либо относительной, либо абсолютной. А именно, они никогда не встречали концепции .(текущий каталог)
или ..(родительский каталог)
.
Первым делом с учениками мы устанавливаем Linux, а затем я сажу их перед терминалом. Поскольку в консоли большинство аргументов кроме опций — это пути к файлам, то команды оболочки весьма ограничены, если ты ничего не знаешь о путях. Вы не можете перемещаться между каталогами или обращаться к файлам за пределами домашнего каталога. Поэтому одна из первых вещей, которым я должен научить их — как работают пути. Мы делаем упражнения, конструирующие и объясняющие концепцию путей, и требуется некоторое время и практика, чтобы ученик действительно усвоил эту концепцию.
И это занимает больше времени, чем вы думаете! Даже когда школьник понял базовые понятия, ему всё равно нужна практика, чтобы действительно закрепить эти понятия и рассуждать о них. Это настолько повсеместная проблема, что я даже думаю подготовить учебную брошюру и, возможно, какие-то интерактивные упражнения. Тогда эти материалы можно просто передать ученику, чтобы он обучился самостоятельно, как они делают это с другими темами.
Пути важны не только для командной строки. Они ежедневно используются в программировании, когда нужно получить доступ к файлам. В некоторых контекстах это даже важно для безопасности, независимо от языка программирования. Например, необходимо позаботиться об обработке и проверке путей из ненадёжного источника. Веб-приложению может потребоваться преобразовать строку типа path в запросе в путь к файлу. Если не понимать, как работает ..
, то можно сделать это опасным образом. Или если не понимать, как нормализовать пути перед сравнением.
Я считаю, что пути являются основным понятием при изучении файлов и каталогов. Это базовый уровень человека, который считается компьютерным грамотным.
Слепой набор
Другой серьёзный пробел — слепой набор. Ни один из моих учеников не обладал этим навыком, и это замедляет их всех гораздо больше, чем они думают. Я провожу много времени рядом за клавиатурой, поэтому сам наблюдаю, как некоторые тыкают пальцем, глядя на клавиши.
Важный шаг в освоении компьютера — быстрое повторение новых идей и концепций, тестирование и игра с вещами по мере их изучения. Нудный и утомительно медленный набор не только тормозит этот процесс, но и активно препятствует экспериментам. Он становится преградой. Продвинутое использование компьютера не очень весело, если вы не умеете быстро печатать.
Честно говоря, я сам освоил слепую печать менее двух лет назад. Жаль, что не раньше: я реально сам виноват, что это заняло так много времени. К счастью, я разработал свой собственный псевдослепой метод печати, который не требует ни тыкать пальцем, ни смотреть на клавиатуру. Моей главной проблемой была точность, а не нудный или медленный набор.
Плохая новость в том, что этому я не могу полностью научить, в отличие от концепции путей. Во-первых, одним из основных принципов программы наставничества является то, что мы не должны тратить много времени на базовые навыки. Обучение слепой печати требует несколько недель ежедневных усилий. Это просто слишком много времени, которого у нас нет. Во-вторых, это не будет работать в любом случае, если студент не мотивирован. Я понятия не имею, как обеспечить такую мотивацию. (И если студент мотивирован, он всё равно сделает это в своё время). Думаю, именно там и застревает школьная программа.
Плохая новость в том, что проблема будет только усугубляться. Произошла мобильная революция, и для большинства людей мобильные устройства постепенно заменяют домашний компьютер, даже ноутбук. Я уже знаю одного студента, у которого дома нет обычного компьютера. Большая разница между планшетом и ноутбуком заключается в том, что планшет предназначен чисто для потребления.
В будущем дети будут все меньше и меньше работать с клавиатурами и продуктивным вычислениями в целом. Клавиатуры останутся жизненно важным инструментом для профессионалов. Мне интересно, станет ли будущее немного похоже, скажем, на 1980-е годы, где только небольшая часть детей видела полноценный компьютер. Только вместо клона PC, компьютера Commodore или Apple II будет Raspberry Pi.
Выводы
Хочу внести ясность: я не обвиняю школьников в этих пробелах. Они ни в чем не виноваты. То, чему их учат и с чем они работают в данный момент жизни, в значительной степени вне их контроля.
Бóльшую часть вины я возлагаю на школы. Все мои подопечные изучали программирование в средней школе, но эти курсы каким-то образом умудряются пропускать основы. Вместо этого они учат определённые IDE без реального понимания. Наконец, я могу понять всех этих математиков, которые жалуются на то, как преподается математика в средней школе!
Что можно сделать? Если вы родитель, убедитесь, что у вашего ребенка есть доступ к компьютеру общего назначения, даже если это только Raspberry Pi или один из его клонов, а также клавиатура и мышь. (Конечно, если вы читаете эту статью, вам не нужен такой совет). Это хороший опыт в любом случае.
Поразмыслив, я теперь думаю, что один из недостатков моего наставничества в том, что я не трачу достаточно времени — как правило, вообще нисколько — на демонстрацию эффективной работы с клавиатурой, чтобы ученики могли наблюдать за мной в действии. Обычно я подхожу к ним, чтобы проверить их прогресс, и такой возможности просто нет. Возможно, их может мотивировать демонстрация того, насколько эффективная и классная работа на более высоких уровнях мастерства — чтобы показать, как слепая печать и мощный текстовый редактор могут привести к такой резкой разнице. Это станет ответом на вопрос «Зачем мне этому учиться?»
Автор: m1rko