Дмитрий Штенников — автор онлайн-курса «Программирование и разработка веб-приложений» и доцент кафедры компьютерных образовательных технологий Университета ИТМО.
Это его первый опыт работы с массовыми открытыми онлайн-курсами, и своим дебютом он выбрал курс о языке программирования Python и фреймворке Django. Дмитрий рассказывает, о чем и для кого будет его первый онлайн-курс.
На курс «Программирование и разработка веб-приложений» можно записываться всем тем, кто обладает простым, но важным «навыком» – желанием учиться. Пройти курс может каждый — от школьников, которые хотят побаловаться программированием, студентов, которым преподают эту дисциплину в университете, до всех тех, кто хочет углубить свои знания, выучить новый язык программирования или пройти обучение у преподавателя Университета ИТМО. К тому же этот курс разгонный — он охватывает все разделы от самого простого программирования и основ работы с данными до, собственно, разработки веб-ресурсов.
Дмитрий Штенников: Честно сказать, я не даю каких-то умопомрачительно новых вещей в своем курсе, если говорить глобально. Да и ожидать этого от базового курса по Python достаточно сложно. Но курс хорош тем, что он является быстрым и удобным с точки зрения подачи информации. Он не затянут, что мне, как лектору, не позволяет развернуться, но зато в нем отсутствует «вода».
К тому же курс прошел апробацию на студентах Университета ИТМО, у которых преподает Дмитрий Штенников. Он вел для своих студентов лекции и практические занятия именно в том варианте, в котором они будут представлены слушателям онлайн-курса.
Дмитрий в свое время работал и со студентами, обучающимися по специальности «Интеллектуальные технологии в гуманитарной сфере», для которых программирование на Python не является профильным предметом. Поэтому курс подойдет для освоения и начинающим программистам.
Как построен курс
Лекционная часть будет состоять из материалов, начиная от простейших операций, простейших программных конструкций, условий, циклов, заканчивая структурами данных Python (списки, словари, последовательности, замороженные последовательности, строки, кортежи). Далее будет небольшой кусочек функционального программирования: создание функций, изучение которых будет полезно перед началом работы с языком программирования Python.
Естественно, в лекционный материал войдет объектно-ориентированное программирование: описание классов, экземпляров классов, наследования, использование таких элементов как декораторы для изменения поведений функций или методов, итераторы и генераторы.
После этого слушателей курса ожидает знакомство с возможностями системного программирования на Python – создание и чтение файлов, папок, просмотр содержимого, копирование, перемещение. А затем работа с базой данных на примере SQLite — встроенной базы данных в Python.
После освоения всей этой базы слушатели будут готовы к восприятию информации о создании веб-ресурсов – о том, как сделать свой собственный сервер и как его запустить.
Кульминацией курса будет создание типового веб-ресурса на Django – небольшой информационной системы и приложения к ней. Дмитрий расскажет своим слушателям, как его делать, а те уже в рамках виртуальных лабораторий, которые предлагаются в курсе в качестве практики, должны будут его повторить. В целом обучение будет выглядеть так: слушатели будут постепенно получать новую информацию в течение всего курса, делать проект, а затем уже на экзамене стараться улучшить его с помощью ранее полученных знаний.
Почему именно Python
Дмитрий Штенников: Я сам начал изучать язык программирования Python, потому что я ленивый. Дело в том, что в Python используется так называемая динамическая типизация. То есть в любой момент времени я могу объявить любую переменную, не объявляя ее тип в начале, задать ей любой используемый тип данных, а потом в другом месте программы взять и поменять этот тип.
Сначала переменная могла быть числом, потом строкой, потом стала массивом, а потом URL-запросом. В любой момент времени я взял и переназначил ее.
Это позволяет программисту не зацикливаться на том, что, где, когда у него было написано, за исключением крайне редких случаев, что с точки зрения моей лени оказывается очень удобным: надо примерно помнить, что я до этого делал, тогда все будет хорошо.
Если не вдаваться в подробности, то в Python есть огромное количество дополнительных библиотек, это – гибкий язык программирования, который позволяет достаточно легко решать задачи в разных направлениях. Благодаря реализованной в Python динамической типизации он хорошо «идет» в качестве первого языка, с которого можно начинать изучение программирования.
Дмитрий Штенников: Есть такой автор учебников по информатике — Константин Поляков. Он тоже в последнее время сделал акцент на Python. Хотя изначально его книги, естественно, ориентировались на Basic и на Pascal.
Это значит, что в качестве первого языка программирования наряду с этими наиболее известными языками можно выбирать Python. Более того если говорить про детское программирование, то Python вошел в задания ЕГЭ – его включили в перечень языков, используемых в шаблонах заданий.
Кстати, курс может быть полезен тем, кто в будущем готовится к ЕГЭ. Однако в нем речь идет об основах Python – курс не учит решать конкретные задачи ЕГЭ. Поэтому, как отмечает Дмитрий, у одиннадцатиклассников времени на него уже точно нет, ведь их «натаскивают» на конкретные типы заданий. А вот школьники помладше как раз могут поизучать язык для своего дальнейшего развития.
Помимо Python будущему специалисту, возможно, и не потребуется знание каких-то других языков – в некоторых случаях можно остановиться только на Python, потому что он это позволяет. Кроме того, Python очень востребован у работодателей, потому что подходит для решения широкого круга задач и по классическому программированию, а не только по созданию веб-приложений.
Например, на Python вполне можно реализовывать задачи шифрования, обработки данных, высокопроизводительные вычисления (в рамках разумного через параллельные потоки это тоже возможно).
Дмитрий Штенников: Надо заниматься обработкой графики — пожалуйста, интеллектуальной обработкой данных — пожалуйста. На нем можно даже роботов запускать. YouTube [его] использует, Google использует. Что еще желать языку программирования?
Курс дает базовые знания и навыки (возможность писать программы по простейшей обработке данных и создавать простые веб-ресурсы), которых будет достаточно тем, кто хочет заниматься только веб-разработкой. Кто-то может остановиться, а кто-то – пойти дальше.
К сожалению, 10 тематических недель, на которые рассчитан курс, будет недостаточно для полноценного промышленного программирования. Но слушатель сможет заняться созданием собственных программных продуктов из серии «хочу сайт». А также будет готов к тому, чтобы влиться в команду разработчиков и самостоятельно нести ответственность за небольшую часть проекта, что вполне по силам студенту, который ищет возможность попрактиковаться в полученных навыках и попробовать себя на первой работе.
Кроме того, учитывая, что курс посвящен веб-приложениям, его можно рекомендовать и тем, кто работает в этой сфере, но не связан напрямую с программированием – например, веб-дизайнерам – в том случае, если они хотят расширить свои представления о создании ресурсов.
Для тех, кто уже разбирается в программировании, курс будет скучноват. Его можно будет прослушать ради экзотики или чтобы быстро получить понимание нового языка программирования, но не более. Поэтому более опытным программистам (в первую очередь тем, кто прослушивает курс не для зачета в университете, а для себя) часть курса вполне можно не прослушивать и присоединиться к процессу чуть позже. Как говорит Дмитрий, – «Первые лекции — это введение в язык программирования, хоть и со своими особенностями, но «for», он и в Африке «for». Так что до классов можно и пропустить».
Либо продолжить заниматься программированием вместе с Дмитрием Штенниковым, который планирует запустить более продвинутый курс по языку программирования Python чуть позже.
Дмитрий Штенников: Я советую всем начинающим программистам баловаться. Можно, конечно, делать только то, что говорит преподаватель или только то, что написано в книгах. Но когда человек сам начинает думать: «А что будет, если я это сейчас поменяю и поставлю что-нибудь другое», и смотрит результат, это оказывается гораздо интереснее и эффективнее для собственного развития. Так что надо баловаться с языком программирования, как с игрушкой.
В состав курса входят видеолекции, опросы и лабораторные практикумы. По окончании курса предусмотрен интернет-экзамен. Длительность курса составляет 10 недель. Курс начнется 6 марта.
Автор: Университет ИТМО