23 lines
3.6 KiB
Markdown
23 lines
3.6 KiB
Markdown
# Кейс: вспомогательные языки (Python, SQL, C/C++)
|
||
|
||
> Заготовка. Статус: TODO — требует полной проработки по правилам [../../AI_GUIDELINES.md](../../AI_GUIDELINES.md). Эти технологии не имеют отдельной линии опыта в резюме — они вписаны в легенду как сквозные инструменты (см. [../../legend/LEGEND.md](../../legend/LEGEND.md), раздел «Технологии без прямого кейса в опыте работы»). Кейсы здесь должны конкретно привязываться к задачам из уже проработанных категорий, а не существовать отдельно.
|
||
|
||
## Python — автоматизация
|
||
|
||
- [ ] Написать реальный скрипт, который решает задачу из уже сделанных кейсов: например, скрипт на Python, который парсит логи Nginx из [../nginx/CASE.md](../nginx/CASE.md) и считает количество 5xx ответов, либо скрипт, дёргающий Prometheus HTTP API из [../monitoring/CASE.md](../monitoring/CASE.md) и печатающий текущее значение метрики.
|
||
- [ ] Вопросы: разница списков и кортежей, GIL на базовом уровне, работа с виртуальным окружением (venv), как оформлен typical requirements.txt.
|
||
|
||
## SQL — работа с данными
|
||
|
||
- [ ] Поднять локально PostgreSQL/MySQL в Docker, создать простую таблицу (например, лог инцидентов: id, дата, сервис, описание), написать несколько реальных запросов: выборка с фильтром и сортировкой, `GROUP BY` с агрегатом (количество инцидентов по сервису), `JOIN` с таблицей сервисов.
|
||
- [ ] Вопросы: разница INNER/LEFT JOIN, что такое индекс и когда он не помогает, разница WHERE и HAVING, что такое транзакция и ACID на базовом уровне.
|
||
|
||
## C/C++ — чтение кода
|
||
|
||
- [ ] Не писать production-код с нуля (не основной инструмент), но разобрать небольшой пример на C/C++ (например, простую программу с багом — segfault от null pointer или утечкой памяти) и показать, что кандидат может прочитать код, найти проблему и объяснить её словами — это то, что реально требовалось тестировщику embedded ПО в ОКБ СУХОЙ.
|
||
- [ ] Вопросы: разница между стеком и кучей, что такое segmentation fault, зачем нужен valgrind/аналог, разница между указателем и ссылкой.
|
||
|
||
## Как это ложится в легенду
|
||
|
||
Все три языка — не основная специализация, а обвязка вокруг основных задач (мониторинг, тестирование embedded ПО). Кейсы должны это подчёркивать: не «я Python-разработчик», а «я писал скрипты на Python, чтобы автоматизировать конкретную рутину сопровождения».
|