Эта база знаний описывает устройство, разработку и эксплуатацию программных систем: от аппаратных ресурсов, операционных систем и сетевых протоколов до пользовательских интерфейсов, распределённых систем и бизнес-процессов.
Материалы организуются по предметным областям. Каждая заметка раскрывает отдельную тему, а связи между заметками позволяют рассматривать технологии как части единой системы.
Области знаний
- Вычислительные системы — представление данных, процессоры, память, устройства ввода-вывода, процессы, потоки и базовые принципы выполнения программ.
- Операционные системы — управление вычислительными ресурсами, устройство Linux, файловые системы, пользователи, права доступа, процессы, службы и системное администрирование.
- Сети и протоколы — передача данных между системами, Ethernet, IP, маршрутизация, TCP, UDP, DNS, TLS, HTTP, балансировка нагрузки и сетевой доступ.
- Программирование и среды выполнения — языки программирования, системы типов, обработка ошибок, управление памятью, конкурентность, асинхронность, компиляция, интерпретация и среды выполнения.
- Алгоритмы и структуры данных — способы организации и обработки данных, вычислительная сложность, поиск, сортировка, деревья, графы и алгоритмические подходы.
- Данные и хранилища — моделирование данных, реляционные базы данных, SQL, транзакции, индексы, репликация, кеширование, поисковые системы и резервное копирование.
- Прикладные системы и интерфейсы — браузеры, пользовательские интерфейсы, frontend, backend, API, аутентификация, авторизация, интеграции и фоновые процессы.
- Проектирование программного обеспечения — качество кода, модульность, зависимости, шаблоны проектирования, архитектурные стили, предметное моделирование и архитектурные решения.
- Инфраструктура и платформы — физическая и виртуальная инфраструктура, контейнеры, Docker, облачные платформы, Infrastructure as Code, Terraform и Kubernetes.
- Доставка и эксплуатация — сборка, тестирование, артефакты, CI/CD, релизы, развёртывание, конфигурация, управление секретами, резервное восстановление и сопровождение систем.
- Наблюдаемость и диагностика — логи, метрики, трассировки, профилирование, проверки состояния, оповещения, анализ производительности и поиск первопричин неисправностей.
- Распределённые системы и надёжность — масштабирование, репликация, согласованность, очереди сообщений, распределённые транзакции, устойчивость к отказам и восстановление после сбоев.
- Безопасность — моделирование угроз, управление идентификацией и доступом, криптография, защита сетей, операционных систем, приложений, контейнеров и облачной инфраструктуры.
- Инженерный процесс — контроль версий, тестирование, рецензирование кода, документирование, управление зависимостями, автоматизация и принятие технических решений.
- Пользователь и бизнес — пользовательские сценарии, требования, бизнес-процессы, предметная область, продуктовые метрики, стоимость, риски и влияние технических решений.
Сквозные материалы
- Сквозные сценарии — последовательные разборы процессов, проходящих через несколько областей знаний: путь сетевого пакета, HTTP-запроса, пользовательского действия, данных, релиза или инцидента.
- Лаборатории и проекты — практические работы, эксперименты, реализации и законченные системы, подтверждающие применение теоретических знаний.
- Сертификации — экзаменационные требования, сопоставление тем сертификаций с материалами базы и практические сценарии для проверки готовности.