З 18 років я працюю ментором в Code Club Україна, і мій підхід до навчання завжди був... експериментальним. Моя остання група була повним провалом, і я хочу поділитися цим з іншими менторами, щоб вони були дуже обережними з методами наставництва, які вони використовують.
Що таке Code Club
Code Club — це міжнародна організація, яка просуває культуру безкоштовного менторства та вірить у волонтерський обмін знаннями для майбутніх поколінь без грошової винагороди. Як ви вже здогадалися з назви, мова йде про програмування. Статистика дуже вражаюча. Вони працюють у 180 країнах, і щотижня 180 тисяч дітей навчаються кодуванню безкоштовно.
Я потрапив до Code Club через мій коледж, який не має сторінки на LinkedIn, тож я навіть не можу його позначити, але він називається Черкаський державний бізнес-коледж. Спочатку він починався як філіал клубу, який організовував групові заняття з програмування в коледжі для дітей віком 12-15 років, які хотіли вивчати програмування. Було кілька філій, але я в основному відповідав за викладання веб-розробки за допомогою HTML/CSS/JS, а також Python.
У своїх перших 2 класах я був новачком і працював з командою, тому у мене не було багато можливостей експериментувати з методами викладання. Заняття проводилися 1 раз на тиждень, якщо я не помиляюся, це було 1.2-годинне заняття, на якому близько 12 дітей працювали разом з 2-3 менторами над певною темою. Заняття зазвичай починається з перегляду домашніх робіт і публічного показу найкращих з них, звісно, за згодою дітей. Потім продовжується невеликою лекцією на нову тему тижня, наприклад, про адаптивний дизайн, контейнери чи методи CSS. Вона триває 15-30 хвилин, а наприкінці проводиться сесія контролю якості. Потім студенти отримують практичні вправи, над якими вони працюють до кінця сесії за підтримки менторів.
Відсоток завершення такого підходу становив близько 60%, що вважається високим показником для безкоштовних курсів кодування, але я вважав, що існує більш ефективна модель викладання, яка підвищить відсоток завершення та залучення студентів. Тож я взяв на себе відповідальність одноосібно вести власний груповий онлайн-клуб кодування та намагатися зробити навчальний процес кращим.
Навчання на основі проєктів
На момент менторства цієї групи я вже працював інженером-програмістом повного циклу близько півроку. Я почав працювати інженером-програмістом у віці 18 років, ще під час навчання в коледжі. Мій підхід до навчання був здебільшого натхненний моїм власним сприйняттям того, як різні методи навчання впливають на мою мотивацію та знання. Я завжди ненавидів завдання, особливо нудні, наприклад, створення послідовності Фібоначчі або створення скрипту для підрахунку вартості доставки. Що мене справді захоплювало, так це творча робота. Коли ти отримуєш свободу робити все, що хочеш, і якість твого проєкту визначатиме результат. Такі завдання змушували мене безсонними ночами проводити мозкові штурми, готуватись, робити ітерації та врешті-решт презентувати щось унікальне для мене.
Я зіткнувся з цим кілька разів у коледжі, а потім багато разів на роботі. Перш ніж мене прийняли на роботу, я пройшов 3-місячне стажування. Однією з частин стажування було створення будь-якого додатку за власним бажанням з використанням технологій, які ми ніколи не вивчали. Це може здатися шокуючим для більшості студентів, але як можна створити щось, використовуючи технологію, яку ти ніколи не вивчав? Завдяки такому підходу я вивчив Java за 1 місяць. React — за 2 дні, а Redux — за 1 день. Це виклик, який мене дуже схвилював, всі інші аспекти життя відійшли на другий план, коли переді мною постало таке завдання.
Моя перша (і остання) група в проєктному клубі кодування
В результаті я був глибоко переконаний, що проєктний підхід — це правильний шлях, і саме так я отримав натхнення застосувати його у своїй групі Code Club. Мене призначили наставником 15 дітей віком від 12 до 15 років, щоб навчати їх Python. Перше заняття було ознайомчим, але з 15 учнів, яких мені доручили, було лише 11, що мене розчарувало. На першому занятті я розповів їм про нашу дорожню карту, описав, що таке Python, що з ним можна робити, і яка робота може бути з ним пов'язана, і дав їм завдання - створити візуальний роман за допомогою Renpy.
Renpy — це рушій графічних романів, написаний на Python. Створення роману в ньому не вимагає вивчення Python, але вимагає встановлення його у вашій системі та створення простих "скриптів" за допомогою мови Renpy. Я вважаю, що це ідеальне завдання, щоб показати учням можливості Python. Гра Everlasting Summer, одна з найпопулярніших візуальних новел у світі, була створена за допомогою Renpy. На Youtube було багато уроків про те, як створювати приголомшливі візуальні романи, і навіть кілька готових проєктів на GitHub.
Лише 5 студентів виконали завдання, тож мій відсоток успішності вже становив 30%, що нижче початкового орієнтиру. Проте які напрацювання я отримав. Я не можу поділитися цими проєктами зі зрозумілих причин, але дивовижна річ відбувається, коли ви даєте студентам творчий підхід, щоб зробити щось самостійно. Було 3 хлопці, які зробили дуже елементарні ігри, в які не було вкладено багато душі. Але було 2 хлопці, які зробили дійсно чудові ігри. Там був сюжет, там була ретельно підібрана графіка, там була анімація і там була особиста історія. Я відчув, що в цьому романі вони висловили свою власну боротьбу, тривоги, святкування та події. У якийсь момент мені здалося, що я проводжу заняття з психології, а не з програмування. Однак я знав свою роботу і просто перейшов до наступного завдання, яке полягало у створенні справжньої гри за допомогою Python.
Python надає чудовий інструмент для роботи з консоллю, тому вимога полягала в тому, щоб створити будь-яку текстову гру на основі Python, використовуючи мовні прийоми, які ми вивчили на уроці. На той час учні вже вміли працювати з циклами, змінними, консолями, структурами даних та операторами if, чого було достатньо для створення гри. Однак, лише 4 людини надіслали свою гру. Не зупиняючись на досягнутому, наступним завданням було створення справжньої гри світового класу з використанням рушія Pygame.
Pygame — це справжній ігровий рушій, де ви маєте кодувати свою гру за допомогою Python. Він не такий складний, як Unity або Unreal Engine, і вам не потрібно багато для початку. Ви можете почати зі створення дуже простої 2d гри, і для цього вам не потрібні знання фізики. Однак, вам потрібно витратити день чи два на дослідження бібліотеки та читання документації до неї. Було літо, тому студенти мали бути вільними. Я завжди попереджав їх і питав, чи вони не проти присвятити принаймні 20 годин на тиждень вивченню програмування. Всі вони сказали "так", але тільки 2 успішно виконали третє завдання.
На той момент близько 6 осіб лише відвідували лекції та лише 2 особи виконували домашні завдання. Група втратила динаміку і поступово зупинилася. Однак 2 хлопці, які виконали третє завдання, все ще займаються програмуванням, і вони кілька разів подякували мені за мій підхід до навчання.
Рівень успішності склав лише близько 15%, що було набагато нижче початкового показника. Я здався і припинив свою менторську діяльність у Code Club.
Пастка ефекту хибного консенсусу
Немає нічого більш розчаровуючого, ніж бути викладачем, чиї студенти втрачають інтерес до предмета. Зараз мені шкода всіх професорів, чиї лекції я пропустив, і я дійсно захоплююся кожним викладачем, особливо вчителями в школі.
Я вважаю, що я потрапив в ефект хибного консенсусу, помилково проєктуючи власні інтереси та здібності на всіх інших. Є люди, які проєктують основи того, що освіта працює добре. Такі, як я і ті 2 хлопці, які закінчили мій курс. Але це вимагає високого рівня дисципліни та мотивації. Це вимагає іншої хімічної реакції на виклик. Деякі люди здадуться одразу після того, як отримають важке завдання, але деякі будуть злитися і мати внутрішню мотивацію, щоб виконати його.
Висновок
Оглядаючись назад, я вважаю, що проєктний підхід потрібно поєднувати зі стандартними методами викладання, а також давати учням можливість вибору: виконувати звичайні завдання чи проєктні завдання. Проєктні завдання чудово підходять для фільтрації високомотивованих людей від пасивних спостерігачів, але це не є метою освіти. В ідеальному світі ми могли б зробити так, щоб кожен мотивувався викликом і не здавався, навіть якщо ви не знаєте технології чи фреймворку, з яким працюєте. Тому що це шлях, тому що саме так я визначаю ідеального інженера-програміста.
Топ коментарі (0)