Хабрахабр

[Перевод] Несколько полезных советов как практиковаться в Python

Сегодня я предлагаю Вам перевод статьи Duomly, посвящённой изучению и практике программирования на языке Python. Привет, Хабр!

Введение

Один путь для становления профессионалом в Python (или в другом любом языке) в основном зависит от имеющегося опыта и знаний. Изучение Python не сильно отличается от изучения других языков программирования. Это означает, что опытные программисты уже знакомы с основными концепциями программирования, обычные используют разные методы решения задач, когда как новички — нет.

Не смотря ни на что, имеется несколько вещей общих для всех, одна из них — Вам нужно практиковаться, очень много практиковаться!

Это Open-Source проекты которые действительно помогают в разработке. К счастью, Python имеет широкое, дружелюбное и сообщённое друг с другом сообщество.

Эта статья затронет всего 10 из них: Имеется много хороших советов о том, как практиковаться Python`у.

  • Выберете подходящее окружение
  • Удостоверьтесь, что Вы имеете достаточную базу для изучения более сложных вещей
  • Пишите и улучшайте код
  • Читайте документацию
  • Изучайте более сложные вещи после основ
  • Следите за стандартами, советами и трюками в языке Python
  • Анализируйте исходный код
  • Интересуйтесь библиотеками
  • Станьте частью сообщества
  • Изучите второй язык программирования

Выберете подходящее окружение

Windows, Mac OS, или любой дистрибутив Linux подойдёт для этого. Для начала Вам следует использовать обычный Python 3 и пакетный менеджер, на операционной системе которую Вы используете. Позже Вы можете установить Anaconda на Windows, Mac OS или Linux. (Даже Android с QPython, хотя возможности ограничены по сравнению с оригинальным Python). С помощью него Вы сможете найти много сторонних библиотек которые могут показаться Вам полезными. Он содержит интерпретатор Python, пакет Conda, зависимости и пакетный менеджер.

Большинство популярных IDE, таких как Visual Studio, VSCode, Emacs, Vim, Sublime Text и др. Вы должны выбрать нужную IDE (интегрированная среда разработка). Если Вам нравятся продукты от JetBrains, Вы можете попробовать использовать PyCharm.
Также в пакет дистрибуции Anaconda включён IDE под названием Spyder. имеют действительно хорошую поддержку для Python.

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

Они являются маленькими пакеты которые просто подсвечивают проблемы Вашего кода (синтаксические, или связанные с несоблюдением стиля программирования на Python — PEP8). Также Вы можете посмотреть эту статью чтобы узнать больше о IDE для Python.
Помимо всего прочего, хорошей идеей будет установить и настроить линтеры для Python (Pylint, flake8 и прочие).

Удостоверьтесь, что Вы имеете достаточную базу для изучения более сложных вещей

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

Некоторые другие типы данных, например комплексные числа, именованные кортежи, неизменяемые множества также могут быть полезными. В Python, Вам следует удостовериться, что Вы понимаете условные конструкции (if, else, elif), циклы (for, while), функции, числа, строки, кортежи, множества, списки, словари и так далее.

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

Пишите и улучшайте код

Затем попробуйте модифицировать его, например упростить, или более подходящим для каких-либо целей. Написание большого количества кода для себя, является неотъемлимой частью изучения языков программирования.
Начните с кода из книг и туториалов. После этого, попробуйте написать свои маленькие, но полезные программы.
Но главное, запомните одну из самых важных вещей о программирования: оно не о набирании кода, оно о понимании!

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

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

Читайте документацию

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

Также Вы можете получить документацию о Python объекте (class, method, etc) программно, с помощью атрибута .doc: К счастью, стандартная библиотека Python и большинство популярных сторонних библиотек имеют хорошую, подробную документацию доступную на их веб-сайтах.

>>> print(slice.__doc__)
slice(stop)
slice(start, stop[, step])
Create a slice object. This is used for extended slicing (e.g. a[0:10:2]).

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

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

Изучайте более сложные вещи после основ

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

Например магические методы, корутины, асинхронное программирование, многопоточность, мультипроцессность, тестирование и так далее. Такие темы как обработка исключений, распаковка и упаковка аргументов, *args и **kwargs, декораторы, модули и пакеты, ООП и генераторы, часто используются и Вы должны знать и понимать их на хорошем уровне.
Также имеется много продвинутых тем которые нужно изучить. Так, Вы можете начать с чего-то более простого и полезного. Это не то, что понадобится Вам в начале. Если вы работаете над научным проектом, вероятно, Вы найдёте многопроцессность интересной для Вас. Например, Вам нужно мощное средство для манипуляции со строками, Вы можете попробовать регулярные выражение.

Следите за стандартами, советами и трюками в языке Python

Повезло, что есть много ресурсов, которые охватывают многие из этих тем. Имеется много специфичных вещей в программировании конкретно для языка Python, которые являются не самой простой задачей для изучения.

PEP 20, так же названый Дзеном Python, написанный Тимом Петерсом, обозначает главные принципы Python: Официальная документация Python содержит много информации.

>>> import this
The Zen of Python, by Tim Peters
Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила.
При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если они не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один и, желательно, только один очевидный способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец.
Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямо сейчас.
Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша.
Пространства имён — отличная штука! Будем делать их больше!

Warsaw.
Также PEP 257, который обозначает соглашения для строк документации. PEP 8, или руководство по написанию кода от Гвидо Ван Россума, B.

Анализируйте исходный код

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

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

Интересуйтесь библиотеками

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

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

Он быстр и включает множество операций с массивами, без явного написания циклов for из Python. Если Вы хотите быть дата сайентистом или заниматься Machine Learning, Вам нужно начать с NumPy, который является основопологающей библиотекой, для манипуляции одно- и много-мерными массивами эффективным и простым путём.

>>> import numpy as np
>>> >>> a = np.array([1, 2, 3, 4, 5])
>>> a
array([1, 2, 3, 4, 5])
>>> b = 2**a
>>> b
array([ 2, 4, 8, 16, 32])
>>> a + b
array([ 3, 6, 11, 20, 37])
>>> b / 2
array([ 1., 2., 4., 8., 16.])

  • NumPy предлагает множество функций для манипулиции массивами. Также он содержит инструменты для линейной алгебры, статистики и так далее.
  • SciPy это библиотека для научных расчётов построеная над NumPy, которая содержит дополнительные возможности для линейной алгебры и статистики.
  • Pandas — одна из самых популярных Python библиотек. Она также построенна над NumPy и работает хорошо с NumPy и SciPy. Она включает функции для манипуляции с данными.
  • Scikit-learn это фундаментальная библиотека для Machine Learning с множеством алгоритмов. TensorFlow, Theano, Pytorch, и Keras также используются для работы с нейросетями.
  • Matplotlib и Bokeh хорошие варианты для визуализации данных.

Все эти библиотеки имеют превосходную документацию.

Самый популярный из них — Django, имеет большинство нужных возможностей. Если Вы хотите заниматься web-программирование, Вы можете изучить и попрактиковаться работать с некоторыми Python фреймворками для бэкенда. С другой стороны — Flask — мощный, гибкий микро-фреймворк с большим количеством дополнений. Это очень удобно для больших веб приложений. Django и Flask самые популярные Python веб-фреймворки.

Также Python имеет другие веб-фреймворки, например Pyramid, Bottle, Tornado и так далее.

Он часто используется в веб-фреймворках, но также в Data Science. SQLAlchemy — это пакет которые включает возможность работы с БД в объекто ориентированном стиле.

Станьте частью сообщества

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

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

Изучите второй язык программирования

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

Изучение C хорошо для лучшего понимания базовых концептов программирования, но Вы можете также писать на нём очень быстрые функции для Python. Если Вы хотите быть веб-программистом, Вам вероятно нужно будет изучить JavaScript. Rust это новый и очень классный язык, который уже имеет хорошую интеграцию с Python

Примеры проектов для практики

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

  • Если Вы часто работаете с Microsoft Office Excel, Вы можете использовать XLWings, NumPy и Pandas для ускорения вычислений.
  • Вы можете использовать Python для создания игр. Например, Вы можете взять библиотеку random и попробовать симулировать бросок кубика, или перемешивание колоды карт.
  • Если Вы хотите делать крутые графические интерфейсы, Вы можете использовать PyQt или Tkinter. Возможно Вам стоит создать калькулятор (чем больше возможностей, тем лучше) или какую-нибудь простую, но известную игру.
  • Если Вы хотите погрузиться в веб-разработку, попробуйте Flask. Он требует всего 5 строк кода для получения базовых, но функциональных веб-приложений.

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

Doumly Machine Learning туториал имеет инструкции как Вы можете практиковаться в Data Science и machine learning.

Заключение

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

Счастливого кодинга!

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»