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


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


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


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


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


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


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



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


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


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


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


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


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



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


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


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


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


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


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


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


Rushes


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


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


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


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


Заключение


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

Комментарии (17)


  1. Exchan-ge
    30.05.2019 12:10
    +2

    там нет учителей, студенты сами проверяют друг у друга работы


    «Белл-Ланкастерская система (Система взаимного обучения) — форма учебной работы, сущность которой состояла в обучении более старшими и знающими учениками учеников младшего возраста. Эта система возникла в 1791 году в Великобритании.

    Основные преимущества системы:
    — объяснение материала младшим школьникам давалось на доступном им уровне, так как нивелировалась разница в возрасте и интеллектуальном развитии;
    — система стимулировала к самообразованию.

    Основные недостатки системы:
    — отсутствие у учащихся необходимых педагогических знаний и умений» (с)


  1. suharik
    30.05.2019 12:46

    Деталей мало. Например:

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


    1. yuzh Автор
      30.05.2019 16:28

      Пустые клетки допускаются, если это оптимальное решение. Использовать необходимо все тетрамино, которые подаются на вход.


  1. jamwid07
    30.05.2019 15:26

    В школе пользуются исключительно Unix

    Почему тогда на превюшке статьи везде iMac, имеется ввиду что OS X построен на базе UNIX?


    1. yuzh Автор
      30.05.2019 15:52

      Именно, здесь имелось в виду семейство *nix систем.


    1. usheynet
      31.05.2019 02:45

      Простите, позанудствую. Не построен, nix прикручен сбоку — bsd-подобное ядро тонко размазано поверх mach, покрывая до 80% вызовов (неудивительно, они оба разрабатывались в одно время), не считая того, что X Not a Unix.


  1. pstor
    30.05.2019 16:15

    Интересно конечно, но пока сложно для меня! Спасибо за статью!


  1. andi123
    30.05.2019 16:36

    Несколько первых уровней все проекты выполняются только на языках C и C++, IDE не применяются. Студенты используют компилятор gcc и текстовый редактор vim.

    Какая прелесть.


    1. catanfa
      30.05.2019 23:22

      Каким образом контролируется, что я не могу запустить IDE на своём ноутбуке?


      1. yuzh Автор
        30.05.2019 23:36

        вы работаете на компьютере с предустановленными настройками в школе


      1. lonely_guy
        31.05.2019 10:39

        Никак не контролируется, но у тебя нет рут прав и ты очень ограничен в том, что можешь поставить. Я например использовал clion без каких либо проблем, но во время экзамена доступен только вим /емакс


  1. ShashkovS
    31.05.2019 00:15

    С прошлого года есть филиал и в Москве: 21-school.ru (работают по лицензии школы 42).
    Дополню, что там только офф-лайн, только на компьютерах школы, зато 24 ? 7.
    В московском офисе — это порядка 700 штук 27" iMac'ов.
    С моей точки зрения (я был у них «в гостях» и разговаривал с отдельными студентами, они кое-что показывали) штука очень крутая. Особенно по сравнению многими ВУЗами. Хотя и не все аспекты кажутся мне правильными.


  1. nkorolko
    31.05.2019 09:54

    Геймификация процесса — на мой взгляд — один из самых инновационных и эффективных принципов описанного образовательного процесса, особенного для молодого поколения. Это то, чего классической школе явно не хватает, в то время как в книге по психологии «Сила воля» Баумейстера, очень хорошо и подробно описано, почему этот метод очень эффективный.


  1. Sergei_Erjemin
    31.05.2019 10:31

    Особенный Ад в Школе 21 — автоматизированные экзамены. Нет интернета (а значит онлайн переводчика), задание на «аглицком», французском (иногда еще и на итальянском) и даже не всегда понимаешь, что от тебя хотят (особенно если встречаются математические или алгебраические термины). Но еще хуже — иногда хотят одного, а проверяют другое. Например, задача написать функцию которая умеет делать «заливку» — получает двумерный массив и координату внутри него (даётся описание структур входных данных, пример массива и т.д.). Вроде все просто — переопределить массив, заменив в нем одни символы на другие по правилам «заливки» (как в графических редакторах). Ты пишешь такую функцию, кучу вспомогательный процедур подготовки данных, тесты, main для запуска… Тестируешь. И после пушишь проверяющей системе ТОЛЬКО ФУНКЦИЮ (ведь просили же функцию). Но проверялка тебе репортит — а где main? Без него не компилируется! НОЛЬ БАЛЛОВ, снижаем поинты для следующего задания.

    При этом, необходимость main в задании не требовало! Даже более того — специально оговаривалось, что нужна вот такая функция по прототипу в файле вот такого наименования (плюс свои дополнительные функции), и вот такой хидер с прототипами и структурами в файле вот такого наименования…

    И такого полно. В некоторых случаях ты уже начинаешь «правильно угадывать» такие скрытые требования… Но для этого нужно пройти кучу попыток и «подобрать» правильное решение под такие нечетко-сформулированные или ошибочные задания… Это выбешивает!


  1. lanseg
    31.05.2019 12:42

    Какая-то очень странная система, адская потогонка с элементами секты.


    1. Sergei_Erjemin
      03.06.2019 11:40

      Индустрии нужны клоны-программисты, взаимозаменяемые как гайки… Для подготовки таких школа и предназначена. А талант, как учил великий Вождь и Учитель, сам пробъется (со Школой 21 или нет).


      1. lanseg
        03.06.2019 14:29

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