Привет
Не так давно в рекламе узнал я о чудо-школе School 21. Первое впечатление от всего прочитанного сложилось замечательное. Никто тебя не трогает, дают задания, ты спокойно всё делаешь. Тут и работа в коллективе, и интересные знакомства, и 2 практики в крупнейших it компаниях страны, да плюсом все бесплатно с проживанием в общежитии (Казань). В общем, это был мой шанс! Сам я уже достаточно долго занимаюсь разработкой, работаю в небольшой it компании, занимаюсь как фронтом, так и бэком, проще говоря, что такое функция я знаю. Но на данным момент чувствуется определенный барьер. Иногда появляется кучу работы, иногда так много всего на изучение, что сложно за что-то взяться. Да и связи полезные завести было бы неплохо. Я твердо решил — нужно поступать.
Прошел онлайн тестирование, пригласили на встречу. Обо всем по порядку расскажу.
Для поступления нужно было пройти несколько этапов:
Первый этап: тестирование
Поначалу я думал, это самое сложное (кроме бассейна), ведь после этого идет видеоинтервью (о нем позже) и бассейн. Должны пройти лучшие (нет).
В тестировании 2 задания: первое на кратковременную память (на экране клетки меняют цвет, ты щелкаешь на них после того как погасли), длительность 10 мин. Второе на логику. Никаких инструкций, минимум букв, сам думаешь что делать. Я разобрался минут за 7-10. В целом, обладать высоким интеллектом для решения не нужно совершенно, а вот то что пригодится — умение долго думать над задачей и не опускать руки если не выходит. Длительность 2 часа.
Думаю так: если вы умеете читать статьи более чем на 5к символов (не просто пробегать глазами, а вдумчиво читать), вы пройдете. Если ваш удел — листать мемы с подписями на 3 буквы — может и у вас прокатит, судя по коллективу, сидящему на встрече и докладчику (об этом позже), шансы есть у каждого.
Второй этап: видеоинтервью
После всего этого, примерно, через сутки вам будет выслана информация о том прошли ли вы.
Хочу отступить на минуту. Скажите, есть ли тут те, кто не прошел первых этап? Могли бы вы рассказать что вы там такого делали? Сколько смогли пройти заданий? Мне реально интересно узнать.
Вас пригласят на видеоинтервью. Я надеялся, они выделят время на каждого ученика и будут задавать реально интересные вопросы о том что ты умеешь, чему хочешь научиться. Что есть на деле? А на деле, вы должны записать 6 видео с ответами на самые клишированные вопросы, что можно было придумать. Пройти можно как на пк, так и на телефоне, что является плюсом. Из минусов: Вы не можете перезаписать ответ, на прочтение и обдумывание вопроса дается ограниченное время (20-40 сек., точно не помню). Из-за чего может возникнуть ситуация, в которой вы не поняли вопрос, не смогли придумать ничего адекватного для ответа, вас отвлекли или ваш домашний птеродактиль уронил утюг. Все что угодно, вы не сможете перечитать вопрос, перезаписать ответ или просто поставить интервью на паузу. За то можно посмотреть ваши ответы после. А значит вы сможете знатно поржать над тем как ужасно вы получились, какую чушь несли и какие же там тупые вопросы, а вот и они (не знаю можно ли их заливать, но коль не хотите, не оставляйте к ним доступ):
Пожалуйста, представься. Сколько тебе лет, чем и где ты сейчас занимаешься?
Какие твои планы на 20** год?
Почему Школа 21? Какие твои ожидания от Школы?
Следующий вопрос был изменен для универсальности, но смысл передан верно.
Обучение в школе 21 будет проходить по твоему личному расписанию, но до старта тебе предстоит пройти 4-х недельный интенсив («бассейн») в N городе по обучению программирования. Он будет проходить во время Z в режиме full-time или X. Какой именно бассейн ты выберешь и как это сочетается с твоими личными планами?
Чем планируешь заняться после обучения в Школе 21?
Откуда узнал о Школе 21?
Делайте выводы сами, если это именно то что они хотят о вас узнать.
Вопросы могут отличаться, «интервью» проходило осенью 2019 года.
Мне не понятны все эти ограничения, но они есть, и есть, я думаю, для галочки. Если в них существует практический смысл — объясните его.
И снова, если кто не прошел это, что вы там на видео такое вытворяли?
Третий этап: Встреча
Бояться тут нечего. Вы уже из миллиарда «избранных», что прошли все эти «круги ада». Вас пригласят в выбранный вами город в назначенное вами время и дату (дается из списка), записаться нужно за 2 недели, места быстро расходятся. Если вы проживаете не в городе, в котором будет проходить собрание — поездку вам никто не оплатит, что уж говорить о квартире или отеле. Я, лично, сильно потратился так как ехать мне за 3х9 земель, да и для жизни пришлось снять квартиру на сутки (отель будет такой же ценой, но по удобству квартира во много раз лучше).
Внимание!
Все что дальше я буду писать касается именно моей встречи, на вашей встрече пончики могли раздавать, да на пони катать. У меня же было так.
Итак, вы пришли, вас будет ждать очень высокомерный и неприятный человек (у меня было так), который покажет, куда вам идти. Объяснять вам никто ничего не будет, думайте сами.
Вам выдается 3 документа на подпись: 2 экземпляра договора о поступлении, 1 соглашение о конфиденциальности (не помню, как точно называется, но суть ясна). Последний меня удивил. В договоре присутствует пункт о передачи ваших личных данных (ФИО, номера телефона, даты рождения и еще некоторой информации) третьим лицам без вашего ведома. И делать они, конечно, это могут. Так что будет интересно посмотреть когда там мне начнут названивать из банков с предложениями о кредитах и акциях. Так же, они будут иметь право использовать по своему усмотрению записи с камер, стоящих в зале, без предварительного уведомления вас. Критично ли все это? Для кого как. Лично для меня не приятно.
А вот с первым договором все совсем весело. По мимо банальности, вроде, компы не ломать, учиться, не гулять, есть свод правил, вот те, что меня сильно повеселили:
В особенности пункты, в которых они могут раздать ваши вещи и еду.
Так же присутствует пункт: «На территории запрещено все, что явно не разрешено».
Теперь о самой презентации. Представление состоит из: 89% о том какие они классные (вода), 10% ответ на вопросы, 1% о том что нам стоит ждать.
Судя по руслу, в которое вел ведущий, им было бы приятнее там видеть совсем нулевых господ, сильно меня рассмешила его фраза «Самоучкам у нас обычно сложно, они приходят, думая, что все знают и теряют время зря. Я вот пришел, ничего не зная, и прошел.» Первый вопрос, который у меня возник: а вы там не самоучек готовите?
Гордятся числом в 25% девушек (не знаю, что тут особенного).
Теперь о обучении, оно проходит полностью на языке Си, для меня это не является плюсом, скорее минус, было бы хорошо, если давали возможность выбирать язык для решения задач, но по какой-то причине учеников снова ограничивают. Обещают писать остальные проекты на других языках, об этом ни слова подробно сказано не было. Так же, держат в секрете весь план обучения (возможно, его просто нет), что странно. Это все что я могу рассказать, как я и сказал, о обучении будет ~ 1%.
Практику и правда обещают, на экране висели серьезные компании, вроде яндекса и сбера, но меня смутила одна история докладчика: нескольких парней на практике засунули на перебор бумажек, а не на работу с кодом, что подтолкнуло меня на мысль о том что компании серьезно не воспринимают выпускников / учеников школы, хотя в сберовских статьях обещали очередь из работодателей. А принимают их на практику потому что попросил Греф (имхо).
Аудитория. Как я понял по вопросам, на 90% состоит из тех, что Hello world не выводили, сам же рассказчик для проверки заданий аудитории задал вопрос: Что такое терминал? (у меня нет слов). Причину по которой они набирают совсем нулевых я найти не могу, сейчас есть достаточно ребят, которые что-то могут, хотят учиться, но не хотят идти в универ.
Общежитие!
Это важный пункт, который должны прочитать те, что хотят поступать из других городов / стран. К обитателям общаги отношение особенное. Вам придется проходить все испытания в разы быстрее (это обязательное условие, о котором было объявлено), держать долго вас там ни у кого нет желания. На бассейне, который буду проходить я, общежития не будет, на данный момент оно строится, увидеть планы общаги, посмотреть на зал для работы возможности нет. И снова все очень странно и сомнительно.
Как вы могли понять, после всего этого мой энтузиазм по поводу данного заведения пропал. Никакой информации о обучении, повышенные требования к приезжим, набор не по знаниям, а просто так, все это выдает желание неких людей заработать деньжат или очков похвалы от государства (я ничего не утверждаю), никого обучать там не собираются, а существовать эти курсы будут еще недолго. Пойду ли я на этот бассейн? Схожу, ничего не потеряю, но если я не прав, обрету. Если пост наберет положительные отзывы, напишу ещё статью о бассейне после посещения.
Не забывайте про вопросы, ответить постараюсь на все. Спасибо.
И да, это моя первая статья 🙂
Update: Нашел задания с разных бассейнов (можно примерно оценить, что будет ждать): клик
, а так же по запросу: pool 21
. Порекомендовал один из участников бассейна, спасибо ему за это.
Скорее всего, попав на эту статью, вы уже имеете представление о том, что такое школа 21, и что такое «бассейн» школы 21. Но если нет, то в помощь вам официальный сайт школы
, вот эти пару блогов: 42-21-school
, piscine_guide
мои видео на Youtube
и гугл 🙂
Что такое бассейн школы 21?
Это интенсивное обучение программированию в течение 4 недель, по результатам которого вас либо берут на основное обучение в школу, либо нет.
Критерии отбора
Школа не разглашает критериев отбора, и после поступления они тоже никому неизвестны. Можно лишь строить догадки, искать закономерности в результатах участников, которые в итоге поступили или не поступили. Советую вам не тратить на это время, пытаясь разгадать эту тайну — просто делайте все, что в ваших силах. Впитывайте максимум знаний, общайтесь с людьми и получайте удовольствие от процесса.
Мне кажется, смысл отборочного этапа как раз в том, чтобы посмотреть, как человек естественно себя ведет в незнакомой для него обстановке, в стрессовых ситуациях. Наверняка не зная, что нужно сделать, чтобы поступить, вам остается быть таким, какой вы есть.
Как успешно проплыть бассейн?
Когда слышу этот вопрос, то не могу дать однозначного ответа. Для меня успешное прохождение бассейна ≠ поступление в школу. Успешно пройти бассейн — это понять, что вам действительно нравится/не нравится программирование, это получить новые знания и прокачать свои скиллы, это приобрести невероятные знакомства, это запомнить эти 4 недели — как то прекрасное время, за которое вы многому научились.
И помните, «бассейн» — это не соревнование с другими людьми, кто лучше или хуже. Это проверка себя на прочность, соревнование с самим собой. Поэтому не сравнивайте себя с другими людьми, не пытайтесь прыгнуть выше головы. Поэтому если по итогу вы смогли измениться в лучшую сторону, то считайте, что «бассейн» вы проплыли успешно. И не важно, взяли по итогам вас в школу или нет.
Практические советы (как подготовиться)
Дисклеймер:
все нижеперечисленные рекомендации — лишь мое мнение о том, как качественно улучшить предстоящий опыт при минимальной подготовке. Это не значит, что я настоятельно рекомендую готовиться — шанс есть у каждого, в школу поступают как люди без знаний программирования вообще, так и с уже имеющимися знаниями. Просто мне кажется, что при минимальной подготовке будет легче усваивать новый материал. Это не гарантия того, что если следовать этим рекомендациям, вы точно пройдете в школу. Как я уже говорила, критерии отбора никому неизвестны. Курсы, которые я рекомендую, могут вам не подойти, — тогда просто поищите другие.
Если вы уже что-то читали про школу, то наверняка знаете, что обучение проходит на Mac Os, что вы будете изучать язык Си, а писать код в текстовом редакторе vim.
Самое главное, что я бы порекомендовала, — это изучить основы программирования — что такое переменная, функция, аргументы, и как это использовать.
Не просто знать определения, а практически понять, что это такое. Есть очень хороший курс от Гарвардского университета CS50x
, который сама неоднократно проходила, и всем советую его пройти. Если вы плохо знаете английский, то можете найти лекции на русском языке — просто погуглите 🙂 Но на сайте самого курса есть задания — поэтому не поленитесь их порешать, и не пытайтесь искать готовые решения, тогда от курса нет никакого смысла (и это касается любых курсов вообще).
Из концепций в языке Си, которые, как мне кажется, довольно сложно быстро освоить, это:
- указатели (или поинтеры, pointers)
- malloc (или работа с памятью)
- связные списки (linked lists)
Честно скажу, что на бассейне я практически не поняла тему связных списков (потом уже на основном обучении я восполнила пробелы в знаниях), а segfault у меня возникает и сейчас, спустя полгода работы с Си 😁
Что касается английского — все задания в школе будут на английском языке, экзамены тоже. Конечно, если вы читаете эту статью за месяц до бассейна — то тут английский уже не выучишь. Но вообще в будущем без английского — никуда. Так что если есть время, — учите английский. На английском в целом гораздо больше материалов по программированию, все мануалы написаны на английском. По своему опыту скажу, что многие ребята, с которыми я проходила бассейн, не знали английского вообще. Да, в некоторой степени им было сложнее. Но нет ничего невозможного 🙂
Если вы не знаете, что такое командная оболочка
(shell), то рекомендую про это хотя бы почитать и попрактиковаться в базовых командах (типа cd, pwd, rm, mv
и т.д.). Также понять, что такое git
, что такое commit
, что делает команда git add
, и зачем всегда нужно делать git push
. Есть прикольная обучалка в виде игры
по этим темам.
А также очень крутые курсы по всем этим трем инструментам:
Cейчас правда полная версия курса стала платной, но никто не мешает вам хорошенько погуглить.
Вообще умение гуглить — один из ключевых навыков программиста. В школьных инструкциях к заданиям даже написано: «Есть вопросы? Спроси соседа справа или соседа слева. Твое справочное пособие — это гугл / ман (мануал) / интернет.»
Не пренебрегайте этим навыком — без умения находить правильную нужную информацию вам будет непросто. Так что тренируйтесь 😉
Психология
Возможно, вам захочется остановиться на полпути, возможно, вы будете считать, что вокруг все умнее вас, а вы «тупой и ничего не умеете». Не сравнивайте себя с другими, как я уже говорила, это челлендж перед самим собой. Не врите. Особенно себе. Не думайте, что если вы поняли, как читать код, то сможете его написать. Если не можете объяснить код другому человеку — значит, вы сами не донца понимаете, что написали. Не спешите. Пробелы в одном концепте приведут еще к большим пробелам дальше.
И самое главное — люди. Не стесняйтесь просить о помощи, сами не жалейте времени на помощь другим. Используйте peer-to-peer по-максимуму! Ищите поддержку в людях, ищите ребят, с которыми вам комфортно учиться, общаться — я уверена, что в огромном количестве поступающих обязательно найдутся те люди, с которыми вам будет в кайф учиться, которые будут вас вдохновлять и вести вперед.
Напоследок хотелось бы добавить, что «бассейн» — это очень классный опыт, который стоит пережить. Я постаралась максимально без спойлеров рассказать обо всем самом важном, чтобы этот опыт оставался таким же уникальным, — все остальное вы сами узнаете на «бассейне». Удачи!
p.s.: на моем канале Youtube
есть видео, в которых я подвожу итоги недели моего бассейна.
Я также проходила бассейн в Париже, где каждый день снимала видео-дневники.
Есть один простой способ научить человека плавать: добираетесь с ним туда, где поглубже, и бросаете в воду. Эффективность может быть колоссальной. В 2013 году в Париже была открыта частная некоммерческая школа программирования L’Ecole 42 (Школа 42), использующая аналогичный подход. Отсутствие учителей и строгого учебного плана — лишь глубокий проектный омут с дедлайнами на дне. Аналогичные школы открыли в Калифорнии, Румынии, Южной Африке, Украине, и практически везде проект стал успешным.
В России при поддержке Сбербанка открывается «Школа 21», использующая такой же подход. И в этом посте мы расскажем о ней абстрактному скептику.
Студенты Школы 42. Фото San Francisco Chronicle
По общему описанию проект смахивает на еще одни онлайн-курсы, в чем разница?
Мы стараемся, чтобы «Школу 21» как можно меньше сравнивали с онлайн-обучением. По нашим сведениями, даже самые классные онлайн-курсы заканчивают всего 6% тех, кто когда-то начал первый урок. Мы позиционируем себя как офлайн-обучение с высокой степенью диджитализации и фундаментальным подходом.
У нас есть своя система обучения, но чтобы работать с ней, нужно находиться в школе, в нашем реальном помещении, за компьютером с доступом к этой системе. Это мотивирует студентов работать.
А почему вы думаете, что в таком офлайн-режиме будет заниматься много людей? У вас есть расписание, когда они должны приходить?
Никакого расписания у нас нет. Когда мы закончим строительство аудиторий в одном из районов Москвы — со спортзалом рядом, кухней и комнатами отдыха — там сможет работать одновременно до 500 учеников, в режиме 24/7. В аналогичной школе UNIT Factory на Украине учатся 755 студентов, и мы ожидаем не меньшего потока здесь. Так что вы всегда сможете найти, с кем в офлайне обсудить профессиональные вопросы. Это важная часть обучения. Студенты приходят в школу чтобы работать, они все время, так или иначе, сосредоточены на задании. Получается один большой хакатон с постоянным обменом знаниями, точками зрения, подходами. Это дает гораздо больше, чем может дать один преподаватель, даже самый умный.
Учитель не только дает знания, но и направляет учеников для дальнейшего развития. А что вы? Студенты вообще знают, что им делать с вашими заданиями?
Сориентироваться в гигантском объеме информации помогает то, что мы тщательно подходим к подаче заданий, постепенно наращивая их сложность. Задания сопровождаются минимальным набором справочных материалов, они лишь показывают, где начать поиски решений. Все остальное делают студенты. Бывает, что в задании ученику не понятно ни слова — а через день-два или даже пару часов все уже готово. Поиск информации, необходимой для решения задачи — важнейший скилл, который отрабатывается при обучении.
Если нет учителей, то кто все проверяет?
Помимо оценки проектов, для контроля знаний во время интенсивных погружений в материал предусмотрены 4-часовые экзамены. Финальный экзамен идет 8 часов. На этапе проектного обучения экзамен можно сдавать и пересдавать каждую неделю. Во время сдачи нельзя пользоваться интернетом и общаться с другими студентами. Экзамены содержат примерно такие же задания, что даются по ходу обучения, но предлагают чуть другой подход — это позволяет выявить, реально ли студент понял, как что работает.
Такая сложная внутренняя архитектура, объединенная с интранет-системой — основная фишка проекта. Перед тем как французские разработчики выпустили ее на рынок, они тестировали ее 12 лет. Сегодня результаты таковы, что по количеству заявок на поступление «Школа 42» соперничает с Гарвардом, а за ее выпускниками охотятся крупные технологические компании.
Прямо-таки за всеми выпускниками? Вы что, учите только модным языкам и технологиям
Список направлений в нашей школе большой: алгоритмы, графика, Unix, Web, мобильная разработка, безопасность, сетевые технологии. Для этого понадобятся знания в куче языков — C, C++, Swift, Java, PHP, JavaScript, Python, Ruby, OCaml и других. Все обучение поделено на 21 уровень, и вы не сможете пройти на следующий, пока не пройдете все необходимые этапы предыдущего. Таким образом, дойдя до финиша, ученик становится архитектором ИТ-решений, а не зацикливается на одном инструменте. Кстати, «Школа 21» названа так как раз потому, что для полного прохождения нужно преодолеть 21 уровень. И потому что она дает большой объем знаний, необходимый профессионалу в 21 веке.
Конечно, не все обязаны пройти все на максималках, но чтобы выбрать специализацию, необходимо достичь определенного прогресса. Обучение начинается с низкоуровневых языков. Студенты, которые имеют в активе только высокоуровневые языки, поначалу выступают против, но в конце концов остаются благодарны за то, что с такими заданиями к ним пришло понимание важных базовых вещей. Это помогает им планировать решение любых реальных проблем.
Студент Школы 42. Еще полгода назад он ничего не знал о программировании. Фото VentureBeat
И дорого ли обучаться в такой инновационной офлайн-школе?
Это бесплатно. Сейчас оставить заявку может любой человек в возрасте от 18 до 30 лет по состоянию на 1 ноября 2018 года. Сначала нужно пройти тестовые задания на память и логику. Потом — личную встречу с организаторами. И в финале самое интересное — «Бассейн»!
А это что такое?
«Бассейн» — это отборочный этап. 4 недели без выходных, по 10-14 часов в сутки — очень интенсивное обучение на реально сложном материале. По итогам «Бассейна» самые успешные и мотивированные зачисляются в «Школу 21». Если на время «Бассейна» нет возможности отложить все дела, то лучше не начинать.
Ну а после-то станет полегче?
Не то чтобы очень. Хотя здесь многое зависит от того, сколько лет вы готовы учиться — можно растянуть увлекательный процесс на срок примерно от 1,5 до 4 лет — это если как минимум 40 часов в неделю посвящать учебе. Меньше вряд ли получится, потому что проектов много, и они будут накладываться друг на друга в условиях жестких дедлайнов. Комбинируйте и выживайте.
Кстати, с некоторых пор Школу можно закончить не на 21 уровне, а уже на 16-м. Связано это с тем, что примерно на 14 уровне ученики уже достигают уровня уверенного разработчика, начинают параллельно зарабатывать на интересных проектах и отдают приоритет им. Если же до окончания «Школы 21» не было времени параллельно работать, то в итоге за плечами у вас все равно может быть около года опыта — он складывается из двух полугодовых стажировок, которые входят в план обучения.
Поиском мест для стажировки студенты занимаются самостоятельно. Но мы стараемся помогать с этим: привлекаем компании для совместных мероприятий, знакомим эти компании со студентами. Ну и, конечно, самых успешных приглашаем на стажировку в Сбербанк. Бывает, кстати, что на стажировке приходится работать с технологией, которой еще нет в активе студентов, и тогда им очень помогают навыки самостоятельной работы с информацией, полученные в «Школе 21».
Что есть, то есть. Поэтому дипломов государственного образца у нас не предусмотрено — выдаем только сертификаты «Школы 21» и французские аналоги от L’Ecole 42.
Подать заявку на вступительное онлайн-тестирование в «Школу 21» можно на официальном сайте — www.21-school.ru
. Для его прохождения нет установленных сроков. Примерно за месяц до каждого отборочного «Бассейна» участники, лучше остальных сдавшие тесты, получают приглашение на личную встречу.
Начальные тесты, для того чтобы попасть в бассейн
Примерно серию таких тестов вам надо будет пройти прежде чем вы попадете в бассейн. Советую их вам внимательно посмотреть.
https://youtube.com/watch?v=ShfKTzTxWxQ%3Ffeature%3Dplayer_embedded
https://youtube.com/watch?v=CllHZmcFOMU%3Ffeature%3Dplayer_embedded
https://youtube.com/watch?v=gCNINas9zZ4%3Ffeature%3Dplayer_embedded
https://youtube.com/watch?v=fHpPCXpsC2Q%3Ffeature%3Dplayer_embedded
https://youtube.com/watch?v=zsWwdRXhkjI%3Ffeature%3Dplayer_embedded
https://www.youtube.com/embed/IWU6hoSz95Q?feature=player_embedded
https://www.youtube.com/embed/9sAfJ4Q4W6A?feature=player_embedded
Популярные сообщения из этого блога
Проверка кода C online
По этим линкам можно быстро проверить свой код https://www.onlinegdb.com/online_c++_compiler 0 Справка по этому отладчику http://www.onlinegdb.com/blog/brief-guide-on-how-to-use-onlinegdb-debugger/ https://rextester.com/l/c_online_compiler_gcc 12 https://gcc.godbolt.org/ По этому адресу хороший визуальный оладчик http://www.pythontutor.com/visualize.html#mode=display
Пример правильного оформленя кода C по нормам школы 21
И так вы решили поступить в школу программирования 21. Отлично! Теперь что нужно длеать по шагам. И постарайтесь шагать не наступая на грабли 🙂 коих в школе очень много 🙂
И кстати очень рекомендую побольше почитать отзывов
и статей о школе программирования 21
. Чтобы вы вообще понимали куда идете
вернее плывете. И просмотрите все сообщения моего блога. Вы там найдете много интересного и полезного 😉 Возможно я что-то упустил и/или забыл, поэтому пишите коменты. Постараюсь дополнять блог по мере возможностей.
В заплыве вам значительно помогут:
- Знание английского, так как все задания в школе на этом языке
- Знание Git, хотя бы начальное
- Знание языка программирования Си
- Умение работать в командной строке Unix, Linux, Mac OS X
- Умение работать в Mac OS X (да да, винды вы там не увидите)
- Умение работать в текстовом редакторе VIM
По заявлениям школы программирования 21 все эти пункты не обязательные. И это так, но их знание очень упростит вам плавание в бассейне школы программирования 21.
В общем пошагали 🙂 вернее поплыли 🙂
. После регистрации вам нужно будет пройти тесты прямо на сайте школы. Тесты выглядят примерно вот так
. Вам могут попасться тесты такие как на видео по ссылке которую я привел, но могут быть и другие. В школе программирования 21 очень много сюрпризов, ну и время не стоит на месте, вам всегда заботливо подбросят новых граблей.
. Если вы успешно прошли тесты, то вам предложат пройти видео интервью. В котором, вы должны будете записать видео где расскажите о себе и о том почему хотите поступить в школу программирования 21. Говорите все честно как есть. Не пытайтесь и себя что-то строить. Видеоинтервью будете записывать прямо на сайте школы программирования 21.
. Если вы прошли видеинтервью то вас пригласят на личную встречу на которой вам расскажут о школе программирования 21, правилах поведения в ней и после этого вас пригласят подписать предварительный договор и ознакомиться с основным договором.
На встречу надо приходить обязательно. Иначе вы не попадете в бассейн. О вы до сих пор не знаете что такое бассейн школы программирования 21
? Самое время почитать об этом в сети.
. После подписания предварительного договора, в котором будет указана дата начала бассейна, вы отправляетесь домой в предвкушении замечательного плавания. Надеюсь оно так у вас и будет 🙂 В любом случае опыт будет не забываемый.
Еще раз прочитайте правила поведения в школе программирования 21
и ее устав
. Это очень полезно, дабы в будущем не нарваться на TIJ
, а то и на вылет из школы.
Далее на внутреннем сайте вы сможете следить за тем когда начнется ваш бассейн.
По идее вам должно прийти письмо в пятницу перед понедельником когда начнется бассейн, где будет назначено время первой встречи перед началом бассейна, то есть в понедельник. Следите за ящиком чтобы не пропустить это письмо.
Ну а дальше начинается самое интересное – это бассейн школы программирования 21, детка!
Перед бассейном еще раз настоятельно рекомендую прочитать вот этот блог весь
. Может быть не все будет понятно, но кое-что я буду разъяснять ниже в этой статье. Жаль что я его не прочитал когда попал в бассейн. Хотя если бы и прочитал, то возможно бы и не все понял. Но для будущих пловцов я составляю эту карту для навигации и выживания в бассейне школы программирования 21. Надеюсь у меня получится сделать это более подробно и доходчиво.
Прежде чем открыть ссылку DAY 00 запомните, что в бассейне школы 21 все направлено на то чтобы создать для вас стрессовую ситуацию! Это делается специально. За вами наблюдают, ваше поведение оценивают. Так же помните что среди пловцов бассейна есть засланные казачки, то есть студенты с основного курса обучения. Ху из ху вы не знаете. Кроме того все вводимое вами в терминале записывается и отсылается на сервер школы
. Поэтому чтобы не входить в стресс следуйте следующим правилам:
. Не сидите допоздна. Ни какая школа не стоит вашего здоровья. Тем более что вам нужен трезвый отдохнувший мозг чтобы решать задания. Уходите из школы максимум в 20:00, как бы вам не хотелось посидеть еще чуть чуть в школе. Ложитесь спать не позднее 22:00. Приезжайте в школу к 9 утра отдохнувшим. Не позволяйте себя втянуть в цейтнот и депрессию.
. Не переживайте если что-то не успеваете
. Когда получаете задание просмотрите сперва все задания. Сделайте те что вам кажутся самими легкими, затем беритесь за те что посложнее, НО ВСЕГДА ВЫПОЛНЯЙТЕ ПЕРВОЕ ЗАДАНИЕ
, так как если вы его не сделаете или сделаете не правильно, то все остальные, даже если они будут сделаны правильно не засчитываются.
3. Пейте воду.
Отодвинувшись от стола на метр или больше.
4. Кушайте вовремя.
В это время вы отдыхаете и ваш мозг тоже. Есть лучше что-нибудь легкое, чтобы вас потом не тянуло в сон.
5. Общайтесь с пирами
и не только о коде, вообще общайтесь это расслабляет и помогает.
6. Шутите 🙂
но так чтобы не лишиться этого права.
FAQ школы
. Это снимет много проблем.
8. Пейте каждый день какой-нибудь антипростудный БАД или витамин.
Так как многие будут заболевать из-за стресса, то хоть они и будут приходить в масках (про правилам школы), это мало уменьшает шанс того что вы тоже не заболеете. Так как студенты все ходят чтобы проверять друг друга, то подхватить вирус становится очень легко.
9. Создайте расписание
в котором вы будете видеть время начала и завершения проектов.
А вот и немного вдохновляющей информации от не утопших в одном из прошлых заплывов
Из тех, кто доплыл, двое добрались до берегов с нулем баллов. Я снимаю
шляпу перед ними, их мужество и настойчивость достойны уважения.
Еще у шестерых не было ни одного зеленого дня и еще у двенадцати ни
одного балла на экзаменах. Еще пятеро без зеленых экзаменов. Еще шесть
человек с зелеными экзаменами, но также получившие ноль на последнем.
Мое личное мнение, что ваши баллы абсолютно неважны
. Главное –
это ваше собственное упорство и желание прогресса. Даже статистически
произошедшее можно счесть за “выброс” из данных и тут напрашивается
вывод, что просто что-то не вышло механически, и это не показывает, что
вы ничего не знаете.
Поэтому гребите до конца!
tl;dr day07 – 80/100, day09 – мемный марафон из всяких прикольных тасков, exam01 – 90/100; убеждаемся, что хоть что-то понимаем.
Вообще, с оценки за седьмой день серьезно подгорает, ибо это был тот самый случай, когда я очень внимательно прочёл условия задачи и сделал именно то, что требовалось. Человек, который писал тесты, сделал другое.
В задании нужно было разделить строку по массиву символов разделителей и вывести те куски, что находятся _между_ символами разделителей. То есть из строки “aaacbbbcddd” при разделителе “c” нужно нужно вывести только “bbb”. А в тестах выводится “aaa”, “bbb” и “ddd” – будто бы начало и конец строки тоже разделители.
В бокале висела странная тишина, ибо хотя бы сегодня с вопросом к тестам я был, определенно, прав. Тесты, оказалось, изменить нельзя (как и текст задания), так как они приходят от французов.
Пожав плечами ¯\_(ツ)_/¯, я пошел и открыл тикет с претензией к deepthought (система автоматического тестирования, которая и гоняет Муллинету). На него автоматически закрепило пять совершенно незнакомых мне пользователей. Посмотрим что будет дальше.
С девятым днём, вообще, случился прикол. Оказалось, что репозиторий для отправления заданий один для всех тасков. И он открыт для записи. Так я просто попросил адреса всех тасков и начал их делать. Уж не знаю, сочтется ли это за читы и дадут ли мне -42 балла, но я ни о не жалею.
Научился делать неудаляемые, нередактируемые файлы (`rm -f file.txt` -> не удален). Узнал о мемной последовательности сходящейся к единице (если четное, делим на два; иначе умножаем на три и прибавляем единицу). Написал shell script, который выводит кусок текста в python file и запускает его 😅.
В другом задании надо было написать `itoa`. Написал идеально, потестил, отправил, failure и таск меняется на другой с потерей пяти баллов. Я не проверил ноль! Ноль меня преследует уже дня три! За что?! Так моя программа ничего не выводила при нуле, а должна была завести строку с нулем.
Впереди rush01, где нужен решатель судоку, и сольное задание на выходные, что поиск совпадения по строке с заменой “*” на любые символы.
Я чувствую себя гораздо лучше и, видимо, почти выздоровел. Возможно, на это позитивно повлиял хороший результат на экзамене.
Уже более года назад я принял участие в отборочных испытаниях (там это называют Бассейном) Школы 21
от Сбербанка!
Для тех кто не знает, Школа 21
это Школа программирования, в который каждый может проучиться и стать Программистом, с одним лишь НО, надо успешно пройти Бассейн, иначе дальше не возьмут)
Вот именно о том, как подготовиться к поступлению и что нужно для успешного прохождения Бассейна, я бы хотел рассказать в этой статьей. Пусть для новичков это будет неким гайдом по успешному прохождению🔥
Как проходит обучение в Школе 21 от Сбера
Все обучение в Школе 21 можно разделить на два этапа:
- Прохождение Бассейна;
- Основное обучение в Школе 21 длительностью 1,5 – 3 года в зависимости от направления и вашего темпа учебы.
Сразу хочу рассказать о формате обучения, он тут отличается от того как это происходит в университете, тут нету привычных лекций, практик и преподавателей! По факту вам будут давать задания, а для его успешного выполнения вы будете самостоятельно изучать материалы в интернете. На каждое задание вам дается время (дедлайны) за которое вы должны его сделать и сдать. Все задания проверяются такими же студентами как вы, проверки осуществляются по заданному чек листу.
Бассейн длится 4 недели без выходных и отдыха. В рамках бассейна Вам будут давать задания на знания git, bash, языка программирования Си. Новые задания открываются каждый день независимо от того сдали ли вы предыдущие, на выполнение задание вам дадут 2 дня, по истечении которых доступ к заданиям закрывают. По выходным вас ждут групповые занятия, рандомно формируются команды для коллективной работы над проектом, среди таких проектов у меня было: игра пин-бол, игра жизнь! По пт проходит экзамен, на котором ничем нельзя будет пользоваться, даже интернетом, за нарушение правил могут выгнать, правда об этом вы узнаете только по окончании бассейна.
После окончания бассейна результатов придется ждать 1-2 месяца, после чего вам придет сообщение на почту, где вас либо пригласят на основное обучение, либо скажут, что вы не подходите.
Направление вы сможете выбрать только на основном обучении, поэтому Вам в любом случае придется разобраться с языком Программирования Си.
Как успешно пройти бассейн в Школе 21
Ключом к успешному прохождению бассейна в Школе 21 является подготовка! Несмотря на то, что на сайте школы написано, что обучение подходит для новичков с нуля это не так. Задания действительно сложные, а от объема нового материала через 2 недели начинает болеть голова.
Что необходимо знать перед прохождением бассейна:
- Все обучение происходит на Mac, поэтому будет очень хорошо, если вы хоть немного разберетесь как работать с Mac os;
- Разобраться с системой контроля версий Git;
- Почитать про Терминал и как с ним работать;
- Почитать про написание простых скриптов bash;
- Разобраться с языком программирования Си (желательно пройти парочку бесплатных курсов).
Список материалов, которые помогут Вам при подготовке к бассейну
- Github
репозиторий для подготовки к бассейну; - Github
репозиторий с заданиями прошлых лет; - Игра
ping-pong на Си; - Бесплатный курс
по знакомству с консолью и работа в ней; - Бесплатный курс
по знакомству с gitи работа с ним; - Бесплатный курс
по изучению языкапрограммирования Си и ответы
к нему.
На моем YouTube канале я записывал 3 ролика на эту тему, рекомендую тоже ознакомиться!
Во втором дне (day02) началось программирование на C.
Да, нет. Давайте гореть вместе.
Начну с нашего внутренного линтера, великолепной Норминетты ( norminnete
). Она, в целом, довольно точно указывает на несовпадения кода указанному стандарту, однако в моем случае она внезапно отказалась воспринимать стандартный заголовок в кодовом файле. Да, нам нужно указывать красивый свег заголовок в каждом файле, создает он автоматически при помощи vim
или emacs
и все бы ничего, но Норминнета упорно заявляла, что заголовка в моих файлах нет. Сорок минут ушло на то, чтобы понять, что дело в том, что у меня вместо email указано /var/log/mail
, тогда как у 99% остальных участников там указан какой-то внутренний email школы (причем у всех одинаковый). Предположительно, случилось это из-за того, что в нулевой день я решил, после выполнения задания на отправку письма, перестраховаться и отправить его еще из консоли, при помощи sendmail
. Очередное горе от ума?
i;
i = ;
(i < )
{
i++;
}
везде стало превращаться в
i;
i = -
(++i < )
{
}
А дальше там вложенные циклы, дополнительные условия и прочее. В результате этого код, как бы, перестал следовать Норму (название нашего code style), так как стал запутанным и плохо читаемым, зато прошел проверку Норминеттой.
Когда я стал делать задание последнего дня, я понял, что невозможно уместить этот код в 25 строк и решил, что сделаю его при помощи дополнительных функциё и буду таков. Пусть его не засчитают, зато я его решу. Дальше было часа четыре размышлений как решить задачу, закончившиеся эврикой после стояния у доски с маркером. Стоять у доски с маркером, вообще, очень полезно. Код написан, вывод верный, красота.
Решил я, однако, перечитать Норм и внезапно обнаружил в нем, что мы не можем использовать больше 5 функций на один C файл. “¯\ (ツ)
/¯”, – подумал я, и пошел переписывать все предыдущие задания с целью удобочитаемости.
Также где-то в середине ночи была забавная сессия объяснения вложенных циклов на основе парня, который хочет скосить траву на футбольном поле, также мы веселились с INT_MIN
, также мы просто веселились всяким юморескам.
Не до смеха стало, правда, в тот момент, когда стало не ясно нужно ли оставить в коде для сдачи декларацию внешних функций или нет. Мое мнение за оставление было такое – мы не знаем в каком порядке подключаются файлы для компиляции и, соответственно, должны оставить декларацию внешних функций, чтобы компиляция не зафейлилась в случае, если наш файл подключается первым (или еще чего-нибудь там, gcc
, я в тебе не силен). Также при компиляции обрезанного файла (согласно указаниям мы должны отдавать на проверку файл, который просто не компилится, в нем нет main()
), если оставить декларацию, то произойдет ошибка времени линковки, а если убрать, то ошибка времени компиляции, и второе кажется гораздо хуже, чем первое. Мнение против – опять горе от ума, делают то, о чем нигде особо не сказано.
В целом, вторым днем я доволен, последнее задание заставило реально подумать над алгоритмом. Идем дальше.
Третий день (day03) был посвящен указателям.
Мне нечего особо сказать про указатели, ибо я ними более-менее разобрался когда мне это было надо. Единственное, что я забыл, так это то, как поменять местами данные по двум указателям. У меня почему-то постоянно вылетает из головы то, что надо менять местами разименованные указатели. Что ж, надеюсь теперь это я запомнил.
Также смешно было то, что когда пришли люди на третий день с утра и попросили дать наводку на последнее задание дня второго, я смог объяснить ключевую идею итерации массива по номеру позиции с оффсетом, но объяснить свой код, я не смог. Чем дольше я на него смотрел, тем меньше я понимал, что я написал и почему оно работает. Мы полезли дебажитьт это дело и оказалось, что я совершенно случайно вместо простой проверки условия в нужном месте написал сложный и странный гейт, который открывался, когда менялся номер позиции в массиве, и закрывался, когда накапливал в себе достаточно массы (однако это было неважно, потому что он после открытия редактировал данные в треш-регионе массива
).
Черт знает, смогу ли я донести принцип работы этого магического кода до проверяющего, но он прекрасен в своей непонятности. Те, кто спишут его, уж точно не смогут. Так что вот вам листинг
, а я поеду в школу, сегодня у нас там экзамен.
Получить 10 баллов за второй день (day02) из-за непереименованной функции – умею, практикую, * dabs
*.
Экзамен (Exam00)
Большую часть правил проведения обсуждать, я думаю, нет никакого смысла, они жовольно жесткие, но, очевидно, позволяют сделать экзамен максимально “честным” – у тебя реально проверяют, что ты запомнил
. Если же ты делал записи и заметки, взять их с собой ты не можешь. Это, как по мне, очень спорный момент для людей, который обучаются как раз через заметки и лекции и потом при помощи них могут сделать все необходимое.
Экзамен сдается в достаточно приятно манере общения с текстовыми файлами в твоей домашней директории. Задания падают в ~/subjects
, сдавать все надо в git ~/rendu
, логи проверки падают в ~/traces
. Читаем задание, пишем код, пушим мастер, просим консоль нас проверить замечательной командой grademe
, получаем результат проверки в папку логов и либо баллы, либо другой таск, так как предыдущий считается проваленным. Тестировать свой код локально никто не запрещает.
Через полчаса терминал выплюнул мне ваш балл 100/100,
перелогинтесь
выходите из сессии, для вас экзамен закончен. Я не ожидал такого и почему-то считал, что можно каким-то образом получить 120/100 (наверное, потому что в веб-интерфейсе во всех днях и заданиях график баллов размечен от 0 до 120 и никто никогда эти 120 не получил). Встал, дождался студента, ко мне подошла девушка и сказала: “Все, твои попытки кончились, можешь идти”. Спишем это на то, что ей, вероятно, приходилось объяснять эту же строчку людям, кто зафейлил первый же таск на количестве попыток сдачи.
Четвертый день (day04)
Посмотрим сегодня, что скажет мне Мулинетта (система автоматической проверки).
Задание выходных на группу (rush00)
Састантуа
Пожалуй, стоит прочитать “Автостопом по галактике”.
В задании тебе дают бинарник, что принимает на вход цифру и стоит пирамидку определенной формы. Необходимо написать программу с идентичным поведением.
Конечно же, сразу появилось предложение реверснуть бинарник и сдать это. Я же ждал пока откроется на сдачу третий день (day03), но он забаговал и “не закрылся”, из-за чего нельзя было защищаться и можно было пушить в Вогсферу решения заданий, хотя вебсайт и показывал, что день закончился.
Так где-то в середине ночи я психанул и решил, что сидеть просто так уже надоело и, пожалуй, можно нарисовать пирамидку. Все, что происходило вкратце описывает следующий скриншот:
После написанного красивого кода в семь разных функций, я столкнулся с нашей старой знакомой – Норминеттой. Она была очень расстроена тем, что функций у меня было семь, так как пять является максимум по Норму. Что ж, время уродовать код! Двуся глобальными переменными спустя и тремя очень интересными while
циклами, я удожился в пять функций по двадцать пять строк. Вывод моей программы и бинарника совпадал и настало время пушить это в гит.
Так у меня сталы выполнены все задания на выходные и мне осталось лишь ждать открышихся проверок. Довольный, я наконец-то выспался. Десять часов сна давно не видались. Что интересно спал я двумя слотами по пять часов, так что, видимо, внутренние циклы организма сбиты к чертям. Еще стало очевидно, что надо пить горадо больше воды и кушать таки каждые четыре часа, иначе можно и не дожить до конца Бассейна.