План v2 по диагностике (квиз 14/32) + 4 новые задачи (hash, heap, dijkstra, subnet) + тренажёр 60 карточек

This commit is contained in:
Kodlo-chan
2026-09-23 17:15:36 +07:00
parent 16b211eeda
commit 165dd5619d
19 changed files with 1429 additions and 136 deletions
+33 -21
View File
@@ -1,40 +1,52 @@
# ИУП: подготовка к собеседованию Eltex (C/C++, алгоритмы, Linux, сети)
Личный учебный план и диагностический пакет. Репозиторий обновляется по ходу недели.
Личный учебный план и пакет задач с автопроверкой. Обновляется по ходу недели.
## Что внутри
- `WEEK7.md` — **рабочий документ**: интенсив на 7 дней (D0 23.09 → D7 30.09), три блока
в дне (алгоритмы / системное / практика+разбор), у каждого дня контрольная точка.
- `WEEK7.md` — **рабочий документ**: интенсив на 7 дней (D0 23.09 → D7 30.09), пересобранный
по результату диагностики (квиз 14/32: алгоритмы 1/8, Linux 3/8, сети 3/8, C/C++ 7/8).
Каждый день: карточки 30 мин → алгоритмы 3 ч → системное 3 ч → разбор и код 1,5 ч.
- `PLAN.md` — полный трек M1–M10 на пост-офферный период (модули, артефакты, материалы).
- `CONTEXT.md` — вводные, разбор вакансии (Eltex, hh #136775547), статус лейна.
- `diag/` — диагностический пакет:
- `quiz.py` + `quiz.json` — 32 вопроса по 4 доменам (C/C++, алгоритмы, Linux, сети);
- `tasks/01..09` — 9 практических задач с автопроверкой (ASAN/UBSAN, python-драйверы);
- `grade.py` — прогон задач с автооценкой;
- `questions_export.txt` — вопросы квиза текстом (можно отвечать строкой в чате).
- `TRACKER.md` — дневник: что решено, где встал, сколько минут.
- `TRACKER.md` — дневник: что решено, где встал, сколько минут. Это вход для калибровки.
- `diag/` — пакет:
- `quiz.py` + `quiz.json` — 32 вопроса по 4 доменам;
- `tasks/01..09` — диагностика: биты, список, ring buffer, IPv4-заголовок, НВП, потоки,
epoll-сервер, bash по логу, разбор падения в gdb;
- `tasks/10..13` — добор под слабые домены: хеш-таблица с открытой адресацией, куча
(`heapify` O(n), top-K), Дейкстра, арифметика подсетей;
- `facts_drill.py` + `facts.json` — 60 карточек «числа и факты» (сложности, байты
заголовков, `/26 = 62`, TTL, порядок TCP-хендшейка, паддинг структур);
- `grade.py` — автопроверка задач (ASAN/UBSAN, таймауты, PASS/FAIL + полный лог);
- `questions_export.txt` — вопросы квиза текстом.
## Как начать
```bash
git clone https://git.kodlo.art/Kodlo/eduplan-cpp-eltex.git
cd eduplan-cpp-eltex/diag
python3 quiz.py # квиз, ответы — номер варианта
python3 grade.py # все 9 задач (с санитайзерами)
python3 grade.py 01 04 # выборочно
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 # 20 карточек интерактивно
python3 facts_drill.py --all # все 60
```
Нужны `g++` (C++17), `gcc`, `python3`; для задачи 07 — только Linux-сокеты,
для 08 — bash/awk/sort. Никаких внешних зависимостей.
Нужны `g++` (C++17), `gcc`, `python3`; для `07_epoll` — Linux-сокеты, для `08_bash` —
bash/awk/sort. Внешних зависимостей нет. На Windows задачи 07 и 08 удобнее гонять в WSL.
## Правила честности
Эталонных решений в репозитории нет — они лежат только на машинке студии, чтобы
автопроверка не протухла. Задача 09 (`answer.txt`) — часть оценки: важен ход разбора.
Эталонных решений в репозитории нет (лежат только на машинке студии) — иначе автопроверка
превращается в шпаргалку. Требования по сложности, которые тест не ловит (например
`heapify` за O(n)), проверяются на разборе по коду. `answer.txt` в задаче 09 — обязательная
часть оценки.
## Как отдавать результаты
## Куда отдавать результаты
- `python3 grade.py --submit` — складывает `results_*.json` и свои файлы решений рядом;
- либо коммит в ветку `answers/<день>` и push (доступ на запись у аккаунта `tura`);
- либо файлами в чат / в топик лейна.
- ветка `answers/<день>` в этом репозитории;
- либо файлы/`results_*.json` в чат;
- либо `python3 grade.py --submit` — складывает результаты и решения рядом.
Ежедневный блок плана приходит в топик лейна в 09:00 (НСК).