Обучение (ru)

Обо мне

Меня зовут Антон, я практикующий разработчик и студент Центрального Университета на направлении «Математика и компьютерные науки» (2028). Подробнее с моими профессиональными достижениями, образованием и деятельностью можете ознакомиться в резюме. Четыре года я преподаю программирование для детей и взрослых с самого нуля. Смотрите отзывы на Авито.

Что буду делать я

Я предлагаю несколько курсов по программированию на Python:

Об отличиях смотрите раздел «Программа курса». Курс состоит из уроков по каждой теме. В каждом из уроков для вас подготовлен подробный теоретический материал, а также задания. На часовом занятии (обычно 1-2 раза в неделю) мы с вами будем в диалоге разбирать запланированную тему, напишем рабочие примеры, попробуем порешать задачи, чтобы сразу ответить на все вопросы.

Формат нашей работы — смешанный. Это означает, что обучение не ограничивается онлайн-занятиями. Пока вы дома самостоятельно повторяете материал и решаете задачи, я всегда доступен для любых вопросов в Telegram. Если нет идей, как подступиться к задаче, дам подсказку. Если возник неочевидный вопрос, объясню. Если увидим, что тема западает, запишу дополнительный видеоурок. Также мы вместе будем проверять домашние задания: разбирать ошибки, рассматривать другие подходы к решению и отвечать на возникшие вопросы.

Все задания и теоретические материалы будут вам открываться по мере прохождения на платформе:

Что будете делать вы

Как я уже говорил выше, обучение не длится час-два в неделю во время созвонов. Вы должны выделить достаточно времени на самостоятельную учёбу дома, чтобы обучение было эффективным. Программирование требует усидчивости и концентрации, чтобы добиться хороших результатов.

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

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

Ниже представлена полная программа курса «Разработка на Python». На базовом и продвинутом курсе по основам Python программа будет немного отличаться, сейчас расскажу как именно.

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

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

«Разработка на Python» — это курс, выходящий за рамки изучения одного языка программирования, сформирует у вас комплексное понимание IT-сферы. Он включает в себя все блоки, проекты, темы и задания продвинутого курса, но также расширен еще двумя блоками (блоки 7, 9 в программе) и двумя проектами. Вы поймете, как работают современные IT-сервисы и web-системы, сформируете целостное представление о процессах разработки. Освоите такие инструменты разработки, как Git, и начнете собирать своё портфолио проектов на GitHub. Попробуете себя в различных сферах от десктопных приложений до телеграм-ботов, чтобы расширить кругозор и определить свою сферу интересов.

Блок 1. Базовые понятия

  • Знакомство со средой
  • Условный оператор
  • Простые встроенные функции
  • Знакомство с циклом while
  • Отладчик
  • Знакомство с циклом for
  • True и False, break и continue
  • Вложенные циклы

Блок 2. Коллекции

  • Множества
  • Строки. Индексация
  • Строки. Срезы
  • Знакомство со списками
  • Кортежи. Преобразование коллекций
  • Методы split и join. Списочные выражения
  • Методы списков и строк
  • Вложенные списки
  • Знакомство со словарями

Блок 3. Функции

  • Функции. Знакомство
  • Функции. Возвращение значений из функций
  • Области видимости переменных
  • Передача параметров. Работа с памятью в Python
  • Функции с переменным числом аргументов
  • Функции как объект. Лямбда-функции
  • Обработка коллекций. Потоковый ввод sys.stdin
  • Рекурсия
  • Переопределение функций и декораторы. Замыкания

Блок 4. Библиотеки

  • Библиотеки Python. Встроенные модули
  • Работа с графическими файлами
  • Работа с графическими файлами и звуком
  • Файлы в Python. Внутреннее устройство файлов
  • Морфология
  • Работа с документами
  • Итераторы и коллекции
  • Библиотеки Python. Numpy

Блок 5. Первый проект

Материалы по проекту

  • Создание проекта. Утилита для просмотра погоды
  • Библиотека argparse. Создание модулей
  • Знакомство с API

План

  • Научиться работать с библиотекой argparse
  • Разобраться с тем, как разбивать код на модули
  • Научиться взаимодействовать с API при помощи requests
  • OpenWeather. Получить данные о погоде
  • Получить координаты
  • Ознакомиться с библиотекой rich, поиграться с форматированием
  • Написать пустые обработчики для всех команд и флагов
  • Реализовать команду now в базовом сценарии использования
  • Реализовать команду forecast в базовом сценарии использования
  • Добавить опциональные флаги --day, --with-time, --full-info, --high-precision
  • Добавить красивое форматирование ввода и вывода

Блок 6. ООП

  • Введение в ООП
  • Полиморфизм
  • Определение операторов
  • Наследование
  • Наследование. Часть 2
  • Проектирование и разработка классов
  • Проектирование и разработка классов. Часть 2
  • Практика. Решение задач на классы
  • Практика. Проектирование классов

Блок 7. Инструменты разработки

  • Что такое QT и PyQT. Знакомство
  • QtDesigner, pyuic, два способа подключения ui-файла
  • Обработка исключений. Создание собственных исключений
  • Диалоги, работа с изображениями
  • Работа с командной строкой. Периодические задачи
  • Работа с простыми csv-таблицами. Работа с табличными данными в PyQT
  • Введение в БД. Работа с SQL
  • Введение в БД. Работа с SQL. Часть 2
  • Сборка независимого приложения. Обработка клавиатуры и курсора
  • Введение в репозитории и Git
  • Совместная работа над проектом
  • Цели и подходы к тестированию. Создание «самодельных» тестов
  • Библиотеки unittest и pytest

Блок 8. Второй проект

Материалы по проекту

  • Создание проекта. Сервис онлайн-карт
  • Работа с файловой системой и популярными форматами файлов: zip-архивами и json
  • API: углублённое погружение
  • Работа с протоколом HTTP

План

  • Научиться работать с файловой системой, zip-архивами и json-файлами.
  • Разобраться в понятии API.
  • Познакомиться с различными API Яндекса (static, geocoder, ППО).
  • Создание репозитория. Знакомство с тикет-системой. (с преподавателем)
  • Инициализация проекта. Создание первых веток. Продумывание архитектуры. Каркас приложения.
  • Работа над задачами. Часть 1. До задачи "Сброс поискового результата" включительно.
  • Созвон с code-review
  • Работа над задачами. Часть 2. До конца.
  • Финальный созвон с code-review

Блок 9. Интернет

  • Введение в Web-технологии. HTML и CSS
  • Введение в JavaScript
  • Введение во Flask. Обработка HTML-форм.
  • Шаблоны flask-wtf
  • Знакомство с flask-sqlalchemy
  • Cookies и авторизация
  • Понятие REST-API. Делаем простое API
  • REST-API. Flask-restful
  • Разворачиваем проект в облаке
  • Введение в асинхронное программирование
  • Чат-боты 1 (Вконтакте)
  • Чат-боты 2 (Telegram)
  • Чат-боты 3 (Discord)

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

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

Приходите учиться

Если вы чувствуете, что программа вам подходит и вы готовы работать, пишите мне в Telegram: @alchemmist

Жду вас на курсе!

cd ..