Чеклист подготовки
Чеклист нужен для того, чтобы в максимально короткие сроки выявить пробелы в знаниях.
Алгоритмы и Структуры Данных
- Базовые структуры
- Массив и его сортировки(сложность и реализация)
- Пузырек
- Вставками
- Быстрая
- Выборками
- Хэш-Таблица
- Хеш функция
- Методы разрешения колизий
- Метод цепочек
- Последовательность проб
- Дерево
- Бинарное дерево поиска
- B(balanced) Tree
- B+ Tree
- АВЛ
- Красно черное
- Поворот
- Граф
- Поиск в ширину, в глубину, алгоритм Дейкстры
- Разное
- Бинарный поиск
- Динамическое программирование
- Жадные алгоритмы
- Побитовые операции
Базы Данных
- Теория Баз Данных
- Транзакции
- ACID
- Проблемы параллельного чтения
- Уровни изолированности транзакций
- Нормальные формы(1-6 + бойса кода + доменная)
- Распределенные БД
- Репликация
- Синхронная и асинхронная и полусинхронная
- Master/Master & Master/Slave
- Покомандная(логическая) & Построчная(физическая)
- Шардинг
- Статический и динамический + комбинированный, vitual bucket
- Решардинг
- Ключ шардирования
- Паттерны поиска(умный клиент, прокси, координатор)
- Консистентный хеш
- Теорема САР
- MapReduce
- Репликация
- Транзакции
- Конкретные реализации СУБД
- MySql
- Архитектура MySql
- Конекшн
- Парсер, оптимизатор, кеш и буфер, sql интерфейс
- Движки(подсистемы хранения)
- Файловая система
- Конкурентный доступ
- Блокировки
- shared lock и exclusive loc
- построчная и табличная
- явные/неявные
- SELECT… LOCK IN SHARE MODE
- SELECT… FOR UPDATE
- Блокировка индекса innoDB(record lock, gap lock, next key lock)
- согласованное неблокирующее чтение
- Deadlock
- MVCC
- Блокировки
- Индексы
- B Tree
- B Tree
- B+ Tree
- Составной индекс
- Устройство B Tree индекса изнутри
- Hash
- R-Tree
- Селективность и кардинальность
- Кластерные индексы
- Покрывающие индексы
- B Tree
- Основы SQL
- CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE, HAVING, GROUP BY, JOIN
- Explain
- Разное
- Innodb vs MyIsam
- Datetime vs Timestamp
- Архитектура MySql
- PostgreSql
- NoSql
- Memcaced
- Redis
- Типы данных
- Redis Cluster
- Репликация и шардинг
- Tarantool
- Mongo
- Брокеры сообщений
- Rabbit
- Kafka
- Колоночные
- ClickHouse
- Vertica
- Разное
- Time-series
- Blob-store
- Сетевые
- Графовые
- MySql
Архитектура
- Основы ООП
- Инкапсуляция
- Полиморфзим
- Наследование
- Композиция/агрегация
- Паттерны GoFБанда 4
- Создающие
- Поведенческие
- Структурные
- Принципы хорошей архитектуры
- SOLID
- GRASP
- DRY
- KISS
- Архитектурные паттерны
- Layer architecture
- Onion architecture
- Hexagonal architecture
- CQRS
- ES
- Saga
- DDD
- Стратегические
- Bounded context
- Ubiquitous language
- Subdomain
- Тактические
- Aggregate root
- Entity
- Value object
- Стратегические
- Api и Микросервисы
- Rest
- Rpc
- JsonApi
- GraphQL
- gRpc
- protobuf
PHP
- Фичи новых версий
- PHP Internals
- Zval
- Union
- CopyOnWrite
- Стандартные функции
- Фреймворки
- Laravel
- Symfony
- Разное
GoLang
- scheduler
- 3 сущности - горутина, поток, контекст привязанный к потоку
- m : n (m задач на n потоках)
- work stealing
- указатели(передача по ссылке/значению)
- arrays & slices
- channels(небуферизированные/буферизированные) неблокирующее чтение
- sync(mutex(r/w), atomic, once, pool, map, waitgrop)
- рефлексия
- unsafe
- Error(), panic, deffer, recover
- context.Context
Информационная безопасность
- SQL injection
- XSS
- CSRF
Git
- Rebase vs Merge
- Checkout vs reset vs revert
Основы сетей
- Взаимодействие с веб-сервером
- HTTP
- SSL/TLS
- DNS
- Сетевые модели
- realTime взаимодействие с сервером
- Что происходит при нажатии на g
Операционные системы
- потоки и процессы
- гринтреды
- вытесняющая и кооперативная многозадачность
Системное администрирование
- Linux
- Как убить процесс
- Load Average
- Docker
- Теория виртуализации
- Kubernetes
Тестирование
- Юнит тесты
- Интеграционные тесты
- Приемочные тесты
- Системные
- Мутационное тестирование
Менеджмент и тимлидство
- Обязанности тимлида
- Resource Manager
- Product Owner
- Integrator
- Technical Lead
- Administrator
- Методологии разработки
- Водопад
- Итеративные модели
- Scrum
- Kanban
- Scrumban