Python — важный язык программирования, который нужно знать — он широко используется в таких областях, как наука о данных, веб-разработка, разработка программного обеспечения, разработка игр, автоматизация. Но как лучше всего изучить Python? Это может быть трудно и больно понять. Я знаю это по опыту.

Когда я изучал Python, меня больше всего разочаровывало то, насколько универсальными были все учебные ресурсы. Я хотел научиться создавать веб-сайты с помощью Python, но казалось, что каждый учебный ресурс хотел, чтобы я потратил два долгих, скучных месяца на синтаксис Python, прежде чем я мог даже подумать о том, чтобы делать то, что меня интересовало.

В большинстве руководств предполагается, что вам необходимо изучить все синтаксис Python, прежде чем вы сможете начать делать что-то интересное. Это то, что приводит к месяцам, потраченным только на синтаксис, когда вы действительно хотите заниматься анализом данных, или созданием веб-сайта, или созданием автономного дрона.

Все это время, потраченное на синтаксис вместо того, что вы хотите делать, приводит к тому, что ваша мотивация угасает, и вы просто отменяете все это.

Мне нравится думать об этом как о утесе скуки. Вы должны быть в состоянии взобраться на «скучную скалу», чтобы добраться до «страны интересных вещей, над которыми вы работаете».

Но вам не нужно проводить месяцы на этой скале.

После того, как я несколько раз столкнулся со «обрывом скуки» и ушел, я нашел процесс, который работал лучше для меня. На самом деле, я думаю, что это лучший способ выучить Python.

Что сработало, так это сочетание изучения основ с созданием интересных вещей. Я потратил как можно меньше времени на изучение основ, а затем сразу же погрузился в создание того, что меня интересовало.

Я покажу вам шаг за шагом, как воспроизвести этот процесс, независимо от того, почему вы хотите изучать Python.

Шаг 1. Выясните, что мотивирует вас изучать Python

Прежде чем вы начнете изучать Python онлайн, стоит спросить себя, почему вы хотите его изучать. Это потому, что это будет долгое и иногда болезненное путешествие. Без достаточной мотивации вы, вероятно, не справитесь. Например, я проспал уроки программирования в колледже, когда мне нужно было запомнить синтаксис, и у меня не было мотивации. С другой стороны, когда мне нужно было использовать Python для создания веб-сайта для автоматической оценки эссе, я не спал по ночам, чтобы закончить его.

Выяснение того, что мотивирует вас, поможет вам определить конечную цель и путь, который приведет вас к ней без скуки. Вам не нужно придумывать конкретный проект, достаточно общей области, которая вас интересует, когда вы готовитесь к изучению Python.

Выберите интересующую вас область, например:

  • Наука о данных / Машинное обучение
  • Мобильные приложения
  • Веб-сайты
  • Игры
  • Обработка и анализ данных
  • Аппаратное обеспечение / Датчики / Роботы
  • Скрипты для автоматизации вашей работы

Шаг 2. Изучите базовый синтаксис

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

Вот несколько хороших ресурсов, которые помогут вам изучить основы:

  • Learn Python the Hard Way — книга, в которой рассматриваются концепции Python от основ до более глубоких программ.
  • The Python Tutorial — туториал на основном сайте Python.

Чем быстрее вы сможете приступить к работе над проектами, тем быстрее вы научитесь. Вы всегда можете вернуться к синтаксису, когда застрянете позже. В идеале вы должны потратить на этот этап всего пару недель и уж точно не больше месяца.

Кроме того, изучайте Python 3, а не Python 2. К сожалению, многие онлайн-ресурсы «изучают Python» по-прежнему учат Python 2, но вам определенно следует изучать Python 3. Python 2 больше не поддерживается, поэтому ошибки и дыры в безопасности не будут исправлены!

Шаг 3: Создавайте структурированные проекты

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

Тем не менее, проекты очень свободной формы на этом этапе будут болезненными — вы будете часто застревать, и вам придется обращаться к документации. Из-за этого обычно лучше делать более структурированные проекты, пока вы не почувствуете себя достаточно комфортно, чтобы делать проекты полностью самостоятельно. Многие учебные ресурсы предлагают структурированные проекты, и эти проекты позволяют создавать интересные вещи в интересующих вас областях, не давая вам застрять.

Давайте рассмотрим несколько хороших ресурсов для структурированных проектов в каждой области:

Наука о данных / Машинное обучение

  • Python для анализа данных — написано автором основной библиотеки анализа данных Python, это хорошее введение в анализ данных в Python.
  • Документация Scikit-learn — Scikit-learn — основная библиотека машинного обучения Python. У него есть отличная документация и учебные пособия.
  • CS109 — это курс Гарварда, который преподает Python для науки о данных. Некоторые из их проектов и других материалов есть в сети.

Мобильные приложения

  • Руководство по Kivy — Kivy — это инструмент, позволяющий создавать мобильные приложения на Python. У них есть инструкция, как начать.

Веб-сайты

  • Bottle tutorial — Bottle — еще один веб-фреймворк для Python. Вот как начать с этого.
  • How To Tango With Django — руководство по использованию Django, сложного веб-фреймворка Python.

Игры

Аппаратное обеспечение / Датчики / Роботы

Скрипты для автоматизации вашей работы

После того, как вы выполнили несколько структурированных проектов в своей области, вы должны быть в состоянии перейти к работе над своими собственными проектами. Но прежде чем вы это сделаете, важно потратить некоторое время на то, чтобы научиться решать проблемы.

Шаг 4. Работайте над проектами Python самостоятельно

После того, как вы завершили несколько структурированных проектов, пришло время поработать над проектами самостоятельно, чтобы продолжить лучше изучать Python. Вы по-прежнему будете обращаться к ресурсам и изучать концепции, но будете работать над тем, над чем хотите работать. Прежде чем вы погрузитесь в работу над своими собственными проектами, вы должны чувствовать себя комфортно в отладке ошибок и проблем с вашими программами. Вот некоторые ресурсы, с которыми вы должны быть знакомы:

  • StackOverflow — сайт вопросов и ответов сообщества, где люди обсуждают вопросы программирования. Вы можете найти вопросы по Python здесь.
  • Google — наиболее часто используемый инструмент каждого опытного программиста. Очень полезно при попытке устранить ошибки. Вот пример.
  • Документация Python — хорошее место для поиска справочных материалов по Python.

Как только вы разберетесь с проблемами отладки, вы сможете приступить к работе над своими собственными проектами. Вы должны работать над вещами, которые вам интересны. Например, я начал работать над инструментами для автоматической торговли акциями вскоре после того, как научился программировать.

Вот несколько советов по поиску интересных проектов:

  • Расширьте проекты, над которыми вы работали ранее, и добавьте больше функций.
  • Ознакомьтесь с нашим списком проектов Python для начинающих.
  • Посетите встречи Python в вашем районе и найдите людей, которые работают над интересными проектами.
  • Найдите пакеты с открытым исходным кодом, в которые можно внести свой вклад.
  • Узнайте, ищут ли местные некоммерческие организации разработчиков-добровольцев.
  • Найдите проекты, созданные другими людьми, и посмотрите, сможете ли вы расширить или адаптировать их. Github — хорошее место, чтобы найти их.
  • Просмотрите сообщения в блогах других людей, чтобы найти интересные идеи для проектов.
  • Подумайте об инструментах, которые сделают вашу повседневную жизнь проще, и создавайте их.

Не забудьте начать с очень малого. Часто полезно начинать с очень простых вещей, чтобы вы могли обрести уверенность. Лучше начать с небольшого проекта, который вы закончите, чем огромный проект, который никогда не будет завершен.

Также полезно найти других людей, с которыми можно работать для большей мотивации.

Если вы действительно не можете придумать ни одной хорошей идеи для проекта, вот некоторые из них в каждой области, которую мы обсуждали:

Идеи проектов по науке о данных / машинному обучению

  • Карта, которая визуализирует выборы по штатам.
  • Алгоритм, который предсказывает погоду, где вы живете.
  • Инструмент, который предсказывает фондовый рынок.
  • Алгоритм, который автоматически суммирует новостные статьи.

Идеи проекта мобильного приложения

  • Приложение для отслеживания того, сколько вы проходите каждый день.
  • Приложение, которое отправляет вам уведомления о погоде.
  • Чат на основе местоположения в реальном времени.

Идеи проекта веб-сайта

  • Сайт, который поможет вам спланировать свое питание на неделю.
  • Сайт, который позволяет пользователям просматривать видеоигры.
  • Платформа для заметок.

Идеи игрового проекта Python

  • Мобильная игра на основе местоположения, в которой вы захватываете территорию.
  • Игра, в которой вы программируете решать головоломки.

Аппаратное обеспечение / Датчики / Идеи проекта роботов

  • Датчики, которые контролируют температуру вашего дома и позволяют вам контролировать ваш дом удаленно.
  • Умный будильник.
  • Беспилотный робот, который обнаруживает препятствия.

Идеи проекта автоматизации труда

  • Скрипт для автоматизации ввода данных.
  • Инструмент для извлечения данных из Интернета.

Главное что-то выбрать и сделать. Если вы слишком зацикливаетесь на выборе идеального проекта, есть риск, что вы никогда его не сделаете.