Написать пост

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Django 2 в примерах

Django — популярный Python-фреймворк для написания веб-приложений. Многие начинающие разработчики выбирают его из-за относительной простоты и лёгкости в развитии. Однако это совсем не означает, что фреймворк не справится с профессиональными высоконагруженными системами.

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

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

Полезно как для начинающих разработчиков, так и для специалистов.

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

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

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

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

Data Science

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

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

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

Книги по теме

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

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

Благодаря этой книге вы познакомитесь с Scikit-Learn и научитесь работать с нейросетями с помощью библиотек Theano, TensorFlow и H2O. В процессе вы рассмотрите классификационные и регрессионные деревья, а также способы обучения нейросетей без учителя.

В книге рассмотрены принципы машинного обучения в модели MapReduce на Hadoop и Spark.

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

В данной книге описаны самые различные вычислительные методы и статистические алгоритмы. Без их использования невозможна какая-либо интенсивная обработка данных и проведение исследований.

Данное пособие будет полезно тем читателям, которые уже имеют какой-либо опыт в программировании и хотят научиться правильно использовать Python в Data Science. Например, как преобразовывать определённый формат данных в файл скрипта? Как сформировать и отфильтровать эти данные и работать с ними? Как благодаря полученной информации проанализировать ситуацию, составить статистическую модель и организовать машинное обучение.

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

Хоть это и не включено в дорожную карту, но можно изучать 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. Программирование игр, визуализация данных, веб-приложения

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

Далее вы сразу сможете применить полученные знания в 3 крупных проектах: шутер с динамической сложностью, обработка и визуализация большого объёма данных, и веб-приложение на Django, гарантирующее пользователям конфиденциальность.

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

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

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

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

В этой книге рассказывается о Python 3: функции, типы данных, операторы и принципы ООП. Также из неё вы узнаете о прикладных возможностях языка: регулярные выражения, популярные инструменты стандартной библиотеки и работа с файлами. Тут вы ознакомитесь с системой SQLite, узнаете о способах доступа к базам данных и методах получения информации из них.

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

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

Курсы Python

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

Превью видео KYFNDyNU1-k
Превью видео cKRRysbQZsM
Превью видео eFAHOmPjjWE

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

Подкасты

Что дальше?

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

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

Веб-разработка
Python
Машинное обучение
Data Science
Планы обучения
Партнёрский материал
227795