Захоплюючий Python: секрет курсу

Lebedenko, Vasylyev

Тогоріч у Одесі компанія Sigma Software підписала договір про партнерство із Рішельєвським ліцеєм та, як результат, стартувала факультативний курс з основ програмування на Python для учнів комп’ютерного класу. Авторами, викладачами, менторами та драйверами цієї ініціативи виступили наші фахівці з Одеси – Лебеденко Стас та Васильєв Вадим. За їх словами це не типовий для шкільної програми курс, в його основі лежить багато практики, сам процес навчання наближений до реальних умов роботи на проекті та не передбачає жодних оцінок.

Чим сьогодні можуть похизуватися студенти та викладачі, до чого прямують та на що розраховують по завершенні – про це та інше говоримо зі Стасом та Вадимом.

Python course, Richelieu LiceumСтасе, Вадиме, зі старту курсу пройшов вже майже рік. Це, приблизно, половина програми. А з чого все починалося, чому обрали саме Python?

Вадим: Певний час тому Рішельєвський ліцей звернувся до спільноти IT2Sсhool, в якій ми зі Стасом разом викладаємо для дітлахів основи програмування, із проханням допомогти відновити комп’ютерну спеціалізацію у ліцеї. Адже відомо, що багато випускників Рішельєвського стають програмістами. Тож ми разом з IT2Sсhool радо взялися за розробку освітнього плану для цього напрямку. Потім ліцей вийшов із пропозицією: а чи не зробити факультатив для цих учнів на базі ІТ компаній? Sigma Software відгукнулася, потім ще кілька компаній. Власне, саме так все й почалося.

Стас: Чому для факультативних занять ми обрали саме Python? Тут все просто. Для Рішельєвського ліцею програму ми писали під Python, тож його там і викладають, і нам не потрібно зупинятися на базових темах, адже для їх вивчення в учнів вже є сім занять на тиждень.

Вадим: Ми зі Стасом розглядаємо радше теми, що наближені до реальної роботи на проектах у компанії. Наприклад, системи контролю версій, бази даних, веб-фреймворки, тобто те, про що не розкажуть у школі. І не без гордості скажу, що за цей рік діти справді виросли, адже до старту вони не вміли створювати веб-додатки, не розуміли як вони працюють, натомість зараз в них вже є таке розуміння.

А як побудований процес викладання у вас? У чому відмінність від шкільної програми?

Вадим: Наш курс – це суміш теорії, практики з прикладами коду, практичними завданнями та домашками. Але він є дуже динамічним. Трапляється, що учні приносять стільки питань, що план треба переробляти на ходу. Півзаняття ми розбираємо, в кого які проблеми, а потім вже переходимо до теми. Зазвичай, урок – то 1,5 години, але іноді трапляється й дві плюс.  До того ж ми спілкуємося у чаті групи, куди наші рішельєвці скидають питання загального плану. В особистих чатах обговорюємо питання про якісь штуки, що в них не виходять. Бо ці діти, вони цікавляться всім, намагаються робити якісь нестандарті задачі, прагнуть розібратися у всіх тонкощах: «а як воно працює», «а як подивитися»… Тож, виходить, ми завжди на зв’язку із нашими студентами.

Стас: Ми – точно не класична університетська освіта, де одна пара – лекція, інша – практика. Бо вони не будуть слухати нас стільки часу. З того, що я помітив, 20 хвилин можна розповідати, як різні колекції працюють, але їм цікавіше задачку якусь покумекати.

Теорія – це класно, без неї ніяк на співбесідах, але для молоді, що тільки-но починає, практика – цікавіша  та й важливіша.

Python course, Richelieu LiceumДобре, а як ви контролюєте їх успішність? Як оцінюєте результати? Чи ставите оцінки і чи йдуть вони у загальний залік?

Стас: Один із головних аспектів партнерства з ліцеєм – це те, що ми не хотіли впливати на їх оцінки. Цей факультатив для тих, хто справді хоче більше знати та отримати практичний досвід. Тут в них є така можливість.

Вадим: Тому оцінок ми не ставимо. Наприкінці наші учні презентуватимуть власні проекти, і це буде їх результатом.

Стас: Ми намагаємося їх навчити й паралельно показати, як працює команда, pull request-и та весь процес колаборації. Вадим домовився про безкоштовні акаунти на GitLab для всіх учасників курсу. Там pull requests та Git repositories, все з повним функціоналом, все як у реальній версії. І це круто, бо вони все одразу випробовують. Пам’ятаю, на перших заняттях, то була купа обурення: «чому ви не розумієте мій код, адже там все гарно написано, змінні названі А,B,C,D». То Вадим це дуже контролює й пише коменти: «називай вірно». Повертає. А сьогодні вже бачимо прогрес.

Вадим: До питання, як ми контролюємо їх успіхи: так само, як і на реальних проектах. Учні кидають домашнє завдання на рев’ю. Якщо прийнято, то це значить, що все ОК, бо ми ж не можемо сказати, що твій код на 6 з 10, давай в продакшн. Ні, так не вийде, тому або зроблено, або ні. Який сенс ставити 6. Дитина або зрозуміла, або ні. Зрозуміло, що в ліцеї так робити не можна, але ми можемо собі це дозволити.

Друзі, а от чесно, чи було таке, що питали про щось, чого ви не знали, і доводилося шукати відповіді, готуватися?

Вадим: Та буває, і я вважаю, що це нормально. В такому випадку або я, або Стас кажемо: «Цікаве питання, зараз не відповімо, але ми поміркуємо та розкажемо на наступному занятті». Бо й справді, буває, вони про щось таке спитають, про що ти може й не замислювався. Звісно, матимеш час – розберешся, але просто не стикався з таким ніколи.

Python course, Richelieu Liceum

А от що, на вашу думку, не вдалося з того, що планували, чи було таке взагалі?

Вадим: На початку ми були такі м’які, гадали, що всі, хто прийшли до нас, точно розуміють, чому і навіщо. Адже ми запрошували тих, кому справді цікаво. Але в якийсь момент усвідомили, що з восьми учнів домашні завдання роблять троє. Треба було щось міняти. Ввели правило: три невиконані домашні завдання, ми говоримо до побачення. І ви не повірите, але це спрацювало. Наступного ж заняття всі прийшли з виконаними завданнями. Тож завдяки цьому ми вцілили.

Стас: Майже повним складом продовжили, бо з трьома довелось таки попрощатися. Вони не справлялися і не могли витрачати стільки часу на навчання. Тому, на жаль.

Зараз ми уп’ятьох досить швидко проходимо складні теми.

Зараз кажеш? А що вони не на канікулах?

Вадим: Так, в нас навчання зараз йде повним ходом. Ми дали їм десь місяць перепочити, власне то був кінець травня – початок червня – самий кінець навчально року. А от з середини червня продовжуємо. Навіть на той «відпочинок» дали їм розібратися з HTML, CSS, JS. Якщо будемо давати їм забагато часу на відпочинок, то ніколи не закінчимо.

То який план до березня?

Стас: Наша головна мета, щоб вони знали розробку від початку й до кінця: бази даних, Back-end та Front-end додатків, як працює HTTP, браузери – окремо і разом.

Але є нюанс, що деякі теми заходять легко, а деякі ні, тому часто плани динамічні.

Зараз хочемо, щоб вони навчилися працювати з базами, ганяємо по ORM-кам та іншим тулам, що з ними пов’язані. Щоб учні не просто вміли записати і забути, але розуміли, як фільтрувати, обирати дані, розуміли, що таке моделі та таблиці. Далі будемо рухатися більш в бік Front-end-у.

Тобто все це заради фінального проекту. То як все відбуватиметься?

Python course, Richelieu Liceum

Вадим: Вже з жовтня хочемо, щоб учні почали думати над проектом. Поділимо їх на дві команди по 2-3 студенти, хто з ким товаришує, їм так буде легше комунікувати. Щодо теми, в ідеалі, гарно було б, якби це було щось корисне для ліцею.

Стас: Почекаємо, що ліцей скаже, але, як на мене, то примушувати тут ніхто не буде. Якщо вони прийдуть до нас й спитають, яку тему обрати, то вже втрутимося, щось порадимо. Здається, в них вже є певні думки, тому гадаю, з темою проблем точно не буде.

Вадим: Протягом п’яти місяців підготовки проекту, ми, звісно ж, будемо зустрічатися на заняттях, розбирати якісь складні моменти, відповідати на запитання. Впевнений, спочатку їх буде купа 🙂

А як буде проходити презентація цих учбових проектів?

Стас: Круто буде запросити в офіс Sigma Software викладачів, директора ліцею, батьків наших учнів. Фахівців з компанії покликати, адже впевнений, тут буде щось справді цікаве.

Які в ваших студентів плани та перспективи після навчання?

Вадим: Звісно, підуть у виші. Вже зараз питають, який ВНЗ обрати, на який факультет вступити. Хочуть заробляти. Гадаю, що цей курс відкриє для них безліч професійних можливостей, стане добрим стартом. На момент завершення програми ми прагнемо довести їх до рівня починаючого фахівця, який сміливо може подаватися до інтернатури у будь-яку ІТ компанію.

Стас: Я вважаю, що людина, яка зросла в компанії – то  є найцінніший скарб. Саме тому ми їм вже зараз кажемо, щоб постійно вчилися та цікавилися новинками. В жодному разі не зупинялися. Бо світ технологій – він динамічний, не можна спати.

А ще кажемо, що байдуже, якою мовою писати, адже те, чому ми навчаємо – фундамент. Із такою базою вони легко зможуть перейти на будь-яку іншу мову програмування.

Якщо ти розумієш, як це працює на Python, то розібратися у іншій мові – нескладно.

Lebedenko, VasylyevА що мотивує вас, Вадиме, Стасе, навчати пояснювати, надихати? Адже то не лише 1,5 години самого заняття, тут набагато більше роботи.

Стас: Складання програми, підготовка до уроку, перевірка домашки та готовність давати відповіді, коментарі 24/7 – це й справді не так і легко. АЛЕ!

Коли ти допомагаєш тим, хто справді цікавиться, то воно й тобі драйвово. Чим більше вони дізнаються, тим складніші, продуманіші стають і їх питання. Тож ти не лише прокачуєш свої навички, ти заглиблюєшся у тему.

Вадим: Python – не наша основна мова для роботи. Тому якісь специфічні речі, в яких учні намагаються розбиратися, розширяють й нашу експертизу як програмістів. Можливо, воно нам для роботи й не знадобиться, але дітям  треба пояснити глибше, так, щоб вони зрозуміли, як же само воно працює. Тому для нас головне допомагати тим, в кого є вогник в очах. А це дає і сили, і мотивацію.

Поділитись