Чеклист подготовки

Чеклист нужен для того, чтобы в максимально короткие сроки выявить пробелы в знаниях.

Алгоритмы и Структуры Данных

  • Базовые структуры
  • Массив и его сортировки(сложность и реализация)
    • Пузырек
    • Вставками
    • Быстрая
    • Выборками
  • Хэш-Таблица
    • Хеш функция
    • Методы разрешения колизий
      • Метод цепочек
      • Последовательность проб
  • Дерево
    • Бинарное дерево поиска
    • 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
        • Селективность и кардинальность
        • Кластерные индексы
        • Покрывающие индексы
      • Основы SQL
        • CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE, HAVING, GROUP BY, JOIN
      • Explain
      • Разное
        • Innodb vs MyIsam
        • Datetime vs Timestamp
    • PostgreSql
    • NoSql
      • Memcaced
      • Redis
        • Типы данных
        • Redis Cluster
        • Репликация и шардинг
      • Tarantool
      • Mongo
    • Брокеры сообщений
      • Rabbit
      • Kafka
    • Колоночные
      • ClickHouse
      • Vertica
    • Разное
      • Time-series
      • Blob-store
      • Сетевые
      • Графовые

Архитектура

  • Основы ООП
    • Инкапсуляция
    • Полиморфзим
    • Наследование
    • Композиция/агрегация
  • Паттерны 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