Как я проходил бассейн Школы 21 после 15 лет в IT

Как я проходил бассейн Школы 21 после 15 лет в IT

Я уже почти год учусь в Школе 21 и хочу сделать небольшой цикл статей об этом опыте. Отдельно рассказать, как проходил бассейн, как устроено основное обучение и чему в итоге научился, в том числе на направлении Data Science.

Начну с бассейна. Во многом именно он оказался самой яркой и неожиданной частью всей этой истории.

На Школу 21 наткнулся случайно в рекламе. В тот момент как раз заканчивал большой курс по нейросетям и точно не собирался вписываться ещё в одно длительное обучение. Но сама идея меня зацепила почти сразу.

У меня техническое образование, но изначально к программированию я вообще отношения не имел. В 2010 году попал в веб-студию как продажник, потом начал заниматься проектами, SEO, рекламой, самой веб-разработкой, и дальше всё постепенно закрутилось. За это время набралось уже больше 15 лет очень разного практического опыта в IT. Разрабатываю сайты, внедряю ИИ, автоматизирую процессы, есть постоянные клиенты. Но ощущение пробела в теоретической базе по программированию всё равно никуда не исчезло.

В Школе 21 предлагали много направлений, обучение на полтора-два года и большой объём практики. Всё это бесплатно, поэтому решил попробовать пройти отбор.

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

Я видел, что некоторые проходят игру за час-полтора, поэтому тоже рассчитывал управиться довольно быстро. Первые задания пошли бодро, но просто пройти уровень оказалось мало. Хотелось каждый раз найти максимально короткое решение, за это давали больше баллов. В итоге вместо предполагаемых полутора часов просидел почти все три.

После игры пришло приглашение на бассейн.

Две недели бассейна

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

Наш бассейн длился две недели. Уже на месте выяснилось, что раньше примерно тот же объём проходили за четыре, а у нас программу сильно уплотнили.

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

В первые же дни выяснилось, что 15 лет опыта в IT не дают какого-то большого преимущества на незнакомом стеке. Общий технический кругозор помогал быстрее ориентироваться, но с Си, указателями, работой с памятью и компиляцией всё равно приходилось разбираться практически с нуля.

Проекты открывались один за другим. Утром появляется задание, через 36 часов оно закрывается, но следующим утром уже доступно новое. Если слишком долго возишься с одним, начинаешь тратить время следующего.

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

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

И так почти две недели.

Готового учебного материала практически не было. Сначала получаешь задачу, которую ещё не умеешь решать, а потом уже под неё собираешь знания. Читаешь документацию, ищешь информацию, спрашиваешь людей вокруг.

Нейросети здесь тоже хорошо помогали, но скорее как наставник. Можно было попросить объяснить указатели, работу с памятью или конкретную ошибку. Технически никто не мешал отправить условие целиком и попросить написать всё за тебя, но среди тех, с кем я общался, так почти никто не делал. Чаще нейросеть использовали, чтобы самому разобраться, почему что-то работает или не работает.

Очень быстро начинаешь общаться с людьми вокруг. Кто-то уже разобрался в теме и может подсказать направление. Иногда хватает одной фразы, чтобы понять, куда смотреть дальше. Через несколько часов уже сам объясняешь то же самое кому-нибудь ещё.

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

К концу первой недели хотелось всё бросить

Кроме проверок другими участниками проекты прогонялись через автоматическую систему Вертер. И довольно быстро выяснилось, что успешные проверки людьми ещё ничего не гарантируют.

Первый раз вообще не понял, что произошло. Проверки прошёл, отправил проект дальше, а в результате получил ноль. Только потом стало понятно, что проект завалил Вертер и нужно намного внимательнее смотреть на формальные требования.

Дальше началась отдельная история с форматированием. Где-то не был запущен clang-format, где-то проблемным оказался один файл, в другой раз код был отформатирован, но не с той конфигурацией, которая требовалась в задании. Один такой промах, и весь проект получал ноль.

Ещё пропустил первое групповое задание. Нужно было заранее записаться в команду, а сделать это вовремя не успел. Когда разобрался, присоединяться уже было поздно.

Зато появился единственный практически свободный день за весь бассейн. Предыдущее задание было закончено, следующее ещё не открылось, остальные занимались групповым проектом. Получилось остаться дома, спокойно разобраться с теорией и немного восстановить силы.

К концу первой недели из шести результатов зелёными были только три. Два первых и самых простых проекта плюс экзамен, который написал на 89%. Два индивидуальных проекта обнулил Вертер, первое групповое задание было пропущено.

А впереди оставалась ещё целая неделя в том же режиме.

В какой-то момент всерьёз подумал, может, хватит.

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

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

Иногда в заданиях были дополнительные части и можно было получить не 100%, а, например, 120%. Но если полтора дня доводить один проект до максимума, а потом Вертер обнулит его из-за какой-нибудь формальной ошибки, теряется не только этот проект, но и время на выполнение следующего.

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

Получалось примерно то же самое, что ещё на отборочной игре. Можно долго искать идеальное решение, только времени от этого больше не становится.

Результаты всё равно были неровными. Ещё два индивидуальных проекта обнулил Вертер, один набрал только 12%, второй экзамен закончился на 24%. Зато второй групповой проект прошёл на 91%.

За весь бассейн из 11 проектов, четыре зелёных и семь красных.

Бассейн оказался не только про код

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

Параллельно шёл рейтинг активности. Баллы можно было получать в том числе за проверки и проведение мероприятий. В какой-то момент появилась идея провести побольше проверок ради рейтинга, но при подсчёте обнаружилась проблема. PRP начинало накапливаться у одного человека, который физически не мог потратить столько на собственные проекты. Если несколько участников будут делать то же самое, а общее количество валюты при этом уменьшается, у остальных может возникнуть дефицит PRP для проверок.

Одну из своих обучающих лекций я как раз посвятил этой механике. Разобрали, почему массово собирать PRP у нескольких человек не очень полезно для всей группы. В нашем потоке до настоящего дефицита в итоге не дошло.

Сами мероприятия были отдельной частью жизни бассейна. Нужно было собрать от 5 человек и рассказать или показать им что-нибудь интересное. Темы были совершенно разными, от музыки и танцев до прыжков с парашютом.

Мне, естественно, проще было рассказывать про технические вещи. Кроме PRP проводил встречи про нейросети, программирование микроконтроллеров и 3D-печать. Для одной из них принёс оборудование и свой 3D-принтер, так что можно было не только поговорить, но и что-нибудь напечатать прямо на месте.

Вообще в активности группы участвовал довольно много. Проверки, помощь другим, лекции, обсуждения. И ближе к концу появилась ещё одна интересная механика, мы выбирали трёх героев и трёх антигероев бассейна.

Насколько это голосование влияло на итоговый отбор, я не знаю. Но сама идея хорошо показывает, что одними техническими результатами всё не ограничивалось. Героями обычно становились люди, которые помогали другим, делились информацией, что-то объясняли и вообще участвовали в общей жизни. Если две недели просто сидеть за своим компьютером и ни с кем не взаимодействовать, другим участникам вряд ли вообще придёт в голову назвать тебя героем.

При моих четырёх зелёных результатах из одиннадцати сложно не задумываться, сыграла ли такая активность какую-то роль в итоговом решении. Но критерии отбора нам не раскрывали, поэтому это остаётся только предположением.

Ещё под конец бассейна кураторы устроили обмен отзывами. У каждого был свой конверт с ником. Можно было написать другим ребятам несколько слов на стикере и положить им в конверт. Потом открываешь свой и читаешь всё, что тебе написали.

И вот это запомнилось очень хорошо.

Если сейчас вспоминать бассейн, сильнее всего вспоминаются даже не задачи и не Си, а люди.

Все очень разные по возрасту, опыту и своим историям, но при этом как будто на одной волне. Не просто случайные люди, которых посадили в один класс, а ребята, которым действительно интересно разбираться, учиться и что-то делать.

Мы две недели практически жили вместе. Утром встречались за чаем, потом разбегались по компьютерам, снова собирались, обсуждали, у кого что получилось и что опять не работает. Кто-то объяснял, кто-то просил помощи, кто-то рассказывал очередную историю.

Я давно так не смеялся, как на этом бассейне.

Все одновременно куда-то несутся, пытаются успеть, друг друга подхватывают, и тебя очень быстро затягивает внутрь. В обычной работе у меня такого ощущения почти не бывает.

Когда бассейн закончился, оставался один вопрос, поступил я вообще или нет. С четырьмя зелёными результатами из одиннадцати особой уверенности не было, свои шансы оценивал примерно как 50 на 50.

Через несколько дней пришло сообщение. Я поступил.

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

Но это уже тема для следующей статьи.

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

Но тут есть странное противоречие.

Если предложить просто ещё раз пройти бассейн, то нет, спасибо.

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

Потому что шёл туда за базой по программированию.

А запомнились в итоге люди.