Теория
Справочные заметки по фронтенду в формате «вопрос — короткий ответ». Разделы упорядочены от базовых к продвинутым.
JavaScript
- JS Basics
- JS Objects & Async
- Event Loop
- DOM-события
- Примитивы, ссылки, копирование
- ES-фичи
- Типы модульных систем в JavaScript
- Контекст выполнения и область видимости
- Hoisting, TDZ и чистые функции
- Метапрограммирование: Proxy, Reflect, Symbol
- Генераторы, отмена fetch и управление памятью
TypeScript
CSS
Browser
- Browser Internals
- Производительность рендеринга
- Хранилища и cookies
- fetch, CORS и загрузка данных
- Real-time: SSE и WebSockets
- REST и GraphQL
- Web Security
- Content Security Policy (CSP)
React
Angular
- Angular Signals
- Angular — Жизненный цикл компонента
- Angular — История версий (от 21 до 2)
- Рендеринг и компиляция (Ivy, AOT/JIT)
- Декораторы, директивы и пайпы
- Dependency Injection
- Change Detection
- Маршрутизация, guards и interceptors
- Формы
- Динамические компоненты и проекция контента
Build & Bundling
Architecture
- App Architecture & Platforms
- Микрофронтенды: общение между приложениями
- Требования к ПО: ФТ vs НФТ
- Дизайн-система
- MVC и MVVM
- Инфраструктура: кэширование, хранилища, CI/CD
Design Patterns
Принципы разработки
HTTP
Тестирование
NestJS
Алгоритмы
Сложности алгоритмов (Big O)
- Асимптотический анализ — практика
- O(1) — Константная сложность
- O(log n) — Логарифмическая сложность
- O(√n) — Корневая сложность
- O(n) — Линейная сложность
- O(n log n) — Линейно-логарифмическая сложность
- O(n²) — Квадратичная сложность
- O(n³) — Кубическая сложность
- O(n^k) — Полиномиальная сложность
- O(2ⁿ) — Экспоненциальная сложность
- O(n!) — Факториальная сложность
Паттерны и шпаргалки
- Two Pointers (Два указателя)
- Sliding Window (Скользящее окно)
- Binary Search (Бинарный поиск)
- Prefix Sums (Префиксные суммы)
- Heap & Priority Queue (Куча)
- Backtracking (Поиск с возвратом)
- Dynamic Programming (Динамическое программирование)
- Greedy Algorithms (Жадные алгоритмы)
- Trie (Префиксное дерево)
- Графы (Graphs)
- Деревья (Trees)
Математика и основы
Структуры данных
- Stack (Стек)
- Queue (Очередь)
- Linked List (Связный список)
- Array (Массив)
- Hash Table (Хэш-таблица)
- Heap (Куча)
- Deque (Двусторонняя очередь)
- Вероятностные структуры данных (Bloom filter, HyperLogLog)
Сортировки
- Bubble Sort (Сортировка пузырьком)
- Selection Sort (Сортировка выбором)
- Insertion Sort (Сортировка вставками)
- Shell Sort (Сортировка Шелла)
- Tree Sort (Сортировка деревом)
- Merge Sort (Сортировка слиянием)
- Quick Sort (быстрая сортировка)
- Heap Sort (Пирамидальная сортировка)
- Counting Sort (Сортировка подсчётом)
- Bucket Sort (Блочная сортировка / Карманная сортировка)
- Radix Sort (Поразрядная сортировка)
- IntroSort (Introspective Sort / Интроспективная сортировка)
- TimSort (Гибридная сортировка)
- Cube Sort (Кубическая сортировка)