- PVSM.RU - https://www.pvsm.ru -

Вчера мы запустили на Coursera новый онлайн-курс «Программирование на Python [1]», чтобы научить всех желающих программировать на этом языке. Курс подойдет для всех, кто уже имеет какой-то опыт программирования и хочет изучить Python. Курс читают разработчики, применяющие Python в проектах, которыми ежедневно пользуются миллионы людей. Ключевая особенность курса — он покрывает все необходимые для ежедневной работы темы.
В ходе курса вы изучите конструкции, основные типы, структуры данных и функции языка, научитесь применять объектно ориентированное программирование на Python, писать асинхронный и многопоточный код. Помимо теории вас ждет масса практических заданий, на которых вы сможете оттачивать свои навыки программирования на языке Python и применять все полученные знания. Этих знаний будет достаточно, чтобы вы могли создавать полноценные сетевые приложения.
Чтобы справиться с нагрузкой, понадобится от четырех до шести часов свободного времени в неделю. Около двух часов будет уходить на просмотр видеолекций, остальное — на выполнение тестов и домашних заданий. Будьте готовы уделить курсу и больше времени, если хотите получить максимальный результат.
Курс состоит из следующих частей:
Лекционные материалы и задания без оценки доступны бесплатно, для оцениваемых заданий и получения сертификата необходимо приобрести курс.
Александр Емелин
Разработчик Python, Go. Сторонник open-source. Автор достаточно крупного open-source проекта https://github.com/centrifugal/centrifugo [2]
Александр Жебрак
Программист, преподает курс по Python в Технопарке МГТУ и Mail.Ru Group. Занимается машинным обучением, 4,5 года работал в Mail.Ru в отделе внутренней разработки, руководил разработкой интранета. Сейчас занимается проектами в области анализа биомедицинских данных в InsilicoMedicine.
Принял участие в создании курса, так как это замечательный опыт преподавания, работы с камерой, общения с коллегами. В ходе создания курса смог отточить навыки подачи чистого материала, это отличается от лекций в университете в рамках Технопарка.
Главной сложностью при создании стало то, что процесс занял больше времени, чем рассчитывали. Трудности в основном были организационные и с качеством материала: старались делать хорошо, поэтому много пришлось переделывать.
Дмитрий Швеенков
Окончил Пензенский государственный университет. Работает в Mail.Ru Group, руководит командой разработки. В последние несколько лет занимается разработкой высоконагруженных сервисов на Python.
Решил взяться за создание курса, чтобы попробовать новый для себя формат задач.
Курс состоит из шести модулей — «недель», в ходе которых слушатели изучают конкретную тему или выполняют проект. Вначале даются ключевые знания о структуре и синтаксисе языка, и чем дальше, тем больше вы будете осваивать тонкости Python и возможности его практического применения.
В конце курса вас ждет итоговый проект, где вы самостоятельно реализуете сетевое приложение.
На первой неделе участники курса узнают об особенностях языка и сфере его применения, выберут среду разработки и начнут программировать. Первый этап разбирает работу с базовыми типами: числами, логическими типами, строками и байтовыми строками. Участники научатся работать с потоками, разворачивать окружение и собирать программу из модулей и пакетов. Для тех, кто уже знаком с Python, этот модуль будет возможностью освежить и систематизировать свои знания перед более сложными темами.
Задачи обучения
Темы недели
Задания по программированию
На второй неделе программа касается базовых структур данных, необходимых в любой программе: списков, кортежей, словарей и множеств. Участники увидят примеры использования этих конструкций, разберутся, как читать документацию, и сдадут тест по этому уроку.
Также вторая неделя касается функций и функционального программирования. Еще участники разберут работу с файлами, узнают, что такое декораторы и генераторы, научатся читать документацию по этим разделам.
Задачи обучения
Темы недели
Задания по программированию
ООП — главный подход к построению сложных проектов на языке, который просто необходимо знать. Раздел состоит из трех уроков, два из них посвящены теории, один — работе с ошибками.
В теоретической части студенты узнают, что такое классы, экземпляры и методы, научатся простому и множественному наследованию, name mangling. Участники курса разберут работу с исключениями, тестирование и отладку.
Задачи обучения
Темы недели
Задания по программированию
Четвертая неделя касается работы с особыми классами и методами в Python. Она нужна для того, чтобы расширить понимание того, как все работает в языке. Студенты узнают, что такое магические методы, итераторы, контекстные менеджеры, дескрипторы и метаклассы. Отдельное внимание уделяется работе с документацией по этим разделам.
Задачи обучения
Темы недели
Задания по программированию
Знания этой недели помогут в ответе на вопрос, как написать сетевую программу на Python. Без сетевого взаимодействия не обходится практически ни одна реальная задача в жизни.
Неделя касается работы с потоками, сетью и сокетами. В первой части модуля студенты узнают о создании процессов и потоков и об их синхронизации. Во второй части разберут работу с сокетами и клиент-серверную модель программы, таймауты, обработку сетевых ошибок и одновременную работу с несколькими соединениями.
Задачи обучения
Темы недели
Задания по программированию
На этой неделе вы сможете воспользоваться всеми накопленными знаниями для решения практической задачи.
Задачи обучения
Задания по программированию
На предыдущей неделе вы разработали клиентское сетевое приложение — клиента для сервера метрик, который умеет отправлять и получать всевозможные метрики. Пришло время финального задания — нужно реализовать серверную часть самостоятельно.
Как обычно, вам необходимо разработать программу в одном файле-модуле, который вы загрузите на проверку обычным способом. Сервер должен соответствовать протоколу, который был описан в задании к предыдущей неделе. Он должен уметь принимать от клиентов команды put и get, разбирать их и формировать ответ согласно протоколу. По запросу put требуется сохранять метрики в структурах данных в памяти процесса. По запросу get сервер обязан отдавать данные в правильной последовательности.
На верхнем уровне вашего модуля должна быть объявлена функция run_server(host, port) — она принимает адрес и порт, на которых должен быть запущен сервер.
Для проверки правильности решения мы воспользуемся своей реализацией клиента и будем отправлять на ваш сервер put и get запросы, ожидая в ответ правильные данные от сервера (согласно объявленному протоколу). Все запросы будут выполняться с таймаутом — сервер должен отвечать за приемлемое время.
Сервер должен быть готов получать неправильные команды со стороны клиента и отдавать клиенту ошибку в формате, оговоренном в протоколе. В таком случае работа сервера не должна завершаться аварийно.
Участники создадут свой собственный проект, написав 3—5 тысяч строк кода и применив технологии курса. Мы не ограничиваем стек технологий, чтобы студенты могли придумать любой интересный проект и воплотить его в жизнь. Результатом работы станут не только десктопные приложения, но и серверные части web-сайтов.
Подытожим, повторив сказанное в начале: выпускники курса овладеют необходимыми знаниями для разработки на языке Python.
Кроме того, лучших выпускников мы рассмотрим на подходящую вакансию в Mail.Ru Group.
Регистрируйтесь по ссылке [1]!
Уже знаете Python? Изучите другие курсы [3] от Mail.Ru Group!
Coursera — одна из крупнейших платформ для создания и прохождения онлайн-курсов с 25 миллионами пользователей и более чем 2000 онлайн-курсов по техническим и гуманитарным дисциплинам от ведущих университетов и компаний. Прохождение курсов на платформе подразумевает не только просмотр лекций и выполнение заданий, но и общение с другими студентами и преподавателями на форумах курсов.
Автор: Olga_ol
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/263327
Ссылки в тексте:
[1] Программирование на Python: https://www.coursera.org/learn/programming-in-python
[2] https://github.com/centrifugal/centrifugo: https://github.com/centrifugal/centrifugo
[3] курсы: https://stepik.org/org/mailru
[4] Источник: https://habrahabr.ru/post/336880/
Нажмите здесь для печати.