Сообщения

Сообщения за 2019

Сроки завершения уровней основного обучения.

Изображение

Ответы по результатам бассейна

Изображение
13 августа стали приходить письма с результатами бассейна. Всего их три типа: 1) Ты принят на основное обучение!   2) Нам надо подумать...   3) Извини но нет :(

Как выглядит examshell школы программирования 21 (42)

Изображение
Все эти скрины взяты из видео из предыдущего поста. Там снимали часть на экзамене. Очень рекомендую посмотреть внимательно это видео, чтобы для вас examshell не был чем-то не понятным.

Видео от студентов с основного обучения в школе программирования 21

Изображение

Немного про финальный экзамен в школе программирования 21

Изображение

О программе основного обучения

Изображение

Интересное видео о школе программирования 21

Изображение

ДЕНЬ 1. Он же Day 00 :)

Изображение
В первый день вы получите два аккаунта. Один это логин и пароль  в Slack, другой это логин и пароль в интру школы 42. Ага школы 42, я надеюсь вы уже в курсе почему школы 42, вам это должны были разъяснить на личной встрече. А если у вас еще этой встречи не было и вы читаете мой блог заблаговременно перед поступлением в школу, то вкратце могу сказать что школа программирования 21 от сбербанка это франшиза французской школы программирования 42 . И так еще раз по порядку: 1. Slack - тут вы будете общаться с пирами, то есть с друзьями товарищами по бассейну, а так же с администрацией школы. Это просто групповой чат . В слеке есть гурппы bocal и adm. Так вот в бокал писать только по техническим  проблемам . Например комп завис, перезагрузился, мышь не работает и тд и тп. По административным и бытовым проблемам это в адм , вода закончилась на кухне, холодно в кластере, жарко в кластере, открыть окно, закрыт окно, привести гостя и тд и тп. Не путайте эти два канала, иначе вылетите из б

Правила школы программирования 21

Правила Школы 21 0. Введение Цель этой главы очертить права и обязанности пользователей Школы 21, также называемой школой в представленном документе, IT ресурсах. Под пользователями мы подразумеваем тех, кто получил доступ к IT оборудованию как к части его взаимодействия со школой. Приведенная глава не заменяет обязательства по соблюдению закона. 1. Область применимости Эта глава относится ко всем людям, вне зависимости от их статуса, имеющим доступ к IT оборудованию Школы 21. 2. IT оборудование Под IT оборудованием понимается: Рабочие станции Серверы Проводные сети Беспроводные сети Настоящая глава применяется к описанию взаимодействия с IT оборудованием организации, вне зависимости от того как происходит взаимодействие - через внешний канал связи или через внутреннюю сеть школы Эта глава применима к использованию личных устройств в беспроводной сети школы. 3. Пользователи 1. Идентификация Идентификация проводится с использованием логина связанного

Устав школы программирования 21

#CodingTime? НАЗВАНИЕ Школа 21. КРАТКОЕ СОДЕРЖАНИЕ 21 как стиль жизни. ОПИСАНИЕ Юмор. Усердие. Страсть. Нестандартное мышление. Готовность к обучению по инновационной методологии. Это те качества, которые Школа 21 ждет от своих последователей. Мы готовим профессионалов нового поколения. Прежде чем ты займешься делом всей своей жизни, необходимо усердно работать… Используя экстраординарные подходы к обучению и программированию, Школа 21 подготовит тебя к самым каверзным задачам в передовых инновационных компаниях. Глубокие и высокопрофессиональные знания программирования - цель, которую мы преследуем. Какие обязательства ты должен взять на себя для успешного обучения в Школе 21? Просто прочитай Мануал! МОИ ПЕРСОНАЛЬНЫЕ ОБЯЗАННОСТИ Ты должен тратить не менее 50 часов в неделю на обучение (более, чем 8 часов 6 дней в неделю). Главная цель Школы 21 - за период от 1,5 до 4 лет сделать из тебя высококвалифицированного профессионала своей области. Для этого тебе

Holy Graph 42 Карта проектов школы программирования 21

Изображение
   Большая часть проектов на карте     Как можно заметить карта Holy Graph постоянно меняется, так как видимо курс самого обучения постоянно меняется, добавляются новые ветки, возможно убираются или модифицируются старые ветки.

Как не наступить на грабли на экзаменах!

Запомните святые заклинания на экзаменах! Прежде чем сделать grademe! git add . git commit git push Очень многие валятся на том, что хоть и пишут задание но забывают сделать git push. Если вы это не сделаете, то мулинету будет нечего проверять и результате 0 баллов! Кроме того, у вас есть ТОЛЬКО ОДНА ПОПЫТКА сделать grademe , то есть проверить каждое задание на экзамене. Поэтому сто раз проверьте работу вашего когда и то, что вы сделали git push . Четко различайте когда нужно написать функцию, а когда программу. Внимательно читайте задания и тесты к ним, и так же дополнительные тесты если они есть к зданию. Всегда компилируйте gcc -Wall -Wextra -Werror ! Как только вы сделали grademe , после проверки вы сразу получаете новое задание! На этом тоже валились многие, так как думали что можно два раза отправлять одно задание на проверку. И не злите смотрителей на экзамене! Они тоже люди и выполняют свое задание. Если встали и стоят у вас за спино

Советы для решения задач на экзамене.

  1. Не стесняйтесь писать код в лоб,   не бойтесь "костылей" и "велосипедов" на экзамене. Помните, преждевременные оптимизации - корень всех зол. Если будет время, то оптимизруйте код, но когда задача сложная то лучше написать ее возможно тупо но правильно, чем круто, но неправильно.  2. Придумывайте хорошие имена для переменных. Это поможет вам лучше понять что происходит когда вы будете искать ошибки и неточности.   3. Не ленитесь нарисовать что происходит в коде. Это очень помогает. Также можете попробовать писать на бумаге псевдокод, в потом уже приступать к решению задачи   4. Проговаривайте что вы делайте При этом будьте точнее с понятиями. Почему это важно:   вы должны четко знать что у вас находится в каждой переменной каждый момент времени и знать что   именно к вам приходит на вход функции: указатель на char, char или строка(последний символ - '\0')   5. Всегда компилируйте gcc -Wall -Wextra -Werror !   6. Всегда тестируйте св

Правила финального экзамена школы программирования 21

FINAL EXAM IS COMING   Поздравляем всех, кто доплыл до этого момента. Остался последний, пожалуй, самый сложный рывок и снова настанет уже непривычная для многих спокойная жизнь. Чтобы финальный экзамен прошел как можно более предсказуемо и спокойно для вас, мы подготовили небольшой cheatsheet.   По времени:   1) Все кластеры должны быть свободны в 8:00 пятницы. С 9:20 до 10:00 можно будет пройти и занять место. Не опаздывайте на финальный экзамен , так как при опоздании даже на секунду кураторы не пропустят вас к своему месту.   По перемещениям: 2) Вход и выход осуществляется через левые турникеты (как обычно), пройдя через которые, вы незамедлительно поднимаетесь на третий этаж в кластеры.   3) Перед экзаменом настоятельно рекомендуем вам воспользоваться уборной. Находиться в любых других помещениях (в коридорах, на кухне, etc.) без разрешения кураторов экзамена ЗАПРЕЩЕНО. После окончания экзамена вы также можете воспользоваться уборной, после чего нужно будет забр

TIJелая жизнь участников бассейна!

Изображение

Немного про экзамены в школе программирования 21

Изображение

Выдержки из официальных документов школы программирования 21

Изображение

В школе программирования 21 сперциально создают стрессовые ситуации

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

Как быстро разобраться с указателями в Си

Пример для понимания работы malloc и указателей Идете на сайт http://www.pythontutor.com/visualize.html#mode=edit 198 И вводите следующий код:   #include <stdlib.h> int * newarray ( int array_size ) { int i ; i = 0 ; int * ar ; ar = malloc ( sizeof ( * ar ) * array_size ); if ( ! ar ) return ( 0 ); while ( i < array_size ) { ar [ i ] = i + 1 ; i ++ ; } return ( ar ); } int main () { int array_size ; int * pa ; array_size = 5 ; pa = newarray ( array_size ); return ( 0 ); }

Проверка скорости работы BSQ

// Чтобы измерить скорость работы вашей программы, добавьте в header main.c #include <time.h> #include <stdio.h> // В начале вашего main() добавьте: clock_t tic = clock (); // в конце main() перед return (0) добавьте: clock_t toc = clock (); printf ( "Elapsed: %f seconds \n " , ( double )( toc - tic ) / CLOCKS_PER_SEC ); // Не забудьте удалить эти данные, когда будете пушить программу на проверку мулинету!    

Скрипт генерации карт для BSQ

#!/usr/bin/perl use warnings ; use strict ; die "program x y density" unless ( scalar ( @ARGV ) == 6 ); my ( $x , $y , $density , $e , $o , $f ) = @ARGV ; print "$y" ; print "$e" ; print "$o" ; print "$f" ; print "\n" ; for ( my $i = 0 ; $i < $y ; $i ++ ) { for ( my $j = 0 ; $j < $x ; $j ++ ) { if ( int ( rand ( $y ) * 2 ) < $density ) { print "$o" ; } else { print "$e" ; } } print "\n" ; }   использование   ./mymapgen.pl 10 10 3 x _ .

Перевод задания BSQ

Глава II Тема Самый большой квадрат: ◦ Цель этого проекта - найти самый большой квадрат на карте, избегая препятствий. ◦ Вам будет предоставлен файл, содержащий карту. Он должен быть принят вашей программой как аргумент. ◦ Первая строка карты содержит информацию о том, как читать карту : Количество линий на карте; Символ ”пустоты"; Символ "препятствия"; Символ “залит”. ◦ Карта состоит из символов "пустоты", линий и символов "препятствий". ◦ Цель программы - заменить символы "пустоты" на “залитые” символы для того, чтобы представить самый большой квадрат. ◦ В случае, если существует более одного решения, мы выбираем сначала тот квадрат, что ближе к верхнему, затем тот, что ближе к левому краю карты. Критерии валидности карты: ◦ Все линии карты должны иметь одинаковую длину. ◦ Хотя бы одна линия должна содержать хотя бы одну клетку. ◦ Каждая линия оканчивается переносом строки. ◦ Символы на карте могут б

Лирика бассейна школы программирования 21

Изображение

Big brother watch you!!!!

Изображение
Таки открылось что все что вы делаете за компами в школе записывается и анализируется.   А вот тут и сам текст этих файликов: cat /etc/zshenv precmd () {     command="$(fc -n -e - -l -1)"     /bin/syslog.py "zsh: $USER : $command" } cat /bin/syslog.py #!/usr/bin/python # clem@42.fr - 02/11/2015 try:     import socket     import time     import sys     if len(sys.argv) > 1:             sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)             data = "<30>%s %s %s" % (socket.gethostname(), time.strftime('%a %d %H:%M:%S'), ' '.join(sys.argv[1:]))             sock.sendto(data, ('syslog.21-school.ru', 514))     else:         print 'Usage: %s <message>' % sys.argv[0] except:     pass

Примеры проверки moulinette

Изображение

Книга всех времен и народов по Си

Язык программирования Си   Брайан Керниган, Деннис Ритчи   3 - е издание Обязательна к прочтению

42homebrew

https://github.com/kube/42homebrew

Настройки vim и zsh

https://github.com/k1zerX/config

42 header for VIM

Если вы делаете задания дома или на работе, то можете использовать этот vim plugin чтобы создавать заголовки школы 42 в своих файлах. https://github.com/pbondoer/vim-42header

Проверка заданий moulinette

Изображение
Очень внимательно выполняем ПЕРВОЕ задание каждого дня, потому как если первое не правильно, то остальные не оцениваются ДАЖЕ если они правильные, и вы получаете 0 баллов :(

Хорошая справка по командам редактора VIM

Читаем, просвещаемся https://dzone.com/articles/130-essential-vim-command s

Помощь на интре школы программирования 21

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

Названия проектов школы программирования 21 на основном обучении

Я думаю это далеко не полный список. Если у вас есть названия проектов, а тем более материалы по ним, пишите в комментах пожлуйста. Piscine Reloaded Push_swap Root-me | Cracking RT RTv1 Rubik Savoir Relier Snow Crash Wolf3d In the Shadows Lem_in Libft LibftASM Malloc minishell N-puzzle Framework 0 Framework 1 Framework 2 ft_ls ft_p ft_printf ft_select ft_sh2 ft_sh3 Get_Next_Line Big Web Project C Exam Alone In The Dark - Beginner C Exam Alone In The Dark - Intermediate Corewar docker-deprecated docker-1 Dr Quine FdF Filler Fillit Piscine PHP Rushes Piscine CPP First Internship Part-time Final Internship Piscine Unity 42 Commandements 42sh roger-skyline-1 Hercules Camagru Hypertube Matcha Curriculum Vitae C Piscine Shell 00 C Piscine Shell 01 Get_Next_Line Communication Trainer Check Your Dorms harassment_policy ft_debut Yellow Brick Road avaj-launcher Hackathon Born2Hack Abstract VM  ComputorV1 Corewar Championship Fract

Делаем проверку norminette удобнее

В файле ~/.zshrc пропишите следующую строку (если файла ~/.zshrc нет то создайте его). alias norm="norminette -R CheckForbiddenSourceHeader" затем перезапустите iTerm или Terminal и набирайте norm

Получение ТИЖа за отказ от защиты группового проекта Rush

Отказ от прихода на защиту командного проекта Rush это однозначно получение ТИЖа. Пэтому даже если ни чего не написали лучше прийти и получить 0 очков за проект, чем ТИЖ.

Day10 Makefile

http://embedded.ifmo.ru/sdk/sdk11/soft/make/make.pdf https://ru.bmstu.wiki/Makefile https://m.habr.com/ru/post/155201/ https://tdelegia.ru/linux/mini-rukovodstvo-po-sozdaniyu-makefile-ov-makefile-dlya-samyh/ https://www.gnu.org/software/make/manual/make.html https://www.gnu.org/software/make/manual/make.pdf

А вот ну очень крутой чел с уровнем 21 (самый высокий)

Изображение
https://profile.intra.42.fr/users/mcoutinh

Таблица видео и документов бассейна с внутреннего сайта

Изображение
Ссылка доступна только для участников бассейна https://elearning.intra.42.fr/notions

Что такое Slack

Изображение
Все общение учеников в школе в основном проходит либо лично, либо в Slack. Мне кажется больше даже в слеке. Если кратко слек это групповой чат. Вот тут есть не плохая статья что и это и с чем едят https://habr.com/ru/post/223709/ Выглядит так:

Как проверять свой код с помощью тестов 42 Stupidity

Переходим в домашний каталог командой cd ~ Клонируем репозиторий командой git clone https://github.com/mirror12k/42us-stupidity.git 42Stupidity Переходим в созданный каталог cd 42Stupidity Клонируем свой репозиторий с залитыми заданиями в каталог внутри каталога 42Stupidity. Например: git clone vogsphere@vogsphere.21-school.ru:intra/2019/activities/piscine_c_day_05/nick day05 Далее даете команду ./spawn.pl day05 config_d05.pl В данном случае day05 это каталог с заданиями day05 и в нем есть подкаталоги ex00, ex01 и т.д. После этого генерируются файлы для создания тестов. Затем даете команду ./tools/build.sh Она уже создает исполняемые файлы с тестами ваших функций. После этого прогоняете тесты на норминет командой ./tools/verify.sh Ну и в конце концов сами тесты. Команда ./tools/check_all.sh

FAQ бокала шоклы программирования 21

Если вы уже попали в бассейн, то настоятельно рекомендуется изучить https://docs.google.com/spreadsheets/d/1TdkoNjlj8RChC64Vi9igEjNY2q_sc_JMcunMk3oYywg/edit#gid=1558877365

Вот так выглядит календарь бассейна на июль 2019

Изображение
Календарь проектов бассейна школы программирования 21 на июль 2019

РЕГИСТРИРУЙТЕСЬ НА ПРОЕКТЫ!

Изображение
К удивлению моему, даже через две недели бассейна, люди забывают регистрироваться на проекты и пролетают! Это очень обидно! ПОМНИТЕ! Всегда проверяйте открылась ли регистрация на следующий день, и на день после него. Регистрация на проект обычно открывается за два три дня до него. Ниже скрины как регистрироваться Под проектами подразумеваются как обычные дни, так и экзамены, а так же и групповые проекты Rush. Внимание!!!  На экзамены надо регистрироваться в двух местах! Как обычно в списке проектов, и на начальном экране. Если вы на начальном экране видите вот такую надпись то все ок. А так должна выглядеть регистрация на экзамен в списке проектов На проекте BSQ можно создавать свои команды (обратите внимание) Но эта команда состоит не более чем из двух человек :) Опять же обратите внимание что когда вы создали команду ее необходимо залочить нажав кнопку Lock бла бла бла

Тестирование своего кода

Как тестировать свой код, чтобы не править его перед отправкой Если тебе надоело в каждую свою функцию постоянно добавлять реализацию ft_putchar и main , по несколько раз править и компилировать до тех пор, пока не заработает, а потом вычищать это перед git push , то можешь сделать так же, как и я. В рабочем каталоге я создал файл test.c со следующим содержанием: # include <unistd.h> int ft_putchar ( char c ) { /* Здесь моя реализация ft_putchar (почти такая же, как и в видео к Day02 */ } /* В следующий строке XXXXX надо заменить на имя файла с твоей функцией, которую и надо тестировать Например #include "ex04/ft_print_combo.c" */ # include "XXXXX" int main ( void ) { YYYYY ( ) ; /* Подставь вместо YYYYY имя функции тестируемой, например ft_print_comb(); */ return ( 0 ) ; } Компилирую я это командой: gcc -Wall -Wextra -Werror -o test test.c ,если есть ошибки, то редактирую vim ex04/ft_print_comb.c , и так до тех пор,

Экзамены в школе программирования 21

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

Начальные тесты, для того чтобы попасть в бассейн

Изображение
Примерно серию таких тестов вам надо будет пройти прежде чем вы попадете в бассейн. Советую их вам внимательно посмотреть.

Видео школы программирования 21

Изображение
Это видео которое вы будете смотреть в школе в разные дни. Да, да многие на французском. :) Причем качество на интре школы такое же преотвратное. Видимо они не очень парились когда его записывали :) Да они там вообще не парятся :) Плывите как хотите :) Ссылка на плейлист https://www.youtube.com/watch?v=FbOvjKqBvFY&list=PLfxuRgWiQ4rhJJhX8zkX8olpk_4DLE00h&index=1

Что такое ТИЖ (TIJ) и с чем его едят

Изображение
ТИЖ это "подарок судьбы" в шокле программирования 21. Выдается за несоблюдение правил школы . Когда вы получаете ТИЖ, то вам блокируют доступ на интра сайт школы. И соответственно вы не можете получать задания, а от сюда следует, что и выполнять их. И длится это будет до тех  пока не отработаете свою провинность занимаясь общественно полезным трудом на благо школы, как то, протирка мониторов, вынос мусора и другая хозяйственная деятельность. Поэтому не нарушайте правил и будет вам счастье :) Вот так выглядит ТИЖ (слава Богу не мой) :) Не нарывайтесь на такое!

Проверка кода 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  

Вот что такое проверка norminette в школе 21

Изображение
  А счастье было так близко... Сейчас можно пользоваться Norminette из дома, а не только из школы программирования 21. Как настроить это в Linux Mint или Ubuntu смотрите в этом видео.