IT База
В этом модуле мы должны закрыть все пробелы по основам Software Engineering и по основным темам бэкенд разработки.
IMFO: Applied AI engineer не должен быть специалистом по бэкенд разработке, но вы сами должны углубиться с уровнем погружения + пропускайте знакомые темы.
- Хотите быстрее перейти к разработке Агентов? - изучите данные темы поверхностно - возвращаясь к погружению в SWE по ходу промышленной разработки.
- Для Full-time learners: тратьте 0.5-1 дня на модуль
- Для Part-time learners: тратьте 1-2 дня на модуль
- Хотите углубленные знания? - будет полезно будущим архитекторам
- Для Full-time learners: тратьте 1-2 дня на модуль, поверхностно проходите Extra/Silver секции
- Для Part-time learners: тратьте 2-4 дня на модуль, поверхностно проходите Extra/Silver секции
Так как данные темы не меняются со временем, лучше всего вам изучать их с персональным преподавателем - ChatGPT.
Процесс изучения должен быть следующим:
- вы составляете системный промпт для ChatGPT (шаблоны), где описываете свой бэкграунд, предпочтения, уровень подробности объяснений и т.д.
- копируете тему из списка (тройной клик), и просите ChatGPT объяснить вам эту тему
- при желании углубиться, задаете уточняющие вопросы
На данный момент это самый удобный способ изучения основ. Кроме концептов, вы можете изучать дополнительные материалы в секциях Gold, Silver, Extra.
- Gold - стоит обязательно изучить до общения с ChatGPT
- Ask AI - задавайте вопросы по каждой малознакомой теме
- Silver - второстепенные материалы
- Extra - углубленные темы
Gold
1. Не группировано
Замечательная коллекция коротких видео с Merion Academy.
Бинарный поиск (канал)
System Design Fundamentals by ByteByteGo
Видео by ByteByteGo
2. Git и Github
Git и Github
Ask AI
Темы для последовательного изучения с ChatGPT (сгруппированы по категориям):
Сетевые основы и протоколы
How the internet works
-
HTTP vs HTTPS: ключевые различия и влияние на безопасность
-
TCP/IP: базовые принципы работы (кратко)
-
HTTP коды состояния: практическое применение (2xx, 4xx, 5xx)
HTTP коды состояния: классификация и использование (2xx, 4xx, 5xx), кратко
-
WebSockets vs HTTP Long Polling: сравнение подходов (концепт)
-
CORS: настройка безопасности для кросс-доменных запросов
CORS in 100 Seconds
Что такое Rest API (http)? Soap? GraphQL? Websockets? RPC (gRPC, tRPC). Клиент - сервер. Вся теория
Архитектура API и веб-сервисов
-
REST vs SOAP: сравнение для начинающих
-
Stateless vs Stateful: преимущества для масштабирования
-
CRUD операции: базовые паттерны работы с данными
-
RESTful API: 6 ключевых принципов проектирования
-
API версионирование: стратегии для backward compatibility
-
OpenAPI/Swagger: автоматизация документации (обзорно)
-
GraphQL vs REST: критерии выбора технологии
GraphQL vs REST: когда использовать
-
Webhooks: реализация асинхронных уведомлений
Webhooks: механизмы работы и применение
-
API Gateway: архитектурные паттерны (обзорно)
API Gateway: роль в микросервисной архитектуре
-
API rate limiting: защита от DDoS и злоупотреблений
-
Микросервисы vs Монолит: анализ trade-off
Микросервисы vs Монолит: когда что использовать
Видео по API
Принципы разработки и тестирование
-
SOLID: практическое применение в бэкенде
-
DRY/KISS/YAGNI: антипаттерны и решения
-
Тестирование в бэкенде: пирамида тестов (сравнение)
Top 9 Most Popular Types of API Testing
-
TDD: workflow для начинающих
-
A/B тестирование: архитектурные подходы
-
Feature flags: управление релизами (кратко)
-
SemVer: семантическое версионирование на практике
-
Структурированные логи: best practices
-
Мониторинг: ключевые метрики SLA
- Обработка ошибок и логирование: стандартные подходы, middleware
- Прокси-серверы
Git и CI/CD
- Git-flow: стратегии ветвления в команде
- CI/CD: пайплайн от коммита до продакшена
Безопасность и аутентификация
-
JWT: реализация токенов в микросервисах
JWT токены: структура и способы использования
-
OAuth2: флоу авторизации для API
OAuth2: принципы авторизации
-
Хеширование паролей: современные стандарты безопасности
Хеширование паролей: безопасное хранение учетных данных
-
Secret management: Vault и аналоги (обзорно)
12 tips for API security
Асинхронность и параллелизм
- Асинхронное программирование: event loop и callbacks (концепт и сравнение с синхронным кодом)
- Многопоточность vs Мультипроцессинг: Python специфика (концепт и ключевые отличия)
- Python GIL: обзор проблемы и подходы к обходу
- asyncio: основы работы с корутинами (практические примеры использования)
- Фоновые задачи: очереди и планирование (реализация через Celery/Redis)
Архитектурные паттерны
Архитектурные паттерны
- Dependency Injection: Практическое внедрение зависимостей (инверсия контроля)
- Фабричный паттерн: Создание объектов через фабрики (концепт и сравнение с другими паттернами)
- Singleton: Глобальные ресурсы и антипаттерны (Обзорно для начинающих)
- Валидация данных: Pydantic/Schema модели (ключевые библиотеки и подходы)
- Сериализация объектов: JSON/Protobuf/MessagePack (форматы и оптимизация передачи)
- Идемпотентность API: Гарантия однократного выполнения операций
Дополнительные темы
- Agile, Scrum, Kanban: базовые методологии разработки (концепт и сравнение)
- Software Development Life Cycle (SDLC): стадии разработки, планирование, ревью кода (Обзорно для начинающих)
- DevOps: основные принципы и инструменты (Обзор ключевых аспектов)
- Load Balancing: базовые принципы и инструменты (концепт и сравнение подходов)
Silver
System Design Fundamentals Playlist - by ByteByteGo