6.3 KiB
6.3 KiB
ИУП: подготовка к собеседованию Eltex (C/C++, алгоритмы, Linux, сети)
Личный учебный план и пакет задач с автопроверкой. Обновляется по ходу недели.
Что внутри
WEEK7.md— рабочий документ: интенсив на 7 дней (D0 23.09 → D7 30.09), пересобранный по диагностике (квиз 14/32, карточки 11/60). День устроен так: урок (теория + разбор) → карточки → ступени задачи → зачётgrade.py.lessons/— уроки по дням: теория по-русски, рабочие примеры кода с разбором, готовые ответы на вопросы собеседования, ссылки на первопартийные материалы. Начинать с них.PLAN.md— полный трек M1–M10 на пост-офферный период (модули, артефакты, материалы).diag/cards_src.tsv— выжимка фактов из уроков и задач под карточки (level/domain/question/answer/ref).HR_BASE_deep.md— та же база в 152 вопросах, но каждый ответ — объяснение механизма («почему так» и «что ломается»), а не тезис. Это версия для чтения перед скринингом.diag/cards_src.tsv— выжимка фактов из уроков и задач под карточки (level/domain/question/answer/ref).HR_BASE.md— короткая база вопрос-ответ под тех-скрининг (ООП, C/C++, STL, Linux, сети, Git, Docker, GDB, bash, embedded, вопросы HR) + шпаргалка чисел.TRACKER.md— дневник: что решено, где встал, сколько минут. Это вход для калибровки.diag/— пакет:quiz.py+quiz.json— 32 вопроса по 4 доменам;tasks/01..09— диагностика: биты, список, ring buffer, IPv4-заголовок, НВП, потоки, epoll-сервер, bash по логу, разбор падения в gdb;tasks/10..13— добор под слабые домены: хеш-таблица с открытой адресацией, куча (heapifyO(n), top-K), Дейкстра, арифметика подсетей;facts_drill.py+facts.json— 101 карточка «числа и факты» с пояснениями и уровнями:base41 (начинать отсюда, у каждой есть объяснение),core52,deep8 (нишевое, в базовый прогон не попадает);grade.py— автопроверка задач (ASAN/UBSAN, таймауты, PASS/FAIL + полный лог);questions_export.txt— вопросы квиза текстом.
Требования
- Linux / WSL / macOS:
g++(C++17),gcc,gdb,python3,bash,awk. Одной строкой в Ubuntu:sudo apt update && sudo apt install -y build-essential gdb python3. - Windows-native (MinGW-w64/clang): работают задачи 01–06 и 10–13 (нужен
g++в PATH), а также карточкиfacts_drill.py. Задачи 07 (epoll), 08 (bash/awk) и 09 (ASAN+gdb) под Windows-native не запускаются — они помечаютсяПРОПУСК, а неFAIL. Полный прогон — в WSL:wsl --install -d Ubuntusudo apt update && sudo apt install -y build-essential gdb python3 cd /mnt/d/Projects/edu/eduplan-cpp-eltex/diag && python3 grade.py - Если компилятора нет совсем,
grade.pyбольше не падает трейсбеком: он печатаетПРОПУСКс причиной по каждой задаче и подсказку, что доставить.
Как начать
Порядок первого захода — читать урок, потом карточки базы, потом задачи:
git clone https://git.kodlo.art/Kodlo/eduplan-cpp-eltex.git
cd eduplan-cpp-eltex
lessons/D1_algo.md # или открыть в редакторе
cd diag
python3 facts_drill.py --level base --learn # 41 карточка базы, ошибки объясняются
python3 facts_drill.py --level base,core # когда база закрыта (>=80%)
python3 quiz.py # квиз (или --answers "1-3 2-4 ...")
python3 grade.py # все 13 задач с санитайзерами
python3 grade.py 10 11 13 # выборочно
python3 grade.py --fast # без санитайзеров
python3 facts_drill.py --level base --learn # база с пояснениями
python3 facts_drill.py --level all --all # все 101 карточка
python3 facts_drill.py --list --level base # вывести вопросы с ответами и пояснениями
Нужны g++ (C++17), gcc, python3; для 07_epoll — Linux-сокеты, для 08_bash —
bash/awk/sort. Внешних зависимостей нет. На Windows задачи 07 и 08 удобнее гонять в WSL.
Правила честности
Эталонных решений в репозитории нет (лежат только на машинке студии) — иначе автопроверка
превращается в шпаргалку. Требования по сложности, которые тест не ловит (например
heapify за O(n)), проверяются на разборе по коду. answer.txt в задаче 09 — обязательная
часть оценки.
Куда отдавать результаты
- ветка
answers/<день>в этом репозитории; - либо файлы/
results_*.jsonв чат; - либо
python3 grade.py --submit— складывает результаты и решения рядом.
Ежедневный блок плана приходит в топик лейна в 09:00 (НСК).