Ещё до начала пандемии коронавируса в России мне пришла в голову мысль: "Могу ли я как-то ослабить экономические последствия эпидемии?". Идея возникла почти сразу: "Если многие люди могут потенциально потерять работу, значит, я должен им помочь с освоением новых навыков в области с большим спросом на рабочую силу". А так как я уже довольно долгое время программировал на C/C++, то решил в свободное время обучать людей программированию на...python.
Обучаю программированию на python
Почему же я выбрал python? Основная причина была в простоте языка, его распространенности и в большой доступности качественных материалов для обучения. Я разместил свой пост на пикабу с предложением бесплатно помочь в освоении программирования на python, и понеслось.
О методике преподавания
Для эффективного преподавания изначально я выбрал несколько стратегий.
Бесплатные онлайн-курсы
Я сразу понял, что не смогу обучать людей с нуля — сам я не использую python на постоянной основе. Поэтому я выбрал следующий формат работы. Я нашёл один прекрасный бесплатный курс по питону с задачами.
Пригласил пользователей пикабу в группу вк и объявил, что я сам в качестве ментора буду отвечать на простые вопросы из pythontutor. Сразу же всплыла одна из первых проблем: у пайтонтьютора не было мобильной версии. Люди хотели проходить курс по питону на смартфоне. К сожалению, единственное, чем я мог помочь в этом случае — посоветовать бесплатное мобильное приложение sololearn.
Чуть позже, я обнаружил ещё два прекрасных вводных курса по программированию на степике:
https://stepik.org/67
https://stepik.org/512
Как известно, у степика есть мобильное приложение.
Публикация чужих видео с youtube
Следующий шаг, который я хотел сделать, это выкладывать на стену обучающие видео по самым начальным темам. Каково же было моё удивление, когда я обнаружил, что даже на довольно раскрученных каналах обучения питону ведущие допускают множество ошибок и неточностей. Так, к примеру, автор популярного канала egoroff_channel допускает мелкие неточности — в одном из попавшихся мне видео он путал понятия статической/динамической и сильной/слабой типизации. Так уже на первом видео про понятие переменной мне пришлось просмотреть с десяток видео, чтобы найти одно достойное. Тогда я понял, что публикация чужих обучающих материалов из Ютуб — дело довольно муторное. Стоит отметить, что в одной из своих тем мы всё-таки стали собирать годные на наш взгляд материалы для обучения питону.
Обучение через пример разработки простого приложения
Вообще, тут со сложностями я столкнулся практически сразу. Оказалось, что обучение разработке нужно начинать не с самой разработки, а со всего, что вокруг: установки IDE, рассказа о системе контроля версий, о принятых процессах разработки. А теперь представьте, что у вас есть группа из двух тысяч человек — кто-то уже прошёл курс по ООП, а кто-то только приступил к изучению циклов. Получается, что общей базы у группы нет, о чем конкретно рассказывать — непонятно.
Я начал разрабатывать открытое приложение-органайзер и хотел показать участникам группы, что благодаря умению программировать можно действительно менять мир. Я выложил свой проект на сайт практик устойчивого развития — смартеку. На этом сайте можно проголосовать за понравившийся проект, и трое победителей получат сто тысяч рублей по результатам народного голосования. Чуть позже я понял, насколько был наивен — мои знакомые голосовать за мой проект не хотели из-за сложной процедуры регистрации (после авторизации через вк сайт требует заполнить ещё данные телефона, почты и т.д.), а проекты других конкурсантов просто накручивали лайки через сервисы накруток.
Составление треков обучения и сбор полезного материала.
Тут всё прошло более-менее гладко. Мы смогли составить треки обучения по двум направлениям: data science и автотестирование. До веб-разработки мы пока не дошли. Но тут выявился другой недостаток: мало желающих идти "правильным" путём.
В нашей группе я предложил начать вместе проходить трек data science с курса по теории вероятностей. Условие: наличие отличных сертификатов по двум указанным курсам питон со степика. Много людей выразили желание поучаствовать в этом, когда я только анонсировал задумку, но, к сожалению, никто пока не прислал сертификаты. Причиной мне видится нежелание людей тратить время на что-то непонятное.
Результаты обучения за два месяца (результаты опроса)
На момент проведения опроса в группе было около двух тысяч человек. В опросе приняло участие 58 человек. Дальше приведу несколько картинок. Гендерное распределение:
А так распределились возраста участников:
Интересно, что немалая часть людей изучает питон не только по материалам группы, что радует: поиск информации — один из важнейших навыков программиста.
У нас в группе есть несколько сильных программистов, просто они не решились портить статистику:
Интересно, что "старички" все ещё активны, но при этом есть и прилив "молодой крови".
Далее статистика по курсу пайтонтьютор. Кстати, функцию упорядочивания отображения ответов опроса написал один из участников группы:
Мы спросили также, почему люди вступили в группу изучения языка:
Интересно увидеть, как люди проходят задачки в курсах:
и насколько они довольны собой в изучении языка:
.
Итоги и планы на будущее
Итак, в течение двух месяцев я и еще несколько человек помогали людям осваивать программирование. Наша группа помогла кому-то начать, кому-то продолжить, а один человек даже замотивировался и нашёл работу автотестировщиком. Основные сложности мы выявили следующие:
- многим людям на хватает доступности некоторых курсов (мобильного приложения для изучения в дороге)
- сложно мотивировать людей идти правильным путём (сквозь изучение базовых понятий компьютерных наук)
- обучение реальному программированию требует обучения и технологиям разработки (DVCS, CI/CD), что лишь добавляет сложности
- подбор хороших качественных обучающих материалов крайне трудозатратен
- сложно заинтересовывать и мотивировать людей на начальных этапах (люди хотят чего-то прикладного, но при этом только-только проходят условный оператор).
В планах на будущее мы хотим провести еще несколько интересных активностей: разработать трек обучения веб-разработчика на python; провести, если получится, вебинары по разработке простых игр на pygame; создать простой каркас для обучения веб-разработке. И, конечно же, мы планируем и дальше продолжать отвечать на вопросы по курсам по базовому python.
В конечном итоге, я хочу сказать, что вряд ли у меня получилось как-то существенно повлиять на последствия короновируса для экономики России, но я получил прекрасный опыт, многие участники группы попробовали себя в разработке, кто-то получил мотивацию к действию и устроился на работу.
hahahaha
Могли бы Вы подробнее рассказть об этом моменте? Использовали ли Вы какие-то медиа материалы или книги, которые были бы понятны начинающим? Какого набора достаточно для, скажем, самостоятельного джуниора? Можете ли Вы посоветовать, на что именно здесь нужно обратить особое внимание? Спасибо.
embden Автор
Мы рекомендуем вот эти курсы в треке автотестирование:
Но часто дальнейшее развитие без ментора (участие в open-source проекте, стажировка), мне кажется, будет затруднено.
hahahaha
Спасибо