Разработка на Python с нуля: роадмап программиста
Как научиться программировать на Python с нуля? Мы составили дорожную карту для быстрого, эффективного и структурированного изучения Python.
235К открытий243К показов
Программирование на 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 — популярный 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 с основ станут видеолекции:
Но курсы программирования на Python этим не ограничиваются. Освоить базу из представленной дорожной карты Python можно в онлайн-университете GeekBrains, где помимо теории есть возможность прокачать и практические навыки: создать интернет-магазин, сетевой чат, поработать в команде и получить фидбек от опытных разработчиков.
Подкасты
- 38 попугаев
- Python Junior подкаст
- Moscow Python Podcast
Что дальше?
Не останавливайтесь на достигнутом, ведь изучение Python с нуля — задача непростая, несмотря на всю лёгкость языка. Как только знания станут уверенными, переходите к использованию теории на практике. В этом поможет игра Python Challenge, где нужно решать задачки с помощью написания небольших программ: с каждым пройденным этапом будет увеличиваться сложность. Также вы можете поучаствовать в работе над любым open source проектом.
Изучайте теорию, закрепляйте практикой и переходите к реальным задачам.
235К открытий243К показов