Диагностика уровня — пакет (C/C++, алгоритмы, Linux, сети)
Собран под вакансию Eltex «Разработчик C/C++» (Новосибирск, hh #136775547). Цель — не «проверить себя на ощупь», а получить машинную оценку по доменам и список дыр.
Что внутри
-
quiz.json+quiz.py— 32 вопроса по 4 доменам (C/C++ и память, алгоритмы и структуры данных, Linux/ОС, сети L2/L3 и TCP/IP). 24+ верных — уверенный вход. -
tasks/— 9 практических задач, у каждой автопроверка:# Задача Что проверяется 01 01_bitsбитовые операции, без встроенных popcount 02 02_listсвязный список: разворот, середина, цикл (Флойд) 03 03_ringкольцевой буфер, wrap-around, ASAN 04 04_ipv4разбор IPv4-заголовка из буфера + контрольная сумма 05 05_lisНВП за O(n log n), тест на 100 000 элементов 06 06_threadsограниченная очередь: mutex/condvar, ThreadSanitizer 07 07_epollTCP-эхо-сервер на epoll: несколько соединений, SIGTERM 08 08_bashразбор лога доступа: TOTAL/TOP-3/5XX, 110k строк 09 09_gdbотладка ASAN-падения + письменный разбор в answer.txt -
grade.py— прогон задач с автооценкой (PASS/FAIL, число проверок, время). -
solutions/— эталонные решения, в руки не отдавать: они лежат здесь, чтобы автопроверка не «протухла» (эталон → все PASS, заглушка → FAIL).
Как проходить
cd diag
python3 quiz.py # вопросы по одному; ответы — номер варианта 1-4
python3 quiz.py --export # вывести вопросы текстом (можно отвечать в чате)
python3 grade.py # все задачи (с ASAN/UBSAN/TSAN)
python3 grade.py 01 04 # только выбранные
python3 grade.py --fast # без санитайзеров, быстрее
python3 grade.py --submit # результаты + свои файлы в submissions/
Порядок: сначала квиз, потом задачи с 01 по 09. Зависание = FAIL (есть таймауты).
Правила честности: без встроенных popcount/reverse-хелперов, без копирования чужих
решений, answer.txt в задаче 09 — обязательная часть (оценивается ход разбора).
Что считается результатом
results_quiz.json: балл по каждому домену + разбор промахов с пояснениями.results_tasks.json: по задаче — PASS/FAIL, число проверок, время, полный лог сборки.- Итог и решение по плану (с каких модулей стартовать) собираются по этим двум файлам.
Публикация и доступ
- Пакет в каталоге:
/home/pi/eduplan/diag(мир читает; каталог доступен на исполнение). - Инбокс для ответов:
/home/pi/eduplan/diag/submissions/(0777). - Архив для скачивания:
/home/pi/eduplan/diag/dist/eduplan_diag.tar.gz.