Python-разработчик

Изучи основы Python

Старт потока №5

3 октября

Конец обучения

14 ноября

Начни учиться прямо сейчас с демо-доступом ко всему курсу. Действует сутки. Дерзай!

Ты научишься
  • Работать с изменениями кода проекта с помощью Git и GitHub
  • Решать задачи на Python и разрабатывать сайты при помощи фреймворка Django
  • Применять принципы клиент-серверного взаимодействия и работать с базами данных
  • Работать с API сторонних сервисов и проводить Unit-тестирования

А вот технологии, с которыми ты будешь работать:
GitHub
Python
PyCharm
Django
PyQt
SQL
Coverage
Flask
Почему стоит учиться у нас
У нашего учебного центра есть лицензия, поэтому ты сможешь вернуть 13% стоимости за счет налогового вычета
К концу курса ты создашь 3 полноценных проекта, которые можно будет включить в портфолио
Автор курса: Леонид Крутовский
  • Senior software engineer
  • Backend разработчик на Python в нескольких стартапах
  • Software architect
  • Опыт использования C\C++ Rust Java Python
  • Занимается менторством разработчиков
Программа
0. Бесплатный мини-курс «Войти в IT»
Чтобы вы могли быстро найти варианты реализации в IT, мы подготовил бесплатный мини-курс «Войти в IT». Он поможет выбрать направление по душе и сделать первые шаги в backend и frontend.
Пройти бесплатный мини-курс прямо сейчас!

  • Как попасть в IT без опыта и остаться там
  • Ошибки в поиске работы в IT и как их не допускать
1. Знакомство
Цель: познакомиться со спикером и подготовиться к курсу.

Рассказ о курсе: структура, кому подойдёт, как его проходить. Рассказ о Python: что за язык, где применяется.

Практика: поставить интерпретатор, hello world.
2. Подготовка к курсу
Цель: настроенный Git, знание альтернатив и понимание основных терминов

Создание аккаунта и настройка Github, настройка SSH. Базовые знания про память и процессор. Рассказ про компиляторы и интерпретаторы.

Практика: создать новый репозиторий, описать в READ.ME его цель, запушить на Github, сделать настройки видимости репозитория.
3. Основы
Цель: полностью настроенная инфраструктура (управление зависимостями, управление версиями, виртуальные среды).

Первые программы из IDE или из файла. IDE: Visual Studio Code, преимущества и настройка, альтернативы, PyCharm — Idea, PEP8, linter стандарты кода.

Практика: скачать с Github проект, сделать VE через PIPENV, установить зависимости и запустить. Воспользоваться Poetry вместо PIPENV, использовать внутри IDE. Автоматическая проверка линтерами.
4. Язык программирования Python
Цель: научиться писать простейшие программы, решать элементарные задачи, правильно применять типы данных

Переменные и встроенные типы. Структуры данных. Строки и форматирование. Словари и множества. Comprehensions, lambda, filter, map, collections

Практика: модифицировать примеры. Работа с библиотеками: подключить, задействовать функции. Рекурсивный обход словарей и обход графов сложные фильтрации, вложенные сomprehensions. Валидатор скобок.
5. Тестирование
Цель: разобраться в терминах, научиться писать юнит-тесты и полностью покрывать тестами свои решения.

Основы тестирования: unittest, pytest, сoverage.

Практика: покрыть тестами предыдущие задания, которые запушены на Github, и проверить через Coverage. Настроить Github actions на тесты и Coverage.
6. Взаимодействие с ОС
Цель: разобраться в стандартных вопросах и общих принципах работы с сетью.

Что такое ОС, процесс и поток, GIL, Linux\POSIX, файловая система. Работа с сетью в ОС

Практика: повторить и модифицировать примеры использования. Работа с генератором случайных строк в файл. Чтение файла, сортировка строк, написание файла. Ускорение генератора строк с помощью multiprocessing.
7. Десктоп
Цель: разобраться в стандартных вопросах, научиться пользоваться наследованием и написать простейшую программу на Qt.

Основы ООП: наследование, полиорфизм, MRO. ООП в Python. PyQt widgets. Обзор технологии QML: сравнение с JavaScript, обсуждение MVC, разделения frontend и backend.

Практика: повторить и модифицировать примеры использования. Написать простейшее приложение в 6-10 элементов. Переписать предыдущий пример с widgets на QML.
8. Десктоп PyGame
Цель: научиться использовать pygame, закрепить предыдущие знания

Поиск примеров на Github, запуск, демонстрация без разбора кода

Практика: расширить функциональность того, что написали. Написать меню с кнопками и своим курсором.
9. Базы данных
Цель: разобраться, что такое SQL, какие бывают знает типы хранилищ и инструменты.

Основы SQL. Виды хранилищ и баз данных. Обзор самых популярных инструментов. ORM общие сведения, CRUD. Active Record vs Data Mapper

Практика: доработать код, написанный в видеоуроке, соединить результат практики из этого модуля и из урока про работу с сетью.
10. Пишем бота
Цель: разобраться, как работают боты и что такое API.

Что такое API, читаем документацию. Качаем библиотеку, пробуем простой пример. Пишем своего простого бота, типа запрос с Ютуба или из Википедии.

Практика: соединить результат предыдущей практики с ботом. Написать своего бота с кнопками в Telegram.
11. WEB-основы
Цель: разобраться, как пишутся сайты и веб-сервисы, какие есть протоколы и инструменты проектирования API.

Что такое web и с чем его едят. Место Python в web, обзор фреймворков. Как проектировать, ApiFirst, стили проектирования, OpenAPI. SOAP, RPC.
12. Django
Цель: научиться писать бэкенд на Django.

Основы Django: подключение БД, настройка Hello World. Проектируем API для бэкенда. Подключаем DRF. Создаем контроллер для постов

Практика: написать контроллер для комментариев и тесты для контроллеров. Дописать систему диалогов (ответов) в комментариях. Добавить авторизацию.
13. Flask и FastApi
Сравнение Flask с Django. Пример кода на Flask с разбором. Практика: расширить функциональность кода из примера.
14. Бонусный курс «Git»
Тема 1: Философия командной разработки
  • Основные аспекты современной командной разработки
  • Системы контроля версий, основные функции
  • Краткая история создания программного продукта. Как системы контроля версий вписываются в процессы?
Тема 2: Популярные хостинги разработки ПО
  • Gitlab, Github
  • Регистрация на Gitlab
Тема 3: Основы Git
  • Установка Git
  • Что такое репозитории и как ими пользоваться?
  • Коммиты. Как сохранять изменения в репозитории?
  • Ветвление в Git
  • Обмен изменениями с удалёнными репозиториями
  • Сложные кейсы слияния веток
  • Управление историей изменений в Git
Тема 4: Практики использования Git в командах
  • Удачные модели ветвления в Git
  • Что такое код-ревью? Как Gitlab помогает его организовать?
  • Что такое CI/CD? Как с ними интегрируется Git?
Тема 5: Личная конфигурация Git для удобной работы
Можно учиться командой
Отправьте свою команду на наш курс и вы ускорите разработку проектов.



Обучаться в команде продуктивнее, потому что:

— коллеги смогут уже во время обучения обсуждать рабочие задачи;


— все будут говорить «на одном языке»;


— совместное обучение сплачивает команду.

Старт потока 3 октября
Видеоуроки

Домашние задания

19 900
Python-разработчик
Если у тебя есть вопросы об обучении или о построении карьеры в IT, то ты можешь задать их в закрытом Telegram-чате.