Складчина: Курс Python Full Stack розробник [javarush]
Онлайн курс з нуля до працевлаштування за 12 місяцівКурс Python Full Stack розробник
Навчаючись на курсі з ментором, опануй розробку на Python — від основ до технологій рівня Middle-фахівця, і створи 5 крутих проєктів для свого портфоліо.
Скрытая ссылка Онлайн-заняття з менторами
Відеолекції з розбором нових тем двічі на тиждень, відеозаписи надаються.
Скрытая ссылкаВід “бази” до просунутих технологій
5 модулів навчання: лекції, задачі, практичні проєкти.
Тривалість курсу – рік. Вартість курсу вказана за 1 місяць.
Скрытая ссылка Диплом JavaRush, що підтверджує знання
Сертифікат про завершення курсу, який можна додати до резюме
Скрытая ссылкаПосилена підготовка до першої роботи в IT
Консультація з HR-експертом щодо резюме, відеолекції про підготовку до співбесід
Твої кар’єрні перспективи як Python‑розробника
Скрытая ссылка
Детальна програма навчання
Online навчання на Python‑розробника включає в себе 5 модулів з лекціями, практикою і підсумковими проєктами (від новачка до рівня Middle‑розробника), а також фінальний проєкт.
МОДУЛЬ 1. PYTHON CORE.
- Знайомство з ІТ-індустрією. Будова ІТ-компаній та розробка продукту.
- Налаштування середовища розробки. Встановлення та робота в PyCharm. Створення першого проєкту. Знайомство з Python та основи Scrum.
- Основи синтаксису Python. Змінні, оператори та введення даних. Умовні конструкції if/else. Цикли for та while.
- Типи даних у Python: числові, дійсні, логічні. Перетворення типів. Створення функцій, параметри, return та області видимості змінних.
- Колекції: списки (List) та кортежі (Tuple). Робота з елементами: додавання, видалення, зрізи. Цикли та генератори списків.
- Колекції: множини (Set). Операції над множинами. Просунута робота з рядками, зрізи та escape-символи.
- Колекції: словники (Dictionary) та незмінні множини (frozenset). Робота з парами ключ-значення. Цикли та генератори словників.
- Розширені можливості функцій: лямбди, замикання, генератори та декоратори. Робота з вбудованими бібліотеками. Модуль datetime.
- Основи ООП. Класи та об'єкти, ініціалізатори. Успадкування, поліморфізм, множинне успадкування та порядок розв'язання методів (MRO).
- Помилки та винятки. Обробка винятків за допомогою try-except. Створення власних винятків. Налагодження програм у PyCharm.
- Модулі та пакети. Імпорт та створення власних модулів. Пакетні менеджери. Ітератори та перевантаження операторів.
- Робота з файлами: читання, запис, оператор with. Робота з файловою системою та директоріями. Серіалізація об'єктів за допомогою модуля pickle.
- Формат JSON та його застосування. Робота з мережею: HttpClient, Proxy, сокети. Взаємодія з публічними та AI API.
- Основи асинхронного програмування. Багатопотоковість та модуль threading. Бібліотека asyncio: Event Loop, завдання (Task) та Future.
- Робота з системою контролю версій Git та GitHub. Практичне освоєння GUI в PyCharm: Commit, Push, Branch. Налаштування файлу .gitignore.
- Створення багатофункціонального Telegram-бота з інтеграцією ChatGPT
Робота з мережею
- Основи будови мережі: модель OSI, принципи роботи підмереж, DNS, NAT та VPN.
- Вивчення протоколу HTTP: клієнт-серверна архітектура, структура URL, HTTP-методи, коди відповідей, заголовки та введення в REST.
- Автоматизація роботи з даними в Excel за допомогою Python та pandas. Вивчення читання, запису, фільтрації, сортування та групування даних. Об'єднання, очищення таблиць, створення зведених звітів та їх експорт.
- Вивчення основ HTML: структура документа, базові теги, списки, таблиці та форми. Введення в CSS: способи підключення, основні, комбіновані та атрибутні селектори для стилізації елементів.
- Введення у веб-скрейпінг: встановлення requests та BeautifulSoup, парсинг HTML. Вивчення методів пошуку (find, find_all, select) за тегами, атрибутами та CSS-селекторами. Вилучення тексту та атрибутів з таблиць та списків.
- Просунуті техніки веб-скрейпінгу: обхід обмежень за допомогою user-agent, cookies, проксі та обхід CAPTCHA. Робота з динамічним JavaScript-контентом, пагінацією та складними HTML-структурами. Використання API, налаштування повторних спроб, тайм-аутів та кешування для створення стійких та продуктивних скрейперів.
- Освоєння Selenium для автоматизації браузера: налаштування драйвера, пошук елементів за ID, class, XPath та CSS. Взаємодія з формами, кнопками та динамічними елементами, вилучення даних, прокручування та навігація.
- Розробка та оптимізація стійких скриптів: планування, структурування коду, логування, обробка помилок, обхід пагінації та тестування.
- Основи Linux. Вивчення командного рядка, навігація файловою системою, робота з файлами та директоріями.
- Адміністрування Linux. Управління користувачами та групами, налаштування прав доступу до файлів, моніторинг та управління системними процесами.
- Введення у Docker. Порівняння контейнерів та віртуальних машин. Встановлення, основні команди та знайомство з Docker Hub.
- Основи роботи з Docker. Створення та управління контейнерами, робота з логами, перенаправлення портів та монтування томів для постійного зберігання даних.
- Робота з Docker-образами. Створення образів за допомогою Dockerfile, вивчення основних інструкцій, управління образами, їх оптимізація та публікація в Docker Hub.
- Docker Compose. Введення в оркестрацію контейнерів. Створення docker-compose.yml для управління багатоконтейнерними застосунками, налаштування мереж, томів та масштабування сервісів.
- Розробити простий та ефективний сервіс для хостингу зображень. Користувачі можуть завантажувати свої зображення через веб-інтерфейс, а натомість отримувати пряме посилання для їх перегляду або публікації в інтернеті. Технології: Python, Nginx, Docker.
- Вивчення реляційної моделі даних та синтаксису SELECT. Фільтрація даних за допомогою WHERE, сортування з ORDER BY, обмеження виведення через LIMIT та OFFSET для пагінації, а також вилучення унікальних значень з DISTINCT.
- Агрегування та групування даних. Застосування агрегатних функцій (COUNT, SUM, AVG, MIN, MAX), групування результатів з GROUP BY та фільтрація груп з HAVING. Огляд основних числових та часових типів даних.
- Розуміння та обробка NULL значень за допомогою IS NULL, COALESCE та CASE WHEN. Використання підзапитів для складної фільтрації даних з операторами IN та EXISTS.
- Об'єднання таблиць: освоєння INNER JOIN та LEFT JOIN для зв'язування даних з кількох таблиць. Вивчення концепції зовнішніх ключів та моделювання зв'язків ONE-TO-MANY та MANY-TO-MANY.
- Створення та зміна таблиць за допомогою CREATE та ALTER TABLE з використанням обмежень. Вставка, оновлення та видалення даних командами INSERT, UPDATE, DELETE.
- Це розвиток та ускладнення початкової версії сервісу. Ключове нововведення — інтеграція з базою даних PostgreSQL. Вся архітектура, як і раніше, будується на Docker та Docker Compose, але тепер включає три взаємопов'язані сервіси: бекенд на Python, веб-сервер Nginx та базу даних PostgreSQL.
Бекенд на Django
- Знайомство з Django, архітектура проєкту та базові компоненти
- Налаштування оточення: віртуальні середовища, встановлення залежностей, файли налаштувань, конфігурація БД, статичні файли.
- Робота з представленнями (Views) та маршрутизацією (URLConf): створення функцій-представлень, зв'язування URL, динамічні URL, обробка параметрів.
- Класові представлення (Class-Based Views): відмінності від FBV, базові CBV, TemplateView, ListView, DetailView, перевизначення методів.
- HTML та шаблони Django: контекст, успадкування (base.html), теги (include, extends, block), фільтри, статичні файли.
- Створення застосунків (Apps): структура, реєстрація, маршрутизація на рівні застосунків, організація коду в застосунку.
- Основи Django ORM: моделі, типи полів, міграції, робота з БД через shell, CRUD-операції.
- QuerySets та CRUD: створення, читання, фільтрація, оновлення та видалення даних. Ледаче завантаження, пагінація.
- Зв'язки між моделями: OneToOne, ForeignKey, ManyToMany, робота з пов'язаними об'єктами, оптимізація запитів.
- Агрегації, анотації та фільтрація даних: aggregate(), annotate(), Sum, Avg, Count, Q-об'єкти, F-об'єкти.
- Django Admin: реєстрація моделей, кастомізація відображення, ModelAdmin, фільтри, пошук, дії.
- Django Forms: створення, обробка та валідація форм, вбудовані валідатори, віджети, відображення помилок.
- ModelForms: створення форм на основі моделей, збереження даних, кастомізація полів та методів.
- Message Framework: сповіщення користувача, типи повідомлень (success, error, info), відображення в шаблонах.
- Аутентифікація в Django: User модель, сторінки реєстрації, входу та виходу, обмеження доступу.
- Введення в Django REST Framework: встановлення, налаштування, серіалізатори, маршрутизація API, обробка HTTP-методів.
- Серіалізація даних з DRF: Serializers, ModelSerializers, налаштування полів, вкладені та пов'язані серіалізатори, валідація.
- Аутентифікація та дозволи в DRF: токени, JWT, налаштування, використання дозволів.
- Пагінація та фільтрація даних в API: базові налаштування, DjangoFilterBackend, пошук, упорядкування даних.
- ViewSets та Routers: ViewSets, ModelViewSet, GenericViewSet, SimpleRouter, DefaultRouter, кастомізація маршрутів.
- Кастомізація дозволів та безпека API: IsAuthenticated, IsAdminUser, створення кастомних дозволів, CORS, HTTPS.
- Тестування API: pytest-django, DRF тест-клієнт, тестування серіалізаторів, представлень, Mock-тестування.
- Документування API: drf-yasg для Swagger та Redoc, генерація документації, Swagger UI.
- Введення в GraphQL з Django: Graphene-Django, створення API, визначення схеми, запити, мутації, Apollo Client.
- Складні GraphQL запити та оптимізація: вкладені запити, DataLoader, пагінація, фільтрація, обробка помилок.
- Робота з сервером. Налаштування підключення, робота в терміналі linux, встановлення та налаштування веб- та проксі-сервера, налаштування SGI
- Деплой веб-застосунку на сервер. Моніторинг роботи застосунків
- Робота з контейнерами. Автоматизація деплою. CI/CD
- Додаткові інструменти. PostgreSQL, Docker Hub, GitHub Actions
- Робота з хмарами. Налаштування та конфігурація віртуальних машин
- Робота з AWS. Робота з Azure. Google Cloud
- Створення повноцінного інтернет-магазину, який трансформує готовий статичний дизайн у динамічний веб-застосунок.
- Розробка буде вестися з акцентом на створення двох основних інтерфейсів: традиційного веб-інтерфейсу для користувачів (з сесійною аутентифікацією) та REST API для зовнішніх клієнтів (з JWT-авторизацією). Вся інфраструктура буде контейнеризована з використанням Docker Compose та PostgreSQL.
Основи FastAPI та створення API
- Введення у FastAPI: порівняння з іншими фреймворками, встановлення, створення першого API, маршрутизація, параметри запитів, відповіді JSON, вбудована документація Swagger.
- Створення асинхронного REST API з FastAPI: async/await, CRUD-операції (GET, POST, PUT, DELETE), параметри шляху та запитів, обробка помилок та винятків.
- Валідація даних з Pydantic: створення моделей для валідації вхідних та вихідних даних, використання Field, вкладені моделі, кастомізація повідомлень про помилки.
- Аутентифікація та авторизація з OAuth2 та JWT: концепції OAuth2 та JWT, генерація та перевірка токенів, захист ендпоінтів, налаштування рефреш-токенів.
- Тестування FastAPI-застосунків з Pytest: встановлення Pytest, тестування GET/POST запитів з TestClient, мокування зовнішніх API, тестування аутентифікації, фікстури.
- Робота з SQLAlchemy: основи ORM, створення моделей даних, виконання CRUD-операцій, реляційні моделі, інтеграція з FastAPI та Django.
- Міграції з Alembic: роль Alembic, створення та відкат міграцій, управління версіями БД, інтеграція з FastAPI та Django, синхронізація міграцій.
- Введення в NoSQL бази даних (MongoDB): особливості, встановлення, CRUD-операції, інтеграція з FastAPI (motor), асинхронні запити, робота з колекціями.
- Кешування з Redis: навіщо потрібне кешування, принципи роботи Redis, встановлення, підключення до FastAPI, кешування запитів та сесій, оптимізація продуктивності.
- Порівняння SQL та NoSQL баз даних: коли використовувати кожен тип, приклади гібридних рішень, управління даними в різних базах.
- Оптимізація роботи з SQLAlchemy: транзакції, зв'язки (OneToOne, ManyToMany), оптимізація запитів, індекси, агрегації, підзапити, профілювання.
- Асинхронна взаємодія з RabbitMQ: черги повідомлень, продюсери, консьюмери, асинхронна робота з FastAPI, постійні черги.
- Celery для фонових завдань: встановлення, налаштування, виконання фонових завдань, інтеграція з RabbitMQ, відстеження статусу завдань, Celery Beat для планування.
- Паралельна обробка завдань: налаштування в Celery, використання кількох воркерів, оптимізація черг з Celery та RabbitMQ, балансування навантаження.
- Обробка помилок та повторне надсилання повідомлень: обробка помилок у RabbitMQ та Celery, retry-механізми, dead-letter queues (DLQ), логування, управління таймаутами.
- Інтеграція FastAPI із зовнішніми API: httpx для асинхронних запитів (GET, POST), валідація даних, обробка помилок, приклади інтеграції (OpenWeatherMap, GraphQL).
- Робота з Google API: Google Cloud Console, OAuth2, Google Sheets API, Google Drive API, Google Maps API, асинхронна обробка запитів, ліміти.
- Створення Telegram-бота з FastAPI: основи Telegram-ботів, python-telegram-bot, Webhooks, асинхронна обробка повідомлень, команди, логування, інтеграція із зовнішніми API.
- Робота з Telethon та Telegram API: Telethon, створення Telegram-клієнта, отримання даних з каналів/чатів, асинхронне читання/надсилання повідомлень, обробка подій, інтеграція з FastAPI.
- Обробка помилок та винятків у FastAPI: стандартні HTTP-помилки, користувацькі помилки, кастомні обробники, логування, middleware для помилок, глобальний обробник.
- Налаштування CORS та безпека API: Cross-Origin Resource Sharing (CORS), налаштування у FastAPI, захист API токенами безпеки, SSL, крос-доменні запити.
- Проєкт спрямований на створення автоматизованого сервісу для агрегації та розповсюдження новин. Основне завдання — збирати актуальні новини з різних джерел, фільтрувати їх за заданими критеріями та публікувати у вказаний канал.
- Сервіс працюватиме за розкладом, використовуватиме фонові завдання для обробки даних та надаватиме програмний інтерфейс для управління налаштуваннями та перегляду останніх оновлень
Породжувальні патерни
- Singleton
- Factory Method
- Abstract Factory
- Prototype
- Builder
- Lazy Initialization
- Object pool
- Adapter
- Decorator
- Proxy
- Bridge
- Facade
- Composite
- Flyweight
- Iterator
- Command
- Observer
- Visitor
- Mediator
- State
- Strategy
- Template Method
- Chain of Responsibility
- Memento
- Interpreter
- Магічні числа та рядки
- Клас бога
- Передчасна оптимізація
- Винаходження велосипеда
- Знайомство з алгоритмами. Лінійний та бінарний пошук. Алгоритмічні задачі
- Структури даних. Графи. Оперативна пам'ять та представлення даних, масиви постійного розміру, динамічні масиви, зв'язні списки, хеш-функції та інші структури даних
- Рекурсія та сортування. Рекурсивний та базовий випадки, рекурсивний бінарний пошук, алгоритми сортування, вибір алгоритму сортування та їх порівняння
- Складність алгоритмів. Часова та просторова складність алгоритмів, нотація Big O
- Методи розв'язання задач. Наївні методи, метод двох вказівників, метод ковзного вікна тощо.