Понимает O-нотацию, базовые алгоритмы сортировки и поиска. Анализирует сложность с учётом cache-эффектов и реального hardware.
Роли · Systems Programmer (C/C++) · Junior
Что должен уметь Junior }
11 ключевых навыков, всего 94. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Облако и инфраструктура, DevOps и CI/CD.
Ключевые навыки для Junior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 7
Понимает асинхронные примитивы: select/poll/epoll, non-blocking I/O, callback-based programming. Пишет простые async серверы.
Следует coding standards для C++/Rust: форматирование (clang-format/rustfmt), naming conventions. Пишет документированный код.
Понимает POSIX threads: создание потоков, mutex, condition variables. Знает memory ordering basics и data races.
Знает паттерны для системного ПО: RAII, Pimpl, Singleton для global state, Observer для event systems. Применяет под руководством.
Знает структуры данных для системного ПО: arrays, linked lists, hash maps, trees. Понимает memory layout и cache-line alignment.
Понимает модель памяти: virtual memory, page tables, stack vs heap. Знает malloc/free internals, memory alignment.
Облако и инфраструктура · 1
Понимает HTTP/HTTPS, DNS basics, TCP vs UDP. Знает, что такое порты, IP-адреса, localhost. Может использовать curl для тестирования API.
DevOps и CI/CD · 1
Понимает концепции CI/CD: build, test, deploy. Использует готовые workflows. Может добавить шаг в существующий pipeline. Знает, как посмотреть логи failed build.
Архитектура и проектирование · 1
Понимает базовые принципы системного дизайна: модульность, абстракция, инкапсуляция, separation of concerns. Применяет их при проектировании простых системных компонентов.
Контроль версий и коллаборация · 1
Участвует в code review системного кода: проверяет стиль, ищет простые ошибки (утечки памяти, неинициализированные переменные). Учится у наставника замечать типичные баги ядерного кода.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Middle
94 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.
- Алгоритмы и сложность: Осведомлённость → Применение
- Асинхронное программирование: Осведомлённость → Применение
- Качество кода и рефакторинг: Осведомлённость → Применение
- Многопоточное программирование: Осведомлённость → Применение
- Основы сетей: Осведомлённость → Применение
- Основы System Design: Осведомлённость → Применение
- Паттерны проектирования: Осведомлённость → Применение
- Структуры данных: Осведомлённость → Применение
- Управление памятью: Осведомлённость → Применение
- Code Review: Осведомлённость → Применение
} в открытой матрице компетенций: 94 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.