Хабрахабр

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

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

Никаких учебников студенты не штудируют, лекций им не читают. Нет учителей, есть интернет и товарищи. Обучение в школе основано на принципах совместной проектной работы — peer-to-peer learning. Организаторы школы считают, что все можно найти в интернете, спросить у друзей или у более опытных студентов, с которыми вы вместе работаете над проектом.

Оценок тоже нет — просто нужно выполнить задачу правильно и полностью. Выполненные задания 3-4 раза проверяют другие студенты, таким образом, каждый может побыть и учеником, и ментором. Даже если она сделана на 90 %, это будет засчитано как провал.

Баллы зарабатывают проверкой домашнего задания других учеников. Нет оценок, есть баллы. Чтобы выставить проект на проверку, необходимо иметь определенное количество баллов — correction points. И это дополнительный фактор роста – ведь приходится разбираться в самых разных задачах, иногда превосходящих ваш уровень знаний.

И тогда, чтобы заработать всего один correction point, приходится потеть весь день, разбираясь в коде. «Некоторые проекты — это настоящий космос, от них взрывается мозг. Однажды мне повезло, и я получил за день целых 4 балла — это редкая удача», — рассказывает мой знакомый, студент Сергей.

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

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

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

Как и чему здесь учат

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

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

Но перед этим они должны пройти проверку на соответствие кода правилам школы с помощью программы Norminette. Норминейт. После успешной защиты все проекты загружают в местном аналоге GitHub.

Также проверяют на синтаксис. «Если код работает отлично, но есть утечка памяти, то проект считается проваленным. Ты должен все делать своими руками и очень аккуратно», — рассказывает Сергей. У нас есть список запрещенных функций, атрибутов, флагов, и их использование приравнивается к читерству.

Примеры заданий

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

Init (System and Network Administration) — нужно на виртуальную машину установить операционную систему Debian и настроить ее согласно требованиям, указанным в задании.

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

Это довольно сложно для начинающих. Printf — необходимо полностью имплементировать стандартную функцию printf со всеми ее аргументами на языке С.

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

Можно и нужно использовать наработки из прошлых заданий. Libls — реализовать свою версию команды ls со всеми ее стандартными флагами.

Rushes

В отличии от самостоятельных проектов, rush проверяется не студентами по чек-листу, а сотрудниками школы из Бокала. Помимо заданий, выполняемых в одиночку, существует отдельная категория заданий, которые выполняются группой студентов — rushes.

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

Сервер должен уметь поддерживать работу с несколькими клиентами и выводить на печать передаваемое клиентом сообщения с использованием системных сигналов SIGUSR1 и SIGUSR2. Minitalk — реализовать клиент-серверное приложение на языке C.

Клиент должен иметь возможность авторизовываться с помощью логина и пароля. Frozen — написать IRC-сервер на Golang, который способен работать с несколькими клиентами одновременно, используя concurrency и goroutines. IRC-сервер должен поддерживать множество каналов.

Заключение

Несмотря на то, что программа рассчитана на начинающих, простые задания быстро сменяются нетривиальными задачками, часто с нечеткими формулировками. Поступить в Школу 42 может любой, и для этого не нужно обладать специальными знаниями. Программа обучения не имеет строгой последовательности, поэтому каждый сам себе выбирает путь развития. От студента требуется максимальная самоотдача, умение искать недостающую информацию в официальной документации на английском языке, а также объединяться с другими студентам для выполнения заданий. Отсутствие сквозных рейтингов позволяют сконцентрироваться на своем прогрессе и развитии, а не сравнивать себя с другими.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»