Вчера мы запустили на Coursera новый онлайн-курс «Программирование на Python» совместно с МФТИ, чтобы научить всех желающих программировать на этом языке. Курс читают разработчики, применяющие Python в проектах, которыми ежедневно пользуются миллионы людей. Курс покрывает все необходимые для ежедневной работы программиста темы, а также рассказывает про многие особенности языка, которые часто опускают при его изучении.
В ходе курса вы изучите конструкции языка, типы и структуры данных, функции, научитесь применять объектно-ориентированное и функциональное программирование, узнаете про особенности реализации Python, научитесь писать асинхронный и многопоточный код. Помимо теории вас ждут практические задания, которые помогут проверить полученные знания и отточить навыки программирования на Python. После успешного окончания курса вы сможете использовать полученный опыт для разработки проектов различной сложности.
Чтобы справиться с нагрузкой, понадобится от четырех до шести часов свободного времени в неделю. Около двух часов будет уходить на просмотр видеолекций, остальное — на выполнение тестов и домашних заданий. Будьте готовы уделить курсу и больше времени, если хотите получить максимальный результат.
Курс состоит из следующих частей:
- Введение в Python
- Структуры данных и функции
- Объектно ориентированное программирование
- Углубленный Python
- Многопоточное и асинхронное программирование
- Итоговый проект
Лекционные материалы и задания без оценки доступны бесплатно, для оцениваемых заданий и получения сертификата необходимо приобрести курс.
Авторы курса
Александр Емелин
Разработчик Python, Go. Сторонник open-source. Автор достаточно крупного open-source проекта https://github.com/centrifugal/centrifugo.
Мне давно нравилась идея дистанционного способа обучения. Спасибо Mail.Ru Group за возможность поучаствовать в создании подобного проекта.
Александр Жебрак
Программист, преподает курс по Python в Технопарке МГТУ и Mail.Ru Group. Занимается машинным обучением, 4,5 года работал в Mail.Ru в отделе внутренней разработки, руководил разработкой интранета. Сейчас занимается проектами в области анализа биомедицинских данных в InsilicoMedicine.
Принял участие в создании курса, так как это замечательный опыт преподавания, работы с камерой, общения с коллегами. В ходе создания курса смог отточить навыки подачи чистого материала, это отличается от лекций в университете в рамках Технопарка.
Дмитрий Швеенков
Окончил Пензенский государственный университет. Работает в Mail.Ru Group, руководит командой разработки. В последние несколько лет занимается разработкой высоконагруженных сервисов на Python.
Решил взяться за создание курса, чтобы попробовать новый для себя формат задач.
Содержание курса
Курс состоит из шести модулей — «недель», в ходе которых слушатели изучают конкретную тему или выполняют проект. Вначале даются ключевые знания о структуре и синтаксисе языка, и чем дальше, тем больше вы будете осваивать тонкости Python и возможности его практического применения.
В конце курса вас ждет итоговый проект, где вы самостоятельно реализуете сетевое приложение.
1. Введение в Python
На первой неделе участники курса узнают об особенностях языка и сфере его применения, выберут среду разработки и начнут программировать. Первый этап разбирает работу с базовыми типами: числами, логическими типами, строками и байтовыми строками. Участники научатся работать с потоками, разворачивать окружение и собирать программу из модулей и пакетов. Для тех, кто уже знаком с Python, этот модуль будет возможностью освежить и систематизировать свои знания перед более сложными темами.
Темы недели
- Знакомство с курсом
- Первые шаги
- Базовые типы и конструкции
- Организация кода и окружение
Задания по программированию
- Сумма цифр в строке
- Рисуем лестницу
- Корни квадратного уравнения
2. Структуры данных и функции
На второй неделе программа касается базовых структур данных, необходимых в любой программе: списков, кортежей, словарей и множеств. Участники увидят примеры использования этих конструкций, разберутся, как читать документацию, и сдадут тест по этому уроку.
Также вторая неделя касается функций и функционального программирования. Еще участники разберут работу с файлами, узнают, что такое декораторы и генераторы, научатся читать документацию по этим разделам.
Темы недели
- Коллекции (списки, кортежи, словари, множества)
- Функции (декораторы, генераторы)
Задания по программированию
- Key-value хранилище
- Декоратор to_json
3. Объектно ориентированное программирование
ООП — главный подход к построению сложных проектов на языке, который просто необходимо знать. Раздел состоит из трех уроков, два из них посвящены теории.
В теоретической части студенты узнают, что такое классы, экземпляры и методы, научатся простому и множественному наследованию, name mangling.
Темы недели
- Классы и объекты
- Наследование
Задания по программированию
- Реализация простого класса для чтения из файла
- Классы и наследование
4. Углубленный Python
Четвертая неделя касается работы с особыми классами и методами в Python. Она нужна для того, чтобы расширить понимание того, как все работает в языке. Студенты узнают, что такое магические методы, итераторы, контекстные менеджеры, дескрипторы и метаклассы. Отдельное внимание уделяется работе с документацией по этим разделам.
Темы недели
- Особые методы классов
- Механизм работы классов
- Отладка и тестирование
Задания по программированию
- Файл с магическими методами
- Дескриптор с комиссией
5. Многопоточное и асинхронное программирование
Знания этой недели помогут в ответе на вопрос, как написать сетевую программу на Python. Без сетевого взаимодействия не обходится практически ни одна реальная задача в жизни.
Неделя касается работы с потоками, сетью и сокетами. В первой части модуля студенты узнают о создании процессов и потоков и об их синхронизации. Во второй части разберут работу с сокетами и клиент-серверную модель программы, таймауты, обработку сетевых ошибок и одновременную работу с несколькими соединениями.
Темы недели
- Процессы и потоки
- Работа с сетью, сокеты
- Асинхронное программирование
Задания по программированию
- Клиент для отправки метрик
6. Итоговый проект
На этой неделе вы сможете воспользоваться всеми накопленными знаниями для решения практической задачи.
Задания по программированию
- Сервер для приема метрик
Постановка задачи
На предыдущей неделе слушатели курса разрабатывали сетевое приложение — клиента для сервера метрик, который умеет отправлять и получать всевозможные метрики. Пришло время финального задания — нужно реализовать серверную часть самостоятельно.
Сервер должен соответствовать протоколу, который был описан в задании к предыдущей неделе. Он должен уметь принимать от клиентов команды put и get, разбирать их и формировать ответ согласно протоколу.
Результат курса
Участники создадут свой собственный проект — полноценное серверное приложение для получения метрик от множества клиентов, применив технологии курса. Подытожим, повторив сказанное в начале: выпускники курса овладеют необходимыми знаниями для разработки на языке Python. Кроме того, лучших выпускников мы рассмотрим на подходящую вакансию в Mail.Ru Group.
Регистрация на курс
Регистрируйтесь по ссылке!
Уже знаете Python? Изучите другие курсы от Mail.Ru Group!
Coursera — одна из крупнейших платформ для создания и прохождения онлайн-курсов с 25 миллионами пользователей и более чем 2000 онлайн-курсов по техническим и гуманитарным дисциплинам от ведущих университетов и компаний. Прохождение курсов на платформе подразумевает не только просмотр лекций и выполнение заданий, но и общение с другими студентами и преподавателями на форумах курсов.