Як я побував у легендарній Школі 42: «басейн», котики та інтернет замість вчителів. Частина 2

Як я побував у легендарній Школі 42: «басейн», котики та інтернет замість вчителів. Частина 2

В минулому пості я розпочав розповідь про Школу 42, яка славиться своєю революційною системою навчання: там немає вчителів, студенти самі перевіряють один одного роботи, платити за навчання не потрібно. У цьому пості я докладніше розповім про систему навчання та про те, які завдання виконують студенти.

Немає вчителів, є інтернет та товариші. Навчання в школі ґрунтується на принципах спільної проектної роботи – peer-to-peer learning. Жодних підручників студенти не студіюють, лекцій їм не читають. Організатори школи вважають, що все можна знайти в інтернеті, запитати у друзів чи досвідченіших студентів, з якими ви разом працюєте над проектом.

Виконані завдання 3-4 рази перевіряють інші студенти, таким чином кожен може побути і учнем, і ментором. Оцінок теж немає – просто потрібно виконати завдання правильно та повністю. Навіть якщо вона зроблена на 90%, це буде зараховано як провал.

Немає оцінок, є бали. Щоб виставити проект на перевірку, необхідно мати певну кількість балів – correction points. Бали заробляють перевіркою домашнього завдання інших учнів. І це додатковий фактор зростання - адже доводиться розбиратися в різних завданнях, іноді перевершують ваш рівень знань.

«Деякі проекти це справжній космос, від них вибухає мозок. І тоді, щоб заробити лише один correction point, доводиться потіти весь день, розбираючись у коді. Якось мені пощастило, і я отримав за день цілих 4 бали – це рідкісний успіх»., - Розповідає мій знайомий, студент Сергій.

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

Гейміфікація. Як у комп'ютерній грі, студенти рухаються вгору рівнями і стежать за своїми успіхами за допомогою Holy Graph — «святої» карти, де наочно показаний весь пройдений і майбутній шлях. Як у RPG за проекти нараховується «досвід», і після накопичення певної кількості відбувається перехід на новий рівень. Схожість із справжньою грою ще й у тому, що кожен новий рівень складніший за попередній, завдань стає дедалі більше.

Як я побував у легендарній Школі 42: «басейн», котики та інтернет замість вчителів. Частина 2

Келих та Адм. У школі існує два основних підрозділи - Бокал (технарі) та Адм (адміністрація). Келих — займається технічними питаннями та педагогічною складовою, тоді як Адм — адміністративними та організаційними питаннями. Кадровий резерв Бокала/Адм поповнюються за рахунок самих студентів, які стажуються в Школі.

Як і чому тут навчають

Все починається із «С». У школі користуються виключно Unix, вважаючи Windows не найкращим вибором. Коду вчать із самих основ, змушуючи осягати саму логіку програмування. Декілька перших рівнів усі проекти виконуються лише мовами C і C++, IDE не застосовуються. Студенти використовують компілятор gcc та текстовий редактор vim.

«На інших курсах тобі дадуть функції, попросять виконати проект і лише потім пояснять, як вони програмуються. Тут ти не можеш користуватися функцією, доки не напишеш її сам. Спочатку, ще в «басейні», я не розумів, навіщо мені ця malloc, навіщо мені самому аллокувати пам'ять, чому не вивчаю Python та Javascript. А раптом потім до тебе доходить і починаєш розуміти, як думає комп'ютер».

Нормінейт. Після успішного захисту всі проекти завантажують у місцевому аналогу GitHub. Але перед цим вони мають пройти перевірку на відповідність коду правилам школи за допомогою програми Norminette.

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

Як я побував у легендарній Школі 42: «басейн», котики та інтернет замість вчителів. Частина 2

приклади завдань

Усі завдання, що виконуються студентами, перевіряються трьома способами: програмно, за чек-листом іншими студентами та представниками Бокала. Нижче наведено деякі проекти, що виконуються самостійно та перевіряються за чек-листом:

Init (System and Network Administration) — потрібно встановити операційну систему Debian на віртуальну машину і налаштувати її відповідно до вимог, зазначених у завданні.

Libft — реалізувати стандартні бібліотечні функції мовою С, такі як: strcmp, atoi, strlen, memcpy, strstr, toupper, tolower та ін. Жодних сторонніх бібліотек, все своїми руками. Сам пишеш хедери, сам реалізуєш, сам створюєш Makefile, сам компілюєш.

Printf - необхідно повністю імплементувати стандартну функцію printf з усіма її аргументами мовою С. Це досить складно для початківців.

Заповнити це — треба було з списку тетраміно, що подається на вхід, зібрати квадрат мінімальної площі. На кожному новому кроці додавався новий тетраміно. Завдання ускладнюється тим, що розрахунки необхідно було робити на C та за мінімальний час.

Libls - реалізувати свою версію команди ls зі всіма її стандартними прапорами. Можна і потрібно використовувати напрацювання з попередніх завдань.

очерет

Крім завдань, які виконуються поодинці, існує окрема категорія завдань, які виконуються групою студентів - rushes. На відміну від самостійних проектів, rush перевіряється не студентами за чек-листом, а співробітниками школи з Бокалу.

Pipex — програма на вхід приймає назви файлів та довільні shell-команди, студент повинен продемонструвати вміння працювати з пайпами на системному рівні та реалізувати функціонал, ідентичний штатній поведінці системи у терміналі.

Minitalk — реалізувати клієнт-серверний додаток мовою C. Сервер повинен вміти підтримувати роботу з кількома клієнтами і виводити на друк повідомлення, що передається клієнтом, з використанням системних сигналів SIGUSR1 і SIGUSR2.

Заморожені - Написати IRC-сервер на Golang, який здатний працювати з кількома клієнтами одночасно, використовуючи concurrency та goroutines. Клієнт повинен мати можливість авторизуватися за допомогою логіну та пароля. IRC-сервер повинен підтримувати безліч каналів.

Висновок

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

Джерело: habr.com

Додати коментар або відгук