Python — важный язык программирования, который необходимо знать — он широко используется в таких областях, как наука о данных, веб-разработка, разработка программного обеспечения, разработка игр, автоматизация. Но как лучше всего изучить Python? Это может быть сложно и болезненно понять.
Когда мы изучали Python, нас больше всего расстраивало то, насколько универсальными были все учебные ресурсы. Мы хотели узнать, как создавать веб-сайты с использованием Python, но казалось, что каждый учебный ресурс хотел, чтобы мы потратили два долгих, скучных месяца на синтаксис Python, прежде чем мы смогли даже подумать о том, что нас интересует.
Это несоответствие сделало изучение Python довольно пугающим для нас. Мы откладывали это на несколько месяцев. Мы посмотрели на код Python, но он был чуждым и запутанным:
from django.http import HttpResponse def index(request): return HttpResponse("Здравствуй, мир. Вы находитесь в индексе опросов.")
Приведенный выше код взят из руководства по Django, популярной среде разработки веб-сайтов на Python. Опытные программисты часто бросают вам фрагменты, подобные приведенным выше. «Это просто!» — обещают они.
Но даже несколько, казалось бы, простых строк кода могут сбивать с толку. Например, почему некоторые строки имеют отступ? Что django.http? Почему некоторые вещи указаны в скобках? Понять, как все сочетается, когда вы мало знаете Python, может быть очень сложно.
Проблема в том, что вам нужно понимать строительные блоки языка Python, чтобы построить что-нибудь интересное. Приведенный выше фрагмент кода создает представление, которое является одним из ключевых строительных блоков веб-сайта, использующего популярную архитектуру MVC. Если вы не знаете, как написать код для создания представления, на самом деле невозможно создать динамический веб-сайт.
Большинство руководств предполагают, что вам нужно изучить весь синтаксис Python, прежде чем вы сможете начать делать что-нибудь интересное. Это то, что приводит к месяцам, потраченным только на синтаксис, когда вы действительно хотите заниматься анализом данных, или созданием веб-сайта, или созданием автономного дрона.
Это то, что приводит к угасанию вашей мотивации и к тому, что вы просто отказываетесь от всего этого. Нам нравится думать об этом как об «скучном обрыве». Вы должны быть в состоянии взобраться на «скалу скуки», чтобы попасть в «страну интересных вещей, над которыми вы работаете» (лучшее название еще не принято).
Изучение синтаксиса Python не должно быть таким.
После того, как мы несколько раз столкнулись с «обрывом скуки» и ушли, мы нашли способ, который нам больше подошел. На самом деле, мы думаем, что это лучший способ изучить Python.
Что сработало, так это сочетание изучения основ и создания интересных вещей. Мы потратили как можно меньше времени на изучение основ, а затем сразу же погрузился в создание вещей, которые нас интересовали. В этой записи блога мы шаг за шагом расскажем, как воспроизвести этот процесс, независимо от того, почему вы хотите изучать Python.
Шаг 1. Определите, что мотивирует вас изучать Python
Прежде чем вы начнете изучать Python онлайн, стоит спросить себя, почему вы хотите его изучать. Это потому, что это будет долгий и иногда болезненный путь. Без достаточной мотивации вы, вероятно, не справитесь. Например, мы проспали уроки программирования в средней школе и колледже, когда нам нужно было запоминать синтаксис, а у нас не было мотивации. С другой стороны, когда нам нужно было использовать Python для создания веб-сайта для автоматической оценки эссе, мы не спали ночами, чтобы закончить его.
Выяснение того, что вас мотивирует, поможет вам определить конечную цель и путь, который приведет вас к ней без скуки. Вам не нужно раздумывать точный проект, просто общая область, которая вас интересует, когда вы готовитесь к изучению Python.
Выберите интересующую вас область, например:
- Наука о данных/машинное обучение
- Мобильные приложения
- Сайты
- Игры
- Обработка и анализ данных
- Оборудование/датчики/роботы
- Скрипты для автоматизации вашей работы
Определите одну или две области, которые вас интересуют, и вы готовы придерживаться их. Вы будете направлять свое обучение на них и в конечном итоге будете строить в них проекты.
Шаг 2. Изучите базовый синтаксис
К сожалению, этот шаг нельзя пропустить. Вы должны изучить самые основы синтаксиса Python, прежде чем углубляться в выбранную область. Вы должны потратить на это минимум времени, так как это не очень мотивирует.
Мы не могли не подчеркнуть, что вы должны тратить минимально возможное количество времени на основной синтаксис. Чем быстрее вы приступите к работе над проектами, тем быстрее вы научитесь. Вы всегда можете вернуться к синтаксису, если позже застрянете. В идеале вы должны потратить на эту фазу всего пару недель, и определенно не больше месяца.
Также небольшое примечание: изучайте Python 3, а не Python 2. К сожалению, многие ресурсы по «изучению Python» в Интернете по-прежнему преподают Python 2, но вам определенно следует изучить Python 3. Python 2 больше не поддерживается, поэтому ошибки и дыры в безопасности исправлены не будут!
Шаг 3. Создавайте структурированные проекты
После того как вы изучите базовый синтаксис, можно начинать создавать проекты самостоятельно. Проекты — отличный способ учиться, потому что они позволяют применить свои знания. Если вы не примените свои знания, их будет сложно сохранить. Проекты расширят ваши возможности, помогут узнать новое и помогут вам создать портфолио, которое можно будет показать потенциальным работодателям.
Однако проекты очень свободной формы на этом этапе будут болезненными — вы будете часто застревать, и вам нужно будет обратиться к документации. Из-за этого обычно лучше создавать более структурированные проекты, пока вы не почувствуете себя достаточно комфортно, чтобы делать проекты полностью самостоятельно. Многие учебные ресурсы предлагают структурированные проекты, и эти проекты позволяют создавать интересные вещи в тех областях, которые вам небезразличны, но при этом не дают вам застрять.
Давайте посмотрим на несколько хороших ресурсов для структурированных проектов в каждой области:
Наука о данных/машинное обучение
- Dataquest — интерактивное обучение Python и науке о данных. Вы анализируете ряд интересных наборов данных, начиная от документов ЦРУ и заканчивая статистикой игроков в хоккее. В конечном итоге вы создаете сложные алгоритмы, включая нейронные сети и деревья решений.
- Python для анализа данных — написано автором крупной библиотеки анализа данных Python, это хорошее введение в анализ данных в Python.
- Документация Scikit-learn — Scikit-learn — основная библиотека машинного обучения Python. Здесь есть отличная документация и руководства.
- CS109 — это Гарвардский класс, в котором преподается Python для науки о данных. У них есть в Интернете некоторые из их проектов и другие материалы.
Мобильные приложения
- Руководство по Kivy — Kivy — это инструмент, позволяющий создавать мобильные приложения на Python. У них есть руководство о том, как начать изучение.
Игры
- Codecademy — проведет вас через создание пары простых игр.
- Учебники Pygame — Pygame — популярная библиотека Python для создания игр, и это список руководств для нее.
- Создание игр с Pygame — книга, которая научит вас создавать игры на Python.
- Изобретайте свои собственные компьютерные игры с помощью Python — книги, в которой рассказывается, как создать несколько игр с помощью Python.
Скрипты для автоматизации вашей работы
- Автоматизируйте скучные вещи с помощью Python — узнайте, как автоматизировать повседневные задачи с помощью Python.
Выполнив несколько структурированных проектов в своей области, вы сможете перейти к работе над собственными проектами. Но прежде чем вы это сделаете, важно потратить некоторое время на изучение того, как решать проблемы.
Продолжение: Как выучить Python (шаг за шагом) к 2021 году. Часть 2