Аватарка пользователя Марина Александровна
Марина Александровна

Разработка на Python с нуля: роадмап программиста

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

223472

Программирование на Python с нуля: легко или не очень? По факту, изучение Python почти ничем не отличается от изучения любого другого языка. Всё стандартно: установка, настройка рабочего окружения, базы данных, переменные, функции и первый «Hello World». Но дальше — круче, ведь в ход идёт разделение на сферы применения, синхронное и асинхронное программирование, тестирование и сопутствующие инструменты, часто индивидуальные для каждого языка.

Дорожная карта Python

Чтобы окончательно не запутаться, нужно всё структурировать. Именно поэтому мы совместно с Факультетом Python-разработки GeekUniversity составили дорожную карту, которая поможет в изучении Python с нуля.

Что нужно знать Python-разработчику?

Пласт базовых знаний и навыков включает в себя:

  • основные навыки пользования терминалом;
  • понимание принципа работы IDE;
  • навыки работы с Git;
  • менеджер пакетов pip;
  • базы данных (ORM, CRUD-операции);
  • принципы ООП;
  • синтаксис языка Python;
  • алгоритмы и структуры данных;
  • составление документации;
  • модульное тестирование.

Разумеется, недостаточно реализовать вывод «Hello World», чтобы разобраться в языке программирования Python, но для более глубокого понимания сперва стоит определиться с направлением, в котором вы хотите работать. Исходя из этого, подбираются дополнительные инструменты для изучения.

Веб-разработка

Здесь особенно популярны такие Python-фреймворки, как Django и Flask: с их помощью можно быстро создать логику бэкенда. Для начала работы хватит и одного, но не помешает знать несколько, понимать, в каких случаях они используются, где предпочесть Django, а с какой задачей лучше справится Flask, Tornado или Pyramid.

Для построения веб-приложений также пригодится знание протоколов, HTML, CSS и JavaScript.

Django 2 в примерах

Django 2 в примерах

Разработка веб-приложений с использованием Flask на языке Python

Разработка веб-приложений с использованием Flask на языке Python

Data Science

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

Для погружения в Machine Learning на Python, обучение стоит начать с основных разделов, а именно:

  • обучение с учителем;
  • обучение без учителя;
  • обучение с подкреплением.

Книги по теме

Крупномасштабное машинное обучение вместе с Python

Крупномасштабное машинное обучение вместе с Python

Python для сложных задач. Наука о данных и машинное обучение

Python для сложных задач. Наука о данных и машинное обучение

Другие направления

Хоть это и не включено в дорожную карту, но можно изучать Python для программирования игр, написания десктопных и мобильных приложений. Однако, несмотря на наличие соответствующих для этого инструментов, язык наиболее востребован именно в Data Science и бэкенд-разработке.

Основные инструменты Python-разработчика

Изучение основ Питона не может быть полноценным без набора полезных инструментов под рукой. Мы собрали небольшой список и разделили его на категории.

Базовые

  • Pip — популярный менеджер пакетов в Python, с помощью которого можно устанавливать и управлять программными пакетами.
  • Pipenv — инструмент для управления виртуальным окружением в Python.
  • Setuptools — целый набор инструментов для создания пакетов в Python.
  • Virtualenv — инструмент для создания виртуального окружения с пакетами.

Документация

  • Sphinx — генератор документации, который изначально создавался для работы с Python, но впоследствии стал инструментом общего пользования.
  • autodoc — расширение Sphinx для создания reStructuredText файлов из исходного кода.

Тестирование

  • py.test — платформа для тестирования на Python со множеством функций. Инструмент автоматически находит тесты, запускает их и выводит отчёты.
  • Selenium WebDriver — в тандеме с другими инструментами позволяет эффективно тестировать веб-приложений.
  • unittest — модуль инструментов с настройкой используемых данных, управлением комплектами и наборами тестов, возможностью запускать тесты в графическом или текстовом режиме.

Прочие

  • flake8 и SonarLint — популярные линтеры.
  • pyenv — менеджер версий Python.
  • Mypy — статический анализатор типов.

Дополнительные материалы для программирования на Python с нуля

Чтобы обучение языку Python с нуля было максимально эффективным, следует запастись полезными ресурсами.

Книги

Изучаем Python. Программирование игр, визуализация данных, веб-приложения

Изучаем Python. Программирование игр, визуализация данных, веб-приложения

Изучаем программирование на Python

Изучаем программирование на Python

Python 3 и PyQt 5. Разработка приложений

Python 3 и PyQt 5. Разработка приложений

Курсы Python

Отличным подспорьем для программирования на Python с основ станут видеолекции:

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

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

Подкасты

Что дальше?

Не останавливайтесь на достигнутом, ведь изучение Python с нуля — задача непростая, несмотря на всю лёгкость языка. Как только знания станут уверенными, переходите к использованию теории на практике. В этом поможет игра Python Challenge, где нужно решать задачки с помощью написания небольших программ: с каждым пройденным этапом будет увеличиваться сложность. Также вы можете поучаствовать в работе над любым open source проектом.

Изучайте теорию, закрепляйте практикой и переходите к реальным задачам.

223472