Домен
Основы программирования
Профиль навыка
BFS, DFS, Dijkstra, A*, topological sort, shortest path, minimum spanning tree
Ролей
3
где встречается этот навык
Грейдов
5
сформированная дорожка роста
Обязательных требований
6
ещё 9 — необязательные
Основы программирования
Алгоритмы и структуры данных
17.03.2026
Выберите текущий грейд и сравните ожидания. Карточки ниже покажут, что нужно закрыть для следующего уровня.
Таблица показывает, как меняется глубина владения навыком от Junior до Principal.
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Знает базовые концепции graph algorithms для compiler engineer и умеет применять их в типовых задачах. Использует стандартные инструменты и следует установленным практикам команды. Понимает когда и почему применяется данный подход. | |
| Language Tooling Engineer | Понимает основы Алгоритмы на графах на базовом уровне. Применяет простые концепции в рабочих задачах с использованием TypeScript/Rust. Следует рекомендациям senior-разработчиков при решении задач. | |
| Systems Programmer (C/C++) | Понимает основы Алгоритмы на графах на базовом уровне. Применяет простые концепции в рабочих задачах с использованием C/C++/Rust. Следует рекомендациям senior-разработчиков при решении задач. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Уверенно применяет graph algorithms для compiler engineer при решении нестандартных задач. Самостоятельно выбирает оптимальный подход и инструменты. Анализирует trade-offs и предлагает улучшения существующих решений. | |
| Language Tooling Engineer | Самостоятельно применяет графовые алгоритмы (DFS, BFS, топологическая сортировка) для обхода AST, разрешения зависимостей и построения таблицы символов. Понимает компромиссы между представлениями в виде списков смежности и матриц для IR компилятора. Объясняет раскраску графов для распределения регистров и обнаружение циклов на код-ревью. | |
| Systems Programmer (C/C++) | Самостоятельно применяет графовые алгоритмы (Dijkstra, Kruskal, SCC) для планирования ресурсов, анализа сетевой топологии и упорядочивания зависимостей задач. Понимает компромиссы между BFS/DFS для обхода в условиях ограниченной памяти. Объясняет коллегам графовое обнаружение дедлоков и анализ графа ожидания. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Экспертно применяет graph algorithms для compiler engineer для проектирования сложных систем. Оптимизирует существующие решения и предотвращает архитектурные ошибки. Проводит code review и обучает коллег лучшим практикам. | |
| Language Tooling Engineer | Обязателен | Проектирует проходы оптимизации IR с использованием фронтов доминирования, графов потока управления и алгоритмов построения SSA. Архитектурит инкрементальный перепарсинг с граф-диффингом для отзывчивости IDE. Менторит разработчиков по продвинутым графовым алгоритмам для вывода типов, escape-анализа и межпроцедурного потока данных. |
| Systems Programmer (C/C++) | Обязателен | Проектирует lock-free конкурентные графовые структуры для управления ресурсами на уровне ядра и планирования I/O. Архитектурит эффективные по памяти графовые представления для крупномасштабных таблиц маршрутизации и отслеживания зависимостей page cache. Менторит разработчиков по продвинутым алгоритмам для трассировки сборки мусора, обхода дерева устройств и графов привязки прерываний. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Устанавливает стандарты применения graph algorithms для compiler engineer в команде и принимает архитектурные решения. Определяет технический roadmap с учётом данного навыка. Менторит senior инженеров и влияет на практики смежных команд. | |
| Language Tooling Engineer | Обязателен | Определяет стандарты использования Алгоритмы на графах на уровне команды/продукта. Проводит архитектурные review. Формирует best practices и обучающие материалы для всей команды. |
| Systems Programmer (C/C++) | Обязателен | Определяет стандарты использования Алгоритмы на графах на уровне команды/продукта. Проводит архитектурные review. Формирует best practices и обучающие материалы для всей команды. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Формирует стратегию применения graph algorithms для compiler engineer на уровне организации. Определяет best practices и влияет на выбор технологий за пределами своей команды. Является признанным экспертом в данной области. | |
| Language Tooling Engineer | Обязателен | Определяет стратегию применения Алгоритмы на графах на уровне организации. Принимает решения о подходах и инструментах. Менторит lead-разработчиков и формирует technical vision. |
| Systems Programmer (C/C++) | Обязателен | Определяет стратегию применения Алгоритмы на графах на уровне организации. Принимает решения о подходах и инструментах. Менторит lead-разработчиков и формирует technical vision. |