Гайд по школе 21
Не претендую на достоверность. Всё что здесь будет написано это моё личное мнение и мнение таких же людей который ни на что не претендуют....
Постараюсь сделать так чтобы гайд был актуален даже людям с отсутствие понимания что такое КОД
Оглавление
Глава 0. и глава 1. Можете спокойно читать сейчас. Но пока вы не пройдёте курсы которые чуть ниже. Читать дальше первой главы вам смысла нет.
Прошли курс по Git. Заглянули в эту главу. и т.д.
0. Всё подряд....
Весь гайд будет состоять из тысячи и одного скриншота с выделением главных моментов.
Возможно я буду прыгать из пятого в десятое. Ну уж извиняйте...
Интенсив == Бассейн (просто запомни)
3 основных курса которые нужно ОБЯЗАТЕЛЬНО пройти, если вы не хотите утонуть....
Основы командной строки https://ru.hexlet.io/courses/cli-basics
Основы Git https://ru.hexlet.io/courses/intro_to_git
Основы Си https://stepik.org/course/3078/promo
- Правила написания кода немного изменили, и актуальной информации нет. Но вы не удивляйтесь, если на курсах вы учили ставить скобки в одном месте, а на интенсиве нужно будет переучиваться.
- Как написали выше там будет гит-репозиторий. ЛОКАЛЬНЫЙ! Из дома работать не получится. Каждое новое задание выдаётся после сдачи предыдущего
- Самое первое задание нужно делать всегда! Так как если вы сделали его не правильно, то остальные вам обнулят
Как гуглить?
Вот на самом деле. Основной инструмент у вас будет гугл.
С языком си есть сложность. Он не ищётся... Потому что он состоит из одной буквы "C"
Поэтому если вы ищите на русском. Пишите не "С", а "Си".
Если же на английском. То вам может попасть "С++". Не пропускайте. Хоть это и разные языки. Но они похожи. И возможно это сработает у вас.
Как правильно гуглить если не гуглит....?
"Как перевести число в строку в языке Си"
А он выдаёт вам не язык Си... А к примеру Python
"Как перевести число в строку в языке +Си"
"+" - это ключевой знак для поисковика. Слово которое идёт после него будет обязательным условием в тексте.
Т.е. Если на сайте не будет слова "Си" он не станет вам выдавать такой сайт
"Как скомпилировать программу +clang"
Он выдаст сайты только те где присутствует слово "clang"
Не находит на русском? Переводим и ищем на английском.
Наиболее точный переводчик для технических переводом это https://www.deepl.com/translator
1. Организационные моменты
Вот такое сообщение придёт за несколько дней до интенсива
Каждый день нужно регистрироваться на все события самому! Каждый день!
ВОТ сейчас ниже пойду несколько скринов. Пожалуйста прочитайте полностью
Далее скрин от 20 года. Он касательно основного обучения.
Нужно понять вот что. Это крайние даты для достижения определенного уровня. Не достигли, вас выкинут.
Кривой перевод с англоязычного блога. Но есть что подчерпнуть
https://42-21-school.blogspot.com/2019/08/21_7.html
https://42-21-school.blogspot.com/2019/08/21.html
2. GIT
Сначала курс! https://ru.hexlet.io/courses/intro_to_git
Желательно посмотри на ютубе "Что такое GIt и как пользоваться" Посмотри несколько роликов!
Потом почитай главу про гит вот здесь
https://github.com/robotrainer/school21
git clone
git add .
git commit
git push
3. Cи
Курс на степике. Пока его не пройдешь. Дальше даже смысла нет читать.
https://stepik.org/course/3078/promo
👨💻 Русскоязычный справочник по C
https://cpp.com.ru/shildt_spr_po_c/index.html
ВИКИПЕДИЯ
Там на самом деле много определений для общего понимания.
Стандарт языка Си (Стандарт С99) — офиц. документация.
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
Эта штука вам пригодится на более поздной стадии. Просто запомни что это тут есть.
Визуализатор кода
Довольно полезная штука для отслеживания что и как работает.
https://pythontutor.com/c.html#mode=edit
Эта нужно почитать и разобраться в теме указателей обязательно!
Но перед этим пройдите курс на степике.
1. http://chernyy.ru/blog/2010/04/19/pointers-and-references-in-c-and-cpp
2. https://www.youtube.com/watch?v=VQ-7Plii7XY
3. https://42-21-school.blogspot.com/2019/07/blog-post_24.html
4. Терминал
Код будет у тебя лежать в файлике по типу:
Так вот чтобы его скомпилировать нужно будет ввести в терминале
clang -Wall -Werror -Wextra "тут название твоего файла (code.c)"
Если всё хорошо. то не будет никаких сообщений
Если же неправильно то посыпяться ошибки!
В папке появится файлик a.out (если ты не поменял файл вывода)
чтобы его запустить нужно ввест ./a.out
5. High lvl
В этой главе есть полезные штуки. Но если их невозможно обьяснить нулевым. Потому что нужно понимание что такое конфиг, что такое параметры команд и т.д.
Крч пришлось бы книгу написать....
Возможно вы обратитесь к ним на самом интенсиве. И вы знаете где это теперь искать...
👨💻 Шорткаты для компиляции в Nvim
В файле конфигурации n/vim нужно прописать 2 строки. nmap <F3> :!clang -Wall -Werror -Wextra % -o compile<CR> nmap <F4> :!./compile<CR>
При нажатии:
F3 — происходит компиляция текущего файла
F4 — выполняет скомпилированный файл и запускает его
Тесты
https://github.com/Abaker-Hype/42-Cursus-Tester
https://github.com/xicodomingues/francinette
VIM
Норминетта
Инфа почти не актуальна, так как сейчас другая софтина. Но принцип тот же
👨💻 Проверка всех файлов в каталоге норминетой
norminette -R CheckForbiddenSourceHeader
Что-то крутое, касательно кода. Пока не очень понимаю зачем оно мне. Но может потом пойму
https://github.com/agavrel/42_CheatSheet
👨💻 Права доступа для запуска файла
Исходя из доступных сведений компиляция доступна на clang и gcc
Для сборки проекта работает следующая команда:
clang -Wall -Wextra -Werror file.c -o out_file
-Werror — не даст скомпилить если есть предупреждения
file.c — файл который нужно скомпилировать.
out_file — файл который по итогу получится
Желательно пройтись norm-ом. Для проверки стилистики.
Чтобы запустить файл, нужно ввести в терминале.
./out_file
линки:
- про компиляцию clang » (https://clang.llvm.org/docs/UsersManual.html#cmdoption-pedantic) « (en)
- про компиляцию gcc » (https://github.com/robotrainer/school21#3-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80-gcc-) « (ru)
👨💻 Замер скорости работы функции
https://42-21-school.blogspot.com/2019/07/bsq_52.html
1. https://cpp.com.ru/shildt_spr_po_c/27/2703.html
2. https://tdelegia.ru/linux/mini-rukovodstvo-po-sozdaniyu-makefile-ov-makefile-dlya-samyh/
3. https://www.gnu.org/software/make/manual/make.html
4. https://www.gnu.org/software/make/manual/make.pdf
Куча гитов. Если что я не несу ответственности если вас кикнут за читы....
https://github.com/robotrainer/school21#terminal
https://github.com/secondfry/school21-day11-tests
https://github.com/Caceresenzo/My-School-42-Piscine-Experience
https://github.com/Caceresenzo/42
https://github.com/agavrel/42_CheatSheet
https://github.com/pasqualerossi/42-Exams
https://github.com/Binary-Hackers/42_Subjects
https://github.com/pasqualerossi/42-Piscine
https://github.com/pasqualerossi/42-School-Guide
https://github.com/pasqualerossi/42-Tools
https://github.com/JCluzet/42_EXAM/tree/main/.subjects/PISCINE_PART
https://github.com/daniiomir/faq_for_school_21/blob/master/README.md#coding_wiki
6. Ссылки
- Блог от 19 года https://t.me/winnotlose
- Чей то блог http://coding-girl.ru/how-to-pass-the-piscine-21-42/