Практический Python для начинающих

Станьте junior Python программистом за 7 месяцев
Практический Python для начинающих

Программа курса

⭐️ 1 Ступень: Основа языка Python

Изучение базовых частей языка и создание первого проекта портфолио: сайта на фреймворке Flask.

Продолжительность: 6 недель. Результат: написанный телеграм бот для телеграммы и первый проект в рабочем портфолио.

📌 Неделя 1

Введение

Знакомство и объяснение вещей, которые помогут проще усваивать материал. Объяснение что такое программирование и почему именно вы можете освоить его.

  • Добро пожаловать
  • Как учиться
  • Программирование — это ремесло
  • Что значит быть программистом

Программа курса

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

  • Цели курса
  • Запуск кода в тренажере
  • Как будет устроено обучение

Базовые типы переменных и операторы

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

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

📌 Неделя 2.

Коллекции

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

  • Кортежи (tuple)
  • Списки (list)
  • Множества (set)
  • Словари (dict)
  • Конструкторы множеств

Блоки инструкций

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

  • Синтаксис языка
  • Оператор ветвления if, elif, else
  • Циклы

📌 Неделя 3

Файлы

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

  • Создание и открытие файлов
  • Форматы файлов
  • Работа с JSON файлами

Функции

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

  • Создание своей функции
  • Вызов функций другого модуля

Классы

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

  • Создание экземпляра класса
  • Методы класса
  • Переменные класса и состояние

📌 Неделя 4

Подготовка компьютера и локального окружения

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

  • Установка Python на macOS
  • Установка Python на Windows
  • Выбор редактора кода
  • Запуск Python на локальной машине
  • Выполнение программ
  • Установка и настройка редактора VS Code

Подготовка к финальному проекту

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

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

📌 Неделя 5: написание бота и домашняя работа.

Написание проекта

Этот блок посвящен вашей самостоятельной работе над первым проектом. Результаты работы вы присылаете для разбора кураторам курса.

  • Сдача проекта

📌 Неделя 6.

Создание портфолио

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

  • Регистрация на github
  • Публикация кода на Github

Завершение

Мы подводим итоги и разбираемся какие дальнейшие шаги надо сделать чтобы получить все необходимые знания для построения карьеры программиста.

  • Что дальше?
  • Спасибо за работу!

⭐️ 2 Ступень

Расширенные возможности синтаксиса языка, работа с файлами и объектно-ориентированное программирование. Второй проект портфолио: парсер сайтов, автоматизация сбора информации из интернета.

Продолжительность 7 недель. Результат: разобрана теория как работают сайты и написан парсер который тоже становится частью портфолио.

📌 Неделя 1

Введение

Возвращаемся к обучению на новой ступени. Оцениваем, что уже известно и как пользоваться платформой.

  • Введение: добро пожаловать
  • Введение: описание курса

Программа курса

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

  • Цели курса

Итераторы и генераторы

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

  • Итераторы
  • Использование памяти при применении генераторов
  • Функции для работы последовательностями

Расширенные блоки инструкций

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

  • Дополнительные возможности циклов
  • Иерархия исключений
  • Обработка исключений с помощью try/except

📌 Неделя 2

Файлы

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

  • Оператор контекста with
  • Работа с файлами с помощью with
  • Работа с файлами с помощью библиотеки pathlib
  • CSV файлы

Функции и модули

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

  • Создание своей функции
  • Аргументы функции
  • Возвращение функции
  • Анонимная функция lambda
  • Декораторы
  • Структурирование кода с помощью модулей

📌 Неделя 3

Классы и ООП

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

  • Конструктор и методы класса
  • Наследование
  • Алгоритм поиска методов
  • Выстраивание методов в последовательность

Модули

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

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

📌 Неделя 4

Популярные пакеты

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

  • requests
  • pillow
  • BeautifulSoup
  • pyscreenshot

Введение в HTML

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

  • Базовые теги
  • Дерево HTML документа
  • Создание страницы самостоятельно

📌 Неделя 5

Парсинг сайтов

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

  • О парсинге сайтов
  • Подготовка окружения для нового проекта
  • Установка пакета requests
  • Получение кода страницы
  • Типы запросов GET и POST
  • Извлечение данных из страницы

Подготовка к финальному проекту

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

  • Задание от заказчика
  • Разбор "технического задания"
  • Планирование работы проекта
  • Дипломная работа: написание парсера сайта с помощью requests и beautifulsoup

📌 Неделя 6: написание проекта

Написание проекта

Этот блок посвящен вашей самостоятельной работе над заказом. Результаты работы мы совместно анализируем и даем обратную связь по поводу выполненной работы

  • Сдача проекта

📌 Неделя 7:

Публикация портфолио

Новый выполненный проект необходимо опубликовать в вашем портфолио на сайте Github.

  • Публикация проекта в портфолио на Github

Завершение

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

  • Что дальше?
  • Спасибо!

⭐️ 3 Ступень

Изучение отладки кода и автоматический поиск ошибок с помощью автоматизированных инструментов. Создание своего сайта с использованием фреймворка Flask и языка шаблонов Jinja. Введение в базы данных и язык SQL. Практические работы: создание сокращателя ссылок.

Продолжительность 7 недель. Результат: изучение веб фремворка Flask и написан сокращатель ссылок который хранит данные в базе данных и добавлен в портфолио.

📌 Неделя 1

Введение

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

  • Добро пожаловать
  • Описание курса

Интроспекция

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

  • Что такое интроспекция
  • Помощники интроспекции

Память в Python

  • Как хранится переменная в памяти
  • Область видимости переменной
  • Подсчет количества ссылок

Отладка кода

  • Отладчик pdb
  • Отладчик в IDE

📌 Неделя 2

Автоматизация проверки кода

  • Помощники: pylint
  • Помощники: autopep8, black
  • Обновленный обязательный чеклист запуска нового проекта
  • make и Makefile

Как работает интернет

  • IP адрес и протоколы
  • Как работает DNS
  • Что такое сервер
  • HTTP протокол
  • Подробнее об URL
  • Исходный код страницы
  • Почему исходный код страницы в браузере не совпадает с исходным кодом полученным через HTTP

📌 Неделя 3

Веб фреймворк Flask

  • Что такое фреймворк и в чем отличие от библиотеки
  • Создание первого сайта
  • Создание карты адресов
  • Создание кода видов сайта
  • Обработка форм

📌 Неделя 4

Язык шаблонов Jinja

  • Bootstrap и другие конструкторы
  • Создание примеров страниц
  • Планирование структуры шаблонов
  • base.html и page.html

Введение в базы данных

  • Введение в SQL
  • CRUD: создать, прочитать, обновить, удалить
  • Связи между таблицами с помощью JOIN-запросов

📌 Неделя 5

Введение в ORM SQLAlchemy

  • Создание моделей
  • CRUD операции через ORM
  • Сохранение данных запроса в базу

Финальный проект: Сокращатель ссылок

  • Зачем нужен сокращатель ссылок
  • Планирование сайта
  • Планирование базы данных
  • Регистрация пользователей
  • Авторизация
  • Добавление ссылки в базу
  • Дипломная работа: написание кода

📌 Неделя 6: написание проекта

📌 Неделя 7

Завершение

Мы подводим итоги текущего курса и обсуждаем какие вопросы можно дополнительно углублять в темах, которые мы затронули в этом курсе.

  • Что дальше?
  • Спасибо

⭐️ 4 Ступень

Продолжение погружения в объектно-ориентированное программирование. Введение в тестирование и автоматизация проверок качества кода. Обучение работе с API и написание API клиентов. Введение в инструмент Git и как с ним работают команды. Подготовка к прохождению собеседования и работы в компании.

Продолжительность 10 недель. Результат: софт-скилы и новые элементы портфолио: бот для вконтате, бот погоды для телеграм, и покрытый тестами сокращатель ссылок.

📌 Неделя 1

Введение

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

  • Добро пожаловать
  • О чем будет этот курс

Расширенные возможности ООП

Классы в Python'е имеют не очевидные, но очень важные свойства. Разные классы реализующие специальные методы реализуют определенные протоколы. Поэтому язык еще называют языком протоколов. Познакомившись с методами, реализующими протоколы вы узнаете, как можно создавать свои типы данных работающие с операторами. А также углубимся в специализацию методов.

  • Магические методы класса
  • Протоколы работы операторов
  • Статические методы staticmethod
  • Методы класса classmethod
  • Методы установки и чтения свойств класса (setter и getter)
  • Декоратор @property

📌 Неделя 2

API

Изучаем как интернет взаимодействует друг с другом. Чем могут быть полезны чужие сайты, на которых есть заветный раздел "API". Узнаем, как можно воспользоваться возможностями другого сайта и как обычно происходит такое взаимодействие.

  • Что такое API и как с ним работать
  • Что такое REST
  • Что такое JSON
  • Специализация HTTP методов
  • Как работает API клиент
  • Чтение документации по API
  • Особенности авторизации для разных сервисов

Создание API клиента

Создаем API клиент. Инструмент, после которого вы навсегда начнете смотреть на привычные сайты по-другому.

  • Получение токена
  • Запросы к API

📌 Неделя 3

Виды взаимодействий с сервером

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

  • Webhook и API клиент
  • Telegram бот с помощью webhook'а
  • Телеграм бот с помощью подключения
  • Задание: написать бот с информацией о текущей погоде с использованием AccuWeather API

📌 Неделя 4: написание нового бота

📌 Неделя 5

Введение в тестирование

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

  • Что такое тестирование
  • Запуск первых тестов
  • Подготовка условий для запуска тестов
  • Показатель покрытия тестами
  • Написание тестов для телеграм бота
  • Домашняя работа: написать тесты для бота

📌 Неделя 6: написание тестов для бота 📌 Неделя 7

Аннотирование кода

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

  • Зачем нужна типизация
  • Аннотация простых типов
  • Модуль typing
  • Автоматизация проверки типов с помощью инструментов mypy и Pysa

Git

Git — это обязательный инструмент для работы с кодом. Даже если вы работаете самостоятельно, то сможете защитить свою работу от повреждений или ошибок. Для совместной работы — это главный инструмент для обмена кодом в коллективе.

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

📌 Неделя 8

Организация совместной работы

Погружаемся в изучение рабочего места программиста и правилах совместной работы над проектами.

  • Работа в Gitlab
  • Pull Request
  • Проверка кода в команде (code review)
  • Что такое CI/CD и запуск тестов

Подготовка к собеседованию

Прохождение собеседований — это такой же навык, как и работа с кодом. Учимся быть более уверенными и готовыми к реальным собеседованиям. А также повышаем шансы успешного прохождения.

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

📌 Неделя 9

Первые дни в компании

То, к чему готовиться на новом месте работы.

  • Получение учетных записей
  • Распределение ролей в команде
  • Кто за что отвечает в компаниях

Гибкие методологии управления проектом (Agile)

Как организации выстраивают совместную работу в коллективах.

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

Финальный проект

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

  • Покрытие тестами сокращателя ссылок
  • Подключение Travis-CI для проверки тестов
  • Автоматизированная проверка качества кода

📌 Неделя 10: написание домашней работы

Завершение

Мы подводим итоги всех ступеней и обсуждаем как правильно строить карьеру в перспективе на 1-2 и 5 и более лет.

  • Что дальше?
  • Спасибо
Начните обучение прямо сейчас

Нажимая на кнопку я соглашаюсь на обработку персональных данных и с правилами пользования