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

в 8:59, , рубрики: 42 school, Блог компании Mail.Ru Group, Карьера в IT-индустрии, образование за рубежом, Программирование, Учебный процесс в IT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 может любой, и для этого не нужно обладать специальными знаниями. Несмотря на то, что программа рассчитана на начинающих, простые задания быстро сменяются нетривиальными задачками, часто с нечеткими формулировками. От студента требуется максимальная самоотдача, умение искать недостающую информацию в официальной документации на английском языке, а также объединяться с другими студентам для выполнения заданий. Программа обучения не имеет строгой последовательности, поэтому каждый сам себе выбирает путь развития. Отсутствие сквозных рейтингов позволяют сконцентрироваться на своем прогрессе и развитии, а не сравнивать себя с другими.

Автор: Юрий Жайворонок

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js