• Stars
    star
    241
  • Rank 167,643 (Top 4 %)
  • Language
  • Created almost 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

FAQ Школы 21 для новичков

FAQ Школы 21 для новичков и не очень

Эта статья предназначена для тех, кто находится в Школе 21 недавно, и еще не успел наступить на дорожку из граблей. Так же это будет являться памяткой для студентов-олдфагов, которые что-либо упустили или забыли, но не хотят волновать токсичный Slack вопросами, которые кажутся дурацкими настоящим просветленным гуру.

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

Привет я подсяду? У меня в проекте PROJECT_NAME происходит PROBLEM. Не могу понять в чем дело. Пробовал гуглить по запросу SEARCH_REQUEST и SEARCH_REQUEST, почитал вот тут LINK и LINK, но не совсем понял, что значит QUOTE по этой LINK: ведь в man FUNCTION говорится X, у меня X, но почему-то не работает... Дебаггером прошелся, выходит, что на строчке N переменная VAR у меня становится VALUE, хотя я ожидал там ANOTHER_VALUE. Как думаете, откуда взялась ANOTHER_VALUE? Код в треде, система SYSTEM_NAME.

Этот документ составлен мной и другими студентами Школы 21, и носит рекомендательный характер. Ответы на все акутальные вопросы всегда можно найти здесь — 21-school.ru/adm, так же не забывайте про peer-to-peer. По вопросам, несостыковкам и ошибкам в FAQ пишите в Slack. Мой ник — swarner.

* — Некоторые разделы FAQ актуальны только для студентов 1-11 волн, обучающихся на платформе Intra. Такие разделы помечены звездочкой *.

Содержание

Вопросы, не связанные с технической стороной

Вопросы, связанные с технической стороной

Вопросы, не связанные с технической стороной

Удаленная сдача проектов в период карантина

  • Официальные правила сдачи и проверки проектов - ТУТ
  • Официальная информация, мануалы по настройке Windows, MacOS и Ubuntu, полезные бонусы для студентов Школы и правила Школы от ADM - ТУТ

Случайно поставил неверную оценку за проект/забыл прикрепить ссылку с видео

Помните! Если вы вдруг ошиблись с выставлением оценки за проект или забыли прикрепить ссылку с записью проверки, то из-за вас человеку придется заново сдавать проект, потому, что ни Bocal / Support, ни ADM больше не исправляют и не сбрасывают такие проверки.
Будьте внимательны и аккуратны с проверками, иначе вы очень сильно подпортите человеку нервы, заставляя его сдавать проект, тратя вновь кучу времени и усилий!

Вопросы о ТИЖах / Пенальти

Получил ТИЖ / Пенальти, что делать?

  1. Записаться в intra / edu на удобный вам день, кроме субботы и воскресенья.
  2. Подойти в назначенный день в ADM в 11:00 и получить задание.
  3. Отрабатывать ТИЖ / Пенальти .

Мне дали 2/4/8 часовой ТИЖ / Пенальти. Как это?

Администрация раздает ТИЖи / Пенальти в зависимости от тяжести проступков. В итоге вы можете отрабатывать 8 часовой ТИЖ / Пенальти, каждый день приходя в 11:00, выполняя задание по 2 часа в течение 4 дней.

Я записался на отработку ТИЖа / Пенальти, но не пришел. Что теперь?

За неявку на отработку администрация автоматически даст вам второй двухчасовой ТИЖ / Пенальти. Остается лишь корить себя за нерасторопность и идти отрабатывать.

Я записался на отработку, но теперь хочу перенести на другой день. Как быть?

Нужно писать в канал ADM в Slack и просить перенести отработку.

Сообщения в нашем Slack удаляются! Давайте переходить в {messenger_name}

Мы все прекрасно знаем, что сообщения в нашем слаке удаляются. Для того, чтобы история сохранялась, Школе необходимо платить весьма приличную сумму денег слаку (~100000$) из-за большого количества человек. Почему же мы продолжаем общаться в слаке? Потому, что это позиция администрации Школы. Если хотите, то можете попробовать переманить коммьюнити в другой мессенджер, но как показывает практика и многочисленные попытки новых студентов - это бесполезно :D

Как привести гостя в Школу

Переходим по ссылке — ТУТ и записываем гостя.
Помните основные правила — гость приходит максимум на час, везде ходит с сопровождающим и носит бейджик. Записывать гостя необходимо за день до его прибытия.
В выходные привести гостя нет возможности, потому что ADM присутствует в Школе только по будням.

Что делать, если заболел

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

Что делать, если что-то разлил/испачкал

Пишем в канал в Slack #help о случившемся, или подходим к уборщицам и просим убрать беспорядок.

Что делать, если сломался/не работает Mac

Пишем в канал в Slack #report о случившемся и пересаживаемся за другой компьютер

Забыл разлогиниться и теперь при попытке зайти в учетку выскакивает какая-то ошибка

Все очень просто. Нужно нажать кнопку "Terminate sessions" и все. Однако вероятно при этом у вас сбросятся настройки учетки и придется выставлять их заново, поэтому лучше всего не забывать разлогиниться.
Иногда после всего этого Intra начинает насчитывать вам время бесконечно и неправильно указывает за каким компьютером вы сидите. Решение также тривиально — пишем в #report и ждем пока исправят.

Обязательные педагогические встречи

Что делать, если я не могу прийти (работаю/не успеваю)?

К сожалению, приходить нужно обязательно. При неявке на встречу выдается ТИЖ / Пенальти.

У меня уважительная причина для неявки. Кому писать?

Пишем вашу причину в ADM или на почту и ждем ответа.

Как проверяют присутствие на встрече?

На входе стоит Face ID, который определяет по лицу кто и во сколько зашел в Школу. Если встреча проходит онлайн, присутствие на ней тоже учитывается.

Получение справки от Школы

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

Где получить вещи, купленные за Wallets / Coins

Приходим в ADM в рабочее время и просим выдать вашу покупку.

Как получить лицензию JetBrains (Clion, PyCharm и т.д.)

  1. Зайти на сайт JetBrains и создать аккаунт.
  2. Далее перейти по ссылке Apply for a free student or teacher license for educational purposes
  3. Нажать "Apply now".
  4. Ввести правильно все свои данные в форме. Email нужно указывать ваш школьный - [ваш ник]@student.21-school.ru.
  5. Ждать подтверждения на почте.

Пора делать резюме. С чего начать?

Полезные каналы в Slack

  • #chess_school21 — шахматный клуб.
  • #школьныйкофе — раз в неделю встречаемся с новым человеком и пьем кофе.
  • #мафия — мафия в московском кампусе.
  • #101км — здесь марафоны, полумарафоны и неравнодушные к бегу
  • #21entrepreneurs — клуб предпринимателей и стартапов
  • #21hackers — канал с хакатонами.
  • #21lectures — студенты пишут, кого хотят позвать в школу в качестве лектора.
  • #it_news — новости из мира IT, митапы, вебинары, хакатоны.
  • #born_to_code — канал по вопросам о проектах и коде.
  • #lab_moscow — канал робототехники в Москве.
  • #lab_kazan — канал робототехники в Казани.
  • #lab_news — новости из мира электроники и робототехники.
  • #coding_cups — контесты по программированию.
  • #kvartira — поиск жилья.
  • #datascience — канал дата саентистов.
  • #web — канал веб-разработчиков.
  • #school_life — обзор мероприятий и каналов.
  • #java — в основном Java SE.

Пришло сообщение о Blackhole*

Вы заходите в интру, а вам высвечивается ошибка "Blackhole". Это означает, что вы провалили французский дедлайн, где нужно получить 7 уровней за полгода. Но наша Школа живет по своим дедлайнам, так что волноваться не о чем. Просто нажимаем "продолжить игру". Но если вы не можете после зайти в интру и/или нажали "покинуть игру", то пишем в #report и просим разблокировать учетку.

Вопросы по норме кода*

Где найти актуальные правила нормы?

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

Можно ли использовать макросы?

Нельзя. Norminette и пиры не пропустят такие вещи как:

#define SUM(x, y) (x + y)

К тому же в подобных вещах абсолютно нет нужды. Просто создайте отдельную функцию.

Можно ли использовать глобальные или статик переменные?

Статические переменные используются без ограничений, глобальные с учётом обоснования (см. разд. II.1 Правил). Обратите внимание, что в некоторых проектах использование глобальных переменных прямо запрещено.
Необоснованное использование глобальной переменной: счётчики, переменная использованная в одной функции. Обоснованное использование: ссылка на структуру хранения, например, символьный буфер.

Можно ли использовать константы и структуры из библиотек limits.h или bool.h?

Можно. Если сомневаетесь, просто скопируйте исходный код себе в проект.

Как правильно оформить комментарий?

В теле функции комментарии не допускаются. Комментарии в стиле С99 - //, запрещены. (см. разд. II.11 Правил). Правильно оформленный комментарий выглядит так:

/*
** Текст комментария.
*/

Вопросы об экзаменах (Exam Rank 02-06)*

Во сколько и когда бывают экзамены?

По четвергам и субботам в 12:00 (МСК) и 15:00 (КЗН).

Как правильно залогинится на экзамене?

  • Приходим и логинимся с помощью учетки экзамена — exam:exam.
  • Далее заходим в терминал и пишем kinit [ваш логин] и вводим ваш пароль.
  • Ждем команды от экзаменаторов о начале экзамена и после в терминале пишем examshell.
  • Экзамен начался!

Нужно ли приводить к норме на экзамене?

Нет. На экзамене это не нужно.

Я все сделал верно, протестил, а Moulinette выдала 0!!!

Значит что-то неверно. Внимательно читайте трассировку от Moulinette (её пониманию очень поможет знание команды diff). Так же вероятно вы забыли скомпилировать с флагами -Wall -Werror -Wextra и не увидели скрытой ошибки. Впрочем, Moulinette — программный комплекс, и в нём тоже могут быть ошибки. Если считаете, что это именно ваш случай — можете попробовать оспорить в Bocal / Support.

Калькуляторы уровней и прочие полезности*

Вопросы, связанные с технической стороной

Coding WIKI*

Очень полезная notion страничка, которая содержит множество полезной учебной информации (лекции/гайды/инструкции/памятки).
Ссылка - Coding WIKI

GCC или Clang?*

Не забываем, что у нас в школе используется Clang, а не GCC (сделан алиас). Между ними присутствуют сильные разничия (в частности GCC строже при -Werror -Wall -Wextra). Так, что при работе на своей системе компилируем с помощью Clang.

Ошибка при клонировании репозитория (Permission denied (publickey))*

Не забываем выполнять действия из 21-school.ru/ssh:

  1. ssh-keygen -t rsa
  2. Три раза Enter
  3. cat ~/.ssh/id_rsa.pub
  4. Всё содержимое файла вставить в интру по ссылке https://profile.intra.42.fr/gitlab_users/new
  5. Должен быть включен школьный VPN.

Если проблема остается после всех вышеперечисленных действий, то обращаемся сначала к пирам. Если они не помогают, пишем в #report о проблеме.

Я настроил norminette по официальному гайду, но он продолжает не работать.*

Проверьте, записались ли настройки DNS сервера школы.
DNS - 192.168.50.130
Домены msk.21-school.ru

Например в linux в файле /etc/resolv.conf будут строчки:

nameserver 192.168.50.130
search msk.21-school.ru

IP школы для проверки:
IP vogsphere:

192.168.50.135

IP norminette:

192.168.50.133

Установка Oh-My-Zsh

Пишем в терминал и запускаем:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Установка HomeBrew на Mac

Пишем в терминал и запускаем:

curl -fsSL https://rawgit.com/kube/42homebrew/master/install.sh | zsh

Как проверять оставшееся место на школьном маке?

Учимся пользоваться стандартными командами терминала.

man du
man df

Кончилось место на маке. Как почистить кэш?

Вводим команды по очереди:

rm -rf ~/Library/Caches/*

rm -rf ~/Library/42_cache

rm -rf ~/Library/Application\ Support/Slack/Service\ Worker/CacheStorage/

rm -rf ~/Library/Application\ Support/Slack/Cache/

rm -rf ~/Library/Application\ Support/Slack/Code\ Cache/

Ликбез по устройству памяти компьютера и утечкам

Данный ликбез написан студентом школы 21 amatilda.
Он отвечает на самые распространенные вопросы о памяти и ее утечках.
Начинающим программистам и новым студентам школы 21 крайне рекоммендовано к прочтению и изучению.
Мануал можно найти - ТУТ

Установка valgrind для поиска утечек

Пишем в терминал и запускаем:

  • Устанавливаем HomeBrew:

curl -fsSL https://rawgit.com/kube/42homebrew/master/install.sh | zsh

  • Подключаем репозиторий:

brew tap LouisBrunner/valgrind

  • Устанавливаем valgrind:

brew install --HEAD LouisBrunner/valgrind/valgrind

Использование:

valgrind ./[ваш бинарник] [аргументы] --leak-check=full

Проверка на утечки в графическом проекте (FDF, Fract'ol и другие)

Проверить на утечки в проектах графики можно двумя способами.
Первый:

  1. Запускаем вашу программу
  2. В другом терминале пишем:

leaks [имя вашего бинарника]

Второй:

  1. Запускаем Xcode
  2. Вверху нажимаем на вкладку Xcode
  3. Ищем "Open Developer Tool" и нажимаем на "Instruments"
  4. Выбираем "Leaks"
  5. Нажимаем на кнопку с красным кругом и выбираем свой бинарник.
  6. Если нужны аргументы - пишем их в поле "Arguments".

Leaks: ошибка "Failed to gain authorization"

Если при попытке запуска инструмента Leaks возникает ошибка "Failed to gain authorization":

  1. Создайте файл прав с помощью права com.apple.security.get-task-allow:

% /usr/libexec/PlistBuddy -c "Add :com.apple.security.get-task-allow bool true" tmp.entitlements
File Doesn't Exist, Will Create: tmp.entitlements

  1. Подпишите свой код с помощью этих прав:

% codesign -s - --entitlements tmp.entitlements -f /path/to/tool
xxst: replacing existing signature

После этого Leaks успешно запустит вашу программу.
Решение найдено на форуме Apple Developer (ссылка на тред)

Настройка дебаггера в VSCode

  • Установите в VSCode расширение CodeLLDB
  • Не забудьте почитать Users Manual, там много интересного.

Или:

  • Берем и копируем конфигурацию из этого файла
  • Вставляем все вместо вашего файла launch.json, который лежит в .vscode
  • После у вас появится вверху кнопка "(lldb) Запустить"
  • Теперь вы можете дебажить ваш код :)

Вы можете поменять переменную ${workspaceFolderBasename} на имя вашего бинарника, если ваш бинарник называется не также как и папка.
Чтобы запускать программу с аргументами нужно в строчке - "args": [], в скобки вставить ваши аргументы.

Настройка CLion

Для корректной работы clion нужен аналог Makefile - CMakeList.txt. К счастью, clion умеет генерировать его автоматически.

  1. Нужно открыть clion и нажать - New CMake Project from sources.
  2. Откроется окно, где нужно будет выбрать папку проекта.
  3. Нажимаем окей в следующем окне, где clion предлагает выбрать файлы проекта.
  4. Clion готов к работе.

Если вам нужно запустить программу с аргументами:

  1. Нажимаем вверху на вкладку Run.
  2. Ищем Edit configurations и нажимаем.
  3. В поле Program arguments вписываем аргументы.

Сборник чекеров на проекты*

Чекер для 6 начальных проектов - 42FileChecker

Libft

libft-unit-test
Libftest
test-libft

Fillit

fillit_checker

Ft_printf

pft
printf-unit-test - 3,4 миллиона тестов
curqui_test

Push_swap

push_swap cheker (супер крутой чекер, сделанный студентом школы 21)
Визуализация push_swap

Lem-in

Lem-in-Checker
lem-in_test

Filler

filler_checker

Corewar

42-Corewar-Checker
unit-tests