Сегодня у нас в гостях Александр Суханов, разработчик Machine Reasoning Engine в Cisco Systems и преподаватель онлайн-курсов Python Developer. Professional, Web разработчик на Python, Python Developer. Basic и NoSQL в OTUS. Также Александр преподавал курс Decentralized Applications в Стэнфорде и уроки информационных технологий в российских школах. Александр поделился с нами своим опытом и выразил мнение по поводу организации процесса обучения в учебных заведениях.


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

В прошлом году большинство компаний Кремниевой долины как минимум на год перешли на формат work from home и это стало отличной возможностью на довольно продолжительный срок вернуться в Россию, поработать прямо вот from home и благодаря разнице в часовых поясах попробовать в дневное время сделать что-то хорошее. И раз уже последние несколько лет преподавание стало одним из моих основных хобби, то я решил попробовать усилить собой преподавательский состав какой-нибудь из школ у себя на районе. Во время этой полугодовой «педагогической практики» я подметил некоторые проблемы, про которые я бы и хотел рассказать. Но мне не хочется присоединяться к тем, кто просто всем недоволен, поэтому в конце я написал свое видение того, как некоторые моменты можно исправить.

Первое, что я заметил, скорее всего, проблема не только школьной информатики.

По какой-то причине школа — это очень закрытая тусовка. Слишком закрытая тусовка, причем сразу на всех уровнях. Если для того, чтоб стать TA в Стэнфорде мне потребовалось перекинуться парой фраз с профессором и немного рассказать о себе, то для того, чтобы получить возможность проводить уроки в школе (разумеется, бесплатно, плюс я был готов взять на себя расходы связанные с организацией школьных хакатонов и т.п.) мне потребовалось обойти несколько школ (государственных, частных, благотворительных), везде получить либо отказы, либо «мы вам перезвоним» и просто каким-то чудом выйти на директора школы, которая согласилась взять на себя часть бюрократических сложностей.

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

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

Я не очень представляю, как можно развиваться и не терять интерес, когда у тебя есть, по сути, только один источник ответов на твои вопросы. И если он не знает ответ, а очевидно, что каким бы крутым ни был школьный препод, он вряд ли сможет одинаково хорошо знать сразу все, то ты ответ и не узнаешь никогда. Ну может через лет 7, когда выйдешь на первую работу. Если интерес не пропадет.

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

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

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

В итоге на таких конкурсах могут победить только дети из очень хороших школ, которым повезло с тем, что их родители/преподаватели могут подсказать технологический стек, показать, что и как сделать, а иногда и написать код вместо них. Если я могу рассказать на двухчасовой консультации в субботу про то, как можно быстро сделать REST API на Джанго и на следующей консультации показать, как все это «подружить» с Реактом, и дать на время свой старый макбук, чтобы можно было попроще сделать iOS приложение, плюс показать как все это деплоить и т.д. — у моих детей неплохие шансы на победу.

Но блин, кто-то правда считает, что это такой вот минимальный набор знаний для учителя? А если у меня нет такого вот стартер пака, то какими бы умными и талантливыми ни были мои дети, они будут на таких конкурсах либо в роли как Тоттенхэм [КМ1] либо вообще не будут на такие мероприятия заявляться. По итогу появляется мнение о том, что IT — это такое сообщество, должно быть, невероятно умных и креативных людей (ага, конечно) и зачем вообще даже пытаться что-то в этом направлении делать.

Следующая проблема вытекает из предыдущей. Желания что-то делать у детей полно, но из-за того, что мало кому понравится каждый раз занимать последние места, мотивации и воли к победе на конкурсах нет либо у самих детей, либо у преподавателя или школы. А если у учителя есть желание как-то направить детей, то в итоге дети начинают заниматься каким-то проектами, у которых нет ни цели, ни какой-то конечной даты, а главная смысл просто чем-то ребенка занять. В результате проект девятиклассников доделывают восьмиклассники, а после того, как они закончат девятый класс и начнут готовиться к ЕГЭ это все отойдет уже новым детям. Я думаю, что у многих, кто читает эту статью, был опыт поддержки проекта, над которым до этого работало несколько разных команд, где куча легаси, нет документации и вот это вот все. Приятный опыт, да? А теперь представьте, что это писали школьники без какого-либо опыта. Не думаю, что это то, как детей стоит завлекать в IT.

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

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

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

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

Но главная проблема, которую, наверное, и правда необходимо как-то решать, заключается в том, что детям просто негде применять полученные знания. Когда ты учишься в университете, у тебя есть возможность взять две-три парт-тайм работы, немного приврав про свой опыт на собеседовании, попасть на стажировку в какую-нибудь хорошую (или нет) компанию, где ты, наступая на грабли, взрывая прод и «вообще-то этого не было в описании задачи» постепенно становишься хорошим специалистом. Но вот у школьников такой возможности нет. Насколько я знаю, есть всего несколько компаний (респект им за это), которые делают какие-то стажировки для детей. Но даже эти компании обычно работают именно со школами, а не с конкретными детьми. У тебя хорошая школа, твой директор/преподаватель нашел эту возможность? Хорошо, ты получишь какую-то практику. Тебе повезло чуть меньше? Прости, но кажется тебе придется пить пиво за школой. В результате одна из самых доброжелательных к новичкам отраслей (мы ведь правда все еще такие, да?) превращается в какой-то закрытый клуб по приглашениям.

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

Во-первых, конкурсы проектов. Я считаю, что если абсолютно лишать детей всяких рамок, то мы будем получать то, что все идеи генерируются не детьми, а их родителями. Почему-то никому не приходит в голову тот факт, что если на школьном конкурсе проектов побеждает ребенок, сделавший какой-то проект с использованием ML/блокчейна/любой другой хайповой штуки, то остальные не сделали что-то подобное не из-за того, что они не могут или не смогут так, а из-за того, что, блин, они просто не знают, что так можно было. Или организаторы таких конкурсов считают, что каждый семиклассник, проснувшись, идет заваривать себе кофе и попутно читает сабредит про вебдев, кубер и ML, а после этого лениво переходит по ссылкам на статьи из рассылки Медиума и Хабра? А откуда тогда им узнать-то про то, что большинство вещей попросту существуют?

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

Во-вторых, мне кажется, что применять стандартную систему оценок, когда мы проверяем умение запоминать, а не умение создавать, к школьным урокам информатики бесполезно. В этом плане мне очень нравится подход, который применялся во время моего совсем недолгого преподавания в Стенфорде. Единственная точка отсчета — финальный проект в конце семестра. Проект классный? Молодец, у тебя хороший балл. Проект не очень? Ну, не молодец. В рамках этого курса мы разбивали студентов на небольшие команды, ставили их в довольно жесткие рамки по функциональности проекта и выбору технологий и параллельно с ними, своей командой преподов, делали чуть более сложный проект. В результате у них не было проблем с тем, чтобы где-то посмотреть, как надо правильно сделать, понять, что нужно спросить, узнать, что так можно было, да и было достаточно большое поле для проявления креатива. Улучшить что-то существующее всегда проще, чем изобрести велосипед с нуля. Я считаю, что подобный формат довольно круто бы зашел и в школе.

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

P.S. Надеюсь, что я не нарисовал слишком мрачную картину. В действительности дела с IT в школе (может только в той, в которой работал я, мне и правда здесь очень повезло) сейчас обстоят в разы лучше, чем 10+ лет назад, когда я сам учился в физмат лицее. Есть огромное множество конкурсов для детей, где все могут попробовать свои силы и получить помощь со стороны организаторов (как в плане консультаций, так и в плане железа), кроме того есть компании, которые стараются помочь школам, берут детей на стажировки, обучают их, дают совершать ошибки и тратят на них свои деньги. Среди учителей огромное количество классных и открытых ребят, которые действительно горят преподаванием и являются при этом крутыми профессионалами в своей области, а не преподают в школе из-за того, что работу по специальности просто не удалось найти. Но это ведь не повод не хотеть, чтобы все было еще немного лучше?