Программа курса "Практический Python"
Михаила Кашкина
Ступень 1
Продолжительность 6 недель
Введение
Знакомство и объяснение вещей, которые помогут проще усваивать материал. Объяснение что такое программирование и почему именно вы можете освоить его.
  • Добро пожаловать
  • Как учиться
  • Программирование — это ремесло
  • Что значит быть программистом
Обзор программы курса
В этом разделе мы разберемся с возможностями обучающей платформы и обсудим как будет устроен курс. Обсуждение планов закладывает основу для правильного усваивания информации в дальнейшем курсе. Этот раздел служит для того, чтобы новые вещи у вас сразу ложились на логическую структуру и было понятно как они связаны друг с другом.

  • Цели курса
  • Запуск кода в тренажере
  • Как будет устроено обучение
Базовые типы переменных и операторы
Изучение основ языка программирования Python с помощью онлайн тренажера. Переменные — это базовая часть языка, мы разбираем чем они отличаются друг от друга и правила именования переменных. Узнаем, что у переменных бывает тип и что разные типы ведут себя по-разному. Вы сможете выполнить код, который напишете сами прямо в браузере. После этого раздела вы уже будете смотреть на чужой код как на что-то в чем видны понятные вещи.

  • Переменные и типы
  • Использование переменных
  • Вывод с помощью print
  • Числа
  • Бинарные числа
  • Логический тип
  • Строки
  • Функции для работы со строками
  • Форматирование строк
  • Операторы
Коллекции
Комплексные типы языка Python. Поскольку схема данных является принципиально важной частью любой программы, то мы дальше погружаемся в базовые типы языка. Но теперь они не просто разрозненные кусочки данных, а могут быть объединены в что-то более привычное и сложное. На пример список людей из адресной книги или список подписчиков из социальных сетей. В конце блока вы увидите, что коллекции имеют много общего и в чем их конкретные отличия

  • Кортежи (tuple)
  • Списки (list)
  • Множества (set)
  • Словари (dict)
  • Конструкторы множеств
Блоки инструкций
С этого раздела мы уже переходим к части языка, которая позволяет делать логическую структуру программы. Это все еще фундамент, но уже последняя его часть. После этой части вы будете знакомы с базовым синтаксисом языка. Это еще не все, но уже достаточно чтобы писать небольшие полезные программы.

  • Синтаксис языка
  • Оператор ветвления if, elif, else
  • Циклы
Файлы
Файлы позволяют хранить данные. В этом разделе мы учимся манипулировать файлами. Это уже на 100% практические знания, которые нужны каждому программисту в ежедневной работе.

  • Создание и открытие файлов
  • Форматы файлов
  • Работа с JSON файлами
Функции
Функции и классы завершают изучение необходимого синтаксиса чтобы понимать работу 90% исходных кодов, которые вам будут встречаться в работе. Мы научимся создавать компоненты, которые можно многократно использовать в работе. И практически приближаемся к самостоятельной работе над крупным проектом

  • Создание своей функции
  • Вызов функций другого модуля
Классы
Классы — это комплексное понятие, которое вызывает сложности в понимании у многих людей, изучающих программирование. И важная концепция, которую необходимо понимать, чтобы двигаться в профессии. Мы нашли способ объяснить классы так чтобы они были просты и понятны всем. Начиная с этого момента вы будете писать код, который состоит из десяток строк кода.

  • Создание экземпляра класса
  • Методы класса
  • Переменные класса и состояние
Подготовка компьютера и локального окружения
Получив первый опыт написания кода, мы можем приступить к настройке локального рабочего места. Вы получите инструкцию как поставить современную версию Python на свой компьютер и сможете запустить первую программу. Для полноценной работы вам необходим редактор, который мы тоже установим. Теперь ваш компьютер становится рабочим местом программиста

  • Установка Python на macOS
  • Установка Python на Windows
  • Выбор редактора кода
  • Запуск Python на локальной машине
  • Выполнение программ
  • Установка и настройка редактора VS Code
Подготовка к финальному проекту
Цель нашего курса — написать первую реальную программу: бот для работы с Телеграм. Вы напишете небольшой бот используя готовую библиотеку и зарегистрируете его в Telegram. Вы сможете отправить ссылку на бот друзьям и увидеть, что он реально работает. После этого получите первое большое домашнее задание на проработку. Во время самостоятельной работы вы сможете применить знания, полученные во время всего курса и увидеть, как вашими руками будет написана первая реальная программа

  • Создание виртуального окружения
  • Установка библиотеки для работы с Телегам
  • Регистрация бота через @BotFather
  • Принцип работы бота
  • Написание логики бота
  • Подготовка финального проекта
Написание проекта
Этот блок посвящен вашей самостоятельной работе над первым проектом. Результаты работы вы присылаете для разбора кураторам курса.

  • Сдача проекта
Создание портфолио
Вы написали код. Теперь надо сделать так чтобы он стал частью вашего будущего резюме. Вы зарегистрируетесь на сайте Github и опубликуете туда свой первый код.

  • Регистрация на Github
  • Публикация кода на Github
Завершение Ступени 1
Мы подводим итоги и разбираемся какие дальнейшие шаги надо сделать чтобы получить все необходимые знания для построения карьеры программиста

  • Что дальше?
  • Спасибо за работу!
Ступень 2
Продолжительность: 7 недель
Введение
Возвращаемся к обучению на новой ступени. Оцениваем, что уже известно и как пользоваться платформой

  • Введение: добро пожаловать
  • Введение: описание курса
Итераторы и генераторы
Одни из частых вопросов на собеседованиях посвящены итераторам и генераторам. Но, помимо этого, эти интерфейсы работы с данными используются в языке повсеместно. Мы разберемся с ними и научимся понимать и писать код с их применением

  • Итераторы
  • Использование памяти при применении генераторов
  • Функции для работы последовательностями
Расширенные блоки инструкций
Помимо обхода последовательностей или списков циклы имеют еще дополнительные возможности управления. Мы изучим ключевые слова break, continue и else для циклов. Познакомимся с тем, как обрабатываются исключения в случае возникновения проблемы и как сделать так чтобы код мог реагировать на подобные ситуации, и программа продолжала работать.

  • Дополнительные возможности циклов
  • Иерархия исключений
  • Обработка исключений с помощью try/except
Файлы
Работа с файлами требует большого количества мелких нюансов: следить за тем, чтобы их открыть, не забыть закрыть, убедиться, что файл есть или путь к нему существует. Все они могут превратить ваш код в сложный и некрасивый код, который тяжело поддерживать и понимать. В этот раз мы раз и навсегда избавимся от громоздкого кода и научимся работать с файлами так чтобы никогда не забывать их закрывать. А значит и не потерять случайно данные.

  • Оператор контекста with
  • Работа с файлами с помощью with
  • Работа с файлами с помощью библиотеки pathlib
  • CSV файлы
Функции и модули
Функции — это небольшие, независимые кусочки кода, которые можно многократно вызывать из других мест программы. Не использовать функции невозможно в более-менее крупной программе. Мы научимся создавать свои функции и объединять их в модули для многократного использования в своих проектах. Так же разберемся с одной из самых сложных тем — декораторами. Потому что вероятность что вы будете говорить о них на собеседовании равна почти 100%. Начнем готовиться к том,у чтобы писать большие проекты.

  • Создание своей функции
  • Аргументы функции
  • Возвращение функции
  • Анонимная функция lambda
  • Декораторы
  • Структурирование кода с помощью модулей
Классы и ООП
Классы и объектно-ориентированное программирование являются базой для написания реальных проектов. Каждая библиотека, включая встроенные в Python используют классы. С их помощью можно создавать свои собственные типы данных. Мы научимся писать свои классы, поймем терминологию
этой области знаний и разберемся как работают объекты полученные из классов

  • Конструктор и методы класса
  • Наследование
  • Алгоритм поиска методов
  • Выстраивание методов в последовательность
Модули
Мир Python'а имеет огромную экосистему готовых модулей. На текущий момент их опубликовано более 250 тысяч. Мы разберемся как можно настроить окружение для работы проекта и скачать необходимые модули. Как их обновлять и как переключаться между проектами. А также сделаем список обязательных шагов, которые надо сделать прежде чем, написать новый проект уже как профессионал

  • Что такое модули и как они работают
  • Установка модулей
  • Менеджер пакетов pip и файл requirements.txt
  • Настройка виртуального окружения
  • Обязательный чеклист запуска нового проекта
Популярные пакеты
Познакомимся с некоторыми популярными пакетами которые позволяют быстро и удобно решать частые задачи. Эти пакеты будут нам полезны для написания финального проекта курса. Но самое главное, что они используются миллионами программистов каждый день

  • requests
  • pillow
  • BeautifulSoup
  • pyscreenshot
Введение в HTML
Веб является одной из главных сфер применения Python'а. Понимая как работает основная технология веба мы можем создавать свои сайты или анализировать чужие. HTML это одна из базовых технологий которые необходимы программисту. Даже если в будущем придется заниматься далекими от веб-технологий вещам

  • Базовые теги
  • Дерево HTML документа
  • Создание страницы самостоятельно
Парсинг сайтов
Сайты содержат в себе множество данных. Мы научимся автоматизировать процесс извлечения данных из сайтов. Это очень частая задача автоматизации, которая может сэкономить недели или месяцы ручной работы. Умея парсить сайты вы обретете важный инструмент в своем рабочем инвентаре.

  • О парсинге сайтов
  • Подготовка окружения для нового проекта
  • Установка пакета requests
  • Получение кода страницы
  • Типы запросов GET и POST
  • Извлечение данных из страницы
Подготовка к финальному проекту
Для того чтобы выполнять реальные заказы нам необходимо научиться понимать нетехнических специалистов, которые общаются на языке далеком от терминов программистов. В этом блоке мы получим наш первый "коммерческий заказ" (в этот раз еще не оплачиваемый), но зато сможем пройти через сценарий успешного выполнения работы в качестве профессионального программиста

  • Задание от заказчика
  • Разбор "технического задания"
  • Планирование работы проекта
  • Дипломная работа: написание парсера сайта с помощью requests и beautifulsoup
Написание проекта
Этот блок посвящен вашей самостоятельной работе над заказом. Результаты работы мы совместно анализируем и даем обратную связь по поводу выполненной работы
Публикация портфолио
Новый выполненный проект необходимо опубликовать в вашем портфолио на сайте Github
Завершение Ступени 2
Ступень 3
Продолжительность 7 недель
Введение
Вы перешли на новую ступень обучения, и мы делаем краткий повтор тех вещей, которые вы уже знаете и обсуждаем новые знания, которые получите в конце этой ступени

  • Добро пожаловать
  • Описание курса
Интроспекция
Это новый термин, который позволяет вам узнавать, как работают объекты в сложных и крупных проектах. Этот и последующий блоки позволят вам научиться вам справляться с крупными и сложными

  • Что такое интроспекция
  • Помощники интроспекции
Память в Python
  • Как хранится переменная в памяти
  • Область видимости переменной
  • Подсчет количества ссылок
Отладка кода
  • Отладчик pdb
  • Отладчик в IDE
Автоматизация проверки кода
  • Помощники: pylint
  • Помощники: autopep8, black
  • Обновленный обязательный чеклист запуска нового проекта
  • make и Makefile
Как работает интернет
  • IP адрес и протоколы
  • Как работает DNS
  • Что такое сервер
  • HTTP протокол
  • Подробнее об URL
  • Исходный код страницы
  • Почему исходный код страницы в браузере не совпадает с исходным кодом полученным через HTTP
Веб фреймворк Flask
  • Что такое фреймворк и в чем отличие от библиотеки
  • Создание первого сайта
  • Создание карты адресов
  • Создание кода видов сайта
  • Обработка форм
Язык шаблонов Jinja
  • Bootstrap и другие конструкторы
  • Создание примеров страниц
  • Планирование структуры шаблоновbase.html и page.htm
Введение в базы данных
  • Введение в SQL
  • CRUD: создать, прочитать, обновить, удалить
  • Связи между таблицами с помощью JOIN-запросов
Введение в ORM SQLAlchemy
  • Создание моделей
  • CRUD операции через ORM
  • Сохранение данных запроса в базу
Финальный проект: Сокращатель ссылок
  • Зачем нужен сокращатель ссылок
  • Планирование сайта
  • Планирование базы данных
  • Регистрация пользователей
  • Авторизация
  • Добавление ссылки в базу
  • Дипломная работа: написание кода
Завершение Ступени 3
Мы подводим итоги текущего курса и обсуждаем какие вопросы можно дополнительно углублять в темах, которые мы затронули в этом курсе.
  • Что дальше?
  • Спасибо
Ступень 4
Продолжительность10 недель
Введение
Вы перешли на последнюю ступень обучения для новичков. То есть вы, конечно, уже не новички и вам осталась последняя ступень чтобы обладать всеми базовыми навыками. Теперь помимо знаний программирования мы еще и будем обсуждать построение карьеры и работу в коллективе
    Расширенные возможности ООП
    Классы в Python'е имеют не очевидные, но очень важные свойства. Разные классы реализующие специальные методы реализуют определенные протоколы. Поэтому язык еще называют языком протоколов. Познакомившись с методами, реализующими протоколы вы узнаете, как можно создавать свои типы данных работающие с операторами. А также углубимся в специализацию методов

    • Магические методы класса
    • Протоколы работы операторов
    • Статические методы staticmethod
    • Методы класса classmethod
    • Методы установки и чтения свойств класса (setter и getter)
    • Декоратор @property
    API
    Изучаем как интернет взаимодействует друг с другом. Чем могут быть полезны чужие сайты, на которых есть заветный раздел "API". Узнаем, как можно воспользоваться возможностями другого сайта и как обычно происходит такое взаимодействие

    • Что такое API и как с ним работать
    • Что такое REST
    • Что такое JSON
    • Специализация HTTP методов
    • Как работает API клиент
    • Чтение документации по API
    • Особенности авторизации для разных сервисов
    Создание API клиента
    Создаем клиент на Python который взаимодействует с чужим API. Инструмент, после которого вы навсегда начнете смотреть на привычные сайты по другом

    • Получение токена и отправка запросов
    • Как происходит взаимодействие с чужим API от лица другого пользователя
    Виды взаимодействий с сервером
    Погружаемся в мир API дальше. В этот раз мы научимся принимать события со стороны провайдера на низком уровне и сможем сами реализовать бота для Телеграм на низком уровне

    • Webhook и API клиент
    • Telegram бот с помощью webhook'а
    • Телеграм бот с помощью подключения
    • Задание: написать бот с информацией о текущей погоде с использованием AccuWeather AP
    Введение в тестирование
    Тестирование является важной частью программирования. Оно позволяет организовать работу кода так чтобы уменьшить шанс появления ошибок, а также доверие со стороны других программистов. Знание этих техник позволяет увеличить надежность и уровень доверия к коду.

    • Что такое тестирование
    • Запуск первых тестов
    • Подготовка условий для запуска тестов
    • Показатель покрытия тестами
    • Написание тестов для телеграм бота
    • Домашняя работа: написать тесты для бота
    Аннотирование кода
    Одно из недавних расширений языка — система типов. Она работает через аннотации, которые могут автоматически проверяться во время работы тестов. Мы изучим эту технологию для того, чтобы сделать ваши проекты еще более профессиональными и надежными.

    • Зачем нужна типизация
    • Аннотация простых типов
    • Модуль typing
    • Автоматизация проверки типов с помощью инструментов mypy и Pysa
    Git
    Git — это обязательный инструмент для работы с кодом. Даже если вы работаете самостоятельно, то сможете защитить свою работу от повреждений или ошибок. Для совместной работы — это главный инструмент для обмена кодом в коллективе.

    • Проблема совместной разработки
    • Зачем нужен Git
    • Создание репозитория и начальная настройка
    • Commit и просмотр изменений
    • Ветки и переключение между ними
    Организация совместной работы
    Погружаемся в изучение рабочего места программиста и правилах совместной работы над проектами

    • Работа в Gitlab
    • Pull Request
    • Проверка кода в команде (code review)
    • Что такое CI/CD и запуск тестов
    Подготовка к собеседованию
    Прохождение собеседований — это такой же навык, как и работа с кодом. Учимся быть более уверенными и готовыми к реальным собеседованиям. Атак же повышаем шансы успешного прохождения

    • Составление резюме
    • Публикация резюме и сбор отзывов
    • Какие вещи должны вызывать подозрение при поиске работы
    • Защита собственных интересов с помощью договора
    • Пример прохождения собеседования
    Первые дни в компании
    То, к чему готовиться на новом месте работы.

    • Получение учетных записей
    • Распределение ролей в команде
    • Кто за что отвечает в компания
    Гибкие методологии управления проектом (Agile)
    Как организации выстраивают совместную работу в коллективах

    • Работа с трекером заданий
    • Рабочий цикл заявки
    • Спринты, стендапы
    • Вехи (milestone)
    • Оценка сложности и стоимости задачи
    • Gitflow
    • Принятие работы тестировщиком
    Финальный проект
    Пишем финальный проект для портфолио и подключаем к нему все технологии автоматической проверки кода которые уже изучили во время работы над курсом

    • Покрытие тестами сокращателя ссылок
    • Подключение Travis-CI для проверки тестов
    • Автоматизированная проверка качества кода
    Завершение
    Мы подводим итоги всех ступеней и обсуждаем как правильно строить карьеру в перспективе на 1-2 и 5 и более лет.

    • Что дальше?
    • Спасибо
    Ваше резюме
    Python-разработчик, ЗП от 900$
    Профессиональные навыки:
    Python Core
    Система контроля версий Git
    Веб-вёрстка
    Async/await
    Деплой приложений и работа с docker/docker-compose
    Создание ботов
    Чистый код
    Работа с базами данных. Чистый SQL, ORM, Postgres
    Работа с внешними API
    Работа с фреймворками Django, Flask, FastAPI
    Проектирование API

    Ответы на часто задаваемые вопросы

    Для кого этот курс?
    Курс ориентирован в первую очередь на новичков любого возраста, которые решили получить профессию программиста с нуля, и дает полноценную подготовку. Но также наша программа подойдет тем, кто уже начал изучать основы программирования, хочет систематизировать знания и закрепить практику.
    Я никогда не программировал(а), смогу ли я учиться на этом курсе?
    Да, конечно. Программа рассчитана на новичков без опыта программирования и начинающих с небольшим опытом. Если вы уже знакомы с основами кодинга, то сможете обновить свои знания, получить практику и и развиваться далее. Если нет — мы вас всему научим с нуля.
    Сколько времени нужно уделять учебе?
    В зависимости от вашего опыта и сложности конкретного модуля потребуется примерно 10-15 часов в неделю. Это комфортный темп освоения материала и практики — особенно для тех, кто параллельно работает или учится.
    Можно ли обучиться профессии за 7 месяцев?
    Да, если вы будете уделять занятиям не менее 10-15 часов в неделю, выполнять домашние задания и общаться с вашим наставником. Тогда за 7 месяцев с нуля вы сможете освоить навыки разработки на Python, соберете 3 проекта и сможете устроиться на работу в IT.
    Как проходит обучение?
    Курс построен вокруг практики и включает только необходимый объем теории. С первого дня вы начнете учиться мыслить, как программист, и решать задачи, над которыми работают разработчики в реальных компаниях.

    Вам постепенно будут открываться все материалы и тренажеры на нашей платформе. Вы сможете учиться в удобное вам время и в удобном темпе. Также, вы присоединитесь к закрытому сообществу наших студентов, где вас будут поддерживать другие учащиеся и менторы.

    А еще, каждую среду у нас проходят вебинары в Zoom с разбором заданий, обсуждением проектов, консультациями по карьерному росту и прочему. Это всегда актуальные темы и живое общение.

    Доступ к записи вебинаров вы получите с первого дня доступа и сможете параллельно к обучению теории повышать свои навыки общения и знания о том как устроена жизнь программиста.
    Какая квалификация у меня будет после окончания курса?
    Достаточный набор знаний и навыков, чтобы претендовать на junior-позиции или брать фриланс-проекты. Наш карьерный консультант поможет вам составить стратегию, подскажет, где искать вакансии и заказчиков, подготовит к прохождению собеседований и выполнению тестовых заданий.
    Смогу ли я найти работу после обучения?
    Работодателям важно, чтобы вы умели делать проекты, а не просто обладали набором знаний и сертификатом. Мы научим вас применять теорию на практике и ожидаем, что после выпуска вы будете обладать всеми необходимыми базовыми знаниями, чтобы найти работу: будете активно откликаться на вакансии, проходить собеседования, показывать свои проекты и делать тестовые задания при необходимости. Мы создали наши курсы в том числе и для того чтобы развивать свой коллектив разработки и мы будем предлагать практику и работу в нашей компании лучшим ученикам.
    Есть ли специальные требования к компьютеру?
    Python не требует мощного железа и больших ресурсов. Подойдёт любой компьютер под управлением Windows 7 или 10, Linux Ubuntu или macOS от 10.11 и выше. Чтобы установить среду разработки VS Code, вам потребуется не менее 4 Gb оперативной памяти, 5 свободных Gb на жёстком диске. Для комфортного просмотра видео и участия в вебинарах вам необходимы высокоскоростной интернет-доступ.
    У меня сохранится доступ к материалам курса после его окончания?
    Да, материалы курса будут доступны вам всегда.
    Действуют ли какие-нибудь программы рассрочки?
    Да, для резидентов украинских банков есть возможность получить рассрочку до12 месяцев. Детальные условия вы сможете узнать у нашего менеджера: оставьте заявку, и он свяжется с вами.
    Можно ли отменить или вернуть оплату за курс?
    У вас есть возможность оформить отмену оплаты платежа в течении трех дней.
    Нужен ли мне английский язык?
    Для прохождения обучения английский вам нужен на элементарном уровне, потому что мы даем переводы всех терминов и готовим базу для дальнейшего обучения языку самостоятельно. Работа программистом без знания английского возможна, но зарплаты выше у тех, кто знает язык. Вы сможете учиться английскому в параллели.
    Стоимость
    Стоимость курса "Практический Python" основана на полноте знаний, практических навыках и вашей ценности как специалиста, которым вы станете, пройдя курс
    Отправьте заявку, чтобы получить консультацию и оплатить курс
    Мы перезвоним и согласуем все вопросы
    Оставьте заявку, чтобы получить консультацию и оплатить курс
    Мы перезвоним и согласуем все вопросы
    Мы не передаем ваши данные третьим лицам