Данный репозиторий посвящен обучению, практике, тренировке, обдумыванию, играм, да и в целом веселью!
Здесь автор (я 👋) попробует расписать различные темы из информатики и IT. Пока что это будет уклон в backend-часть, однако кто знает, куда нас приведет дорога!
Будет здорово, если тут получится сделать условный учебник (ну или хотя бы методичку) для все заинтересованных.
О чем (пока что) примерно хочется поговорить:
- Computer Science в целом
- Устройство ПК
- Сеть
- Базовая информатика (системы счисления, форматы итд)
- Алгоритмы и структуры данных
- Командная строка (Linux)
- Система контроля версий
- Git
- GitHub, GitLab
- Язык программирования
- Конкретные языки (Python, Go, Java ...)
- ООП и функциональное программирование
- Паттерны проектирования
- Параллельное программирование
- Веб-фреймфорки
- Тесты
- Базы данных
- Конкретные базы (Postgres, Redis ...)
- SQL
- ACID
- Транзакции
- Констрейны
- Индексы
- Оптимизация
- Репликация, шардирование, партицирование
- API
- Polling, вебхук
- Сокеты
- REST
- Идемпотентность
- RPC (gRPC)
- GraphQL
- Документирование API (Swagger)
- Веб-сервера
- Nginx
- Ngrok
- Тестирование и мониторинг
- Теория тестирования
- Пирамида тестирования
- Sentry
- ELK
- Безопасность
- Атаки (CSRF, XSS, MITM ...)
- Аутентификация и авторизация
- HTTPS, SSL/TLS
- Брокеры сообщений
- RabbitMQ
- Kafka
- Введение в HighLoad
- Профилирование
- Кэширование
- Троттлинг
- Load balancing
- Архитектура и дизайн приложений
- Архитектуры приложений
- DDD
- Event Sourcing
- DevOps
- Docker, docker-compose
- Виртуальные машины
- Kubernetes
- Облака
- Ansible
- CI/CD
Это ни в коем случае не оглавление... Скорее так, набросок. В дальнейшем же, если получится, можно эту структуру причесать (а вот и первое TODO). Понятное дело, что это далеко не все темы. Будем надеяться, что потихоньку всё освоим!