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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


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

Источник: https://habr.com/ru/company/mailru/blog/444944/


Интересные статьи

Интересные статьи

Двухфакторая аутентификация Всё прочитанное вами в первой части касалось идентификации на основании того, что знает запрашивающий. Он знает свой адрес электронной почты, знает, как п...
Как нацеленный на профессионалов формат MIDI на короткое, но примечательное время стал основным способом распространения музыки в интернете Почему-то каждый год, когда на горизонте начинает ...
Сегодня мы публикуем вторую часть перевода материала, который посвящён аннотациям типов в Python. → Первая часть
Всем привет. Сегодня делимся с вами заключительной частью статьи «Тестирование инфраструктуры как код с помощью Pulumi», перевод которой подготовлен специально для студентов курса «DevOps практик...
Одной из «киллер-фич» 12й версии Битрикса была объявлена возможность отдавать статические файлы из CDN, тем самым увеличивая скорость работы сайта. Попробуем оценить практический выигрыш от использова...