ТОП-15 книг по Python: от новичка до профессионала
Книги по Python (и связанным с ним специальным темам) на русском языке. Расставлены в порядке возрастания сложности, обобщены указанные читателями преимущества и недостатки.
Книги по Python для начального уровня
Эрик Мэтиз. Изучаем Python. Программирование игр, визуализация данных, веб-приложения
Книга в оригинале в сообществе @progbook
Руководство по языку Python c многочисленными примерами, которые обучают шаблонам чистого кода. После освоения базы языка обучение продолжается на рабочих проектах с использованием известных библиотек: 1) аркадная игра в стиле Space Invaders (библиотека pygame), 2) интерактивная визуализация данных (библиотеки matplotlib и plotly) и 3) веб-приложение на Django.
Отмеченные читателями достоинства книги:
- Рассмотрены многие аспекты использования языка.
- Приятный стиль повествования, продуманная последовательность тем.
- В конце каждой части есть задания для самостоятельного закрепления материала.
- Интересные примеры.
- Большие проекты разной направленности.
Недостатки:
- Низкое качество бумаги, использованной для печати, мягкий переплет.
- Есть проблемы с утраченными в результате перевода отступами в листингах программ (отступы являются важной особенностью языка Python).
- Не везде точный перевод.
Пол Бэрри. Изучаем программирование на Python
Читая эту книгу, вы без труда создадите собственное веб-приложение и узнаете, как управлять базами данных, обрабатывать исключения, пользоваться контекстными менеджерами, декораторами и генераторами.
Достоинства:
- Написана доступным языком для людей, которые никогда не программировали.
- Хорошо изложен материал по объектно-ориентированному программированию.
- Высокое качество печати, плотная бумага.
Недостатки:
- Некоторые сведения могут быть уже нерелевантны (например, код в разделе про SQL).
- Не хватает общего проекта, который бы постепенно обрастал новыми возможностями (как в других книгах серии Head First).
Марк Лутц. Изучаем Python
Классический учебник Python со всесторонним глубоким введением в язык программирования и для новичков в программировнии, и для профи. Основана на популярном учебном курсе Лутца. Учит писать эффективный качественный код.
Достоинства:
- Классическая книга, суперподробное введение во все особенности Python.
Недостатки:
- Стиль Лутца очень подробный, темп изложения неспешный – прочтение книги целиком потребует терпения.
- Читатели жалуются на многочисленные опечатки и ухудшение качества перевода и печати в 5-м издании. Поэтому мы советуем по возможности пользоваться 4-м изданием. Там тоже рассматривается Python 3 версии, отличия последних версий можно впоследствии изучить по документации.
Билл Любанович. Простой Python. Современный стиль программирования
Возможно, простым в изучении Python делает не его понятный синтаксис или принципы, а большое количество доступной и простой литературы, рассчитанной на начинающих программистов. В этой книге вы узнаете об основах языка, о современных пакетах и библиотеках Python 3. Автор рассматривает такие сложные темы, как отладка, тестирование, повторное использование кода и многое другое. Объяснения автора перемешаны с примерами кода, которые помогут быстро освоить язык и перейти к программированию реальных приложений.
Достоинства:
- Доступное изложение материала.
- Описаны современные технологии.
Недостатки:
- Больше подойдет для людей, уже имеющих опыт программирования на других языках, не для новичков.
- Встречаются опечатки, ошибки в комментариях к коду.
- Невысокое качество бумаги.
Книги для среднего уровня владения Python
Дэн Бейдер. Чистый Python. Тонкости программирования для профи
Словосочетание «для профи» – выдумка российских издателей. В оригинале книга называется Python tricks, то есть в ней собраны всякие «фишки», которые полезны тем, кто уже успел разобраться с основами языка и попрограммировать на Python. Для чтения достаточно базовых знаний языка. Особенно книга будет полезна тем, кто пришел в мир Python из других языков и некоторые мощные конструкции языка ускользнули от внимания.
Достоинства:
- Раскрыты интересные тонкости и приемы с позиций их практического применения.
Недостатки:
- Перевод неточен и оставляет желать лучшего. Будет полезно сверяться с оригиналом.
Лучано Рамальо. Python. К вершинам мастерства
Простота Python помогает быстро повысить производительность труда, но зачастую она же означает, что вы используете далеко не все возможности языка. С помощью этого практического руководства вы узнаете, как писать эффективный и идиоматический код на Python, используя потрясающие, но зачастую незаслуженно забытые фичи Python.
Достоинства:
- Учит делать код короче и понятнее.
- Колоссальное количество примеров использования стандартной библиотеки.
- Явным образом показывает преимущества Python 3.
- Хороший экскурс в историю развития языка, дающий понимание, почему Python такой, какой он есть.
- Описаны оптимальные примеры использования различных структур данных в Python.
Даг Хеллман. Стандартная библиотека Python 3. Справочник с примерами
Стандартная библиотека Python содержит сотни модулей, позволяющих взаимодействовать с операционной системой, интерпретатором и Интернетом. В этой книге Даг Хеллман описывает основные разделы библиотеки Python 3.x, сопровождая изложение материала компактными примерами исходного кода и результатами их выполнения. Приведенные примеры наглядно демонстрируют возможности каждого из модулей, предлагаемых библиотекой, и пригодны не только для изучения, но и для использования в реальном коде.
Достоинства:
- Полнота изложения, дает ясное понимание применимости модулей.
- Есть электронный вариант на сайте автора, откуда можно брать код примеров.
Недостатки:
- Очень большой размер.
- Встречаются опечатки.
Бизли и Джонс. Python. Книга рецептов
Оригинал 3-го издания в сообществе @progbook
Книга соответствует третьему стандарту Python. Приведены рецепты, охватывающие различные темы Python, а также задачи, имеющие широкий спектр областей применения. Каждый рецепт содержит примеры кода, которые можно использовать в своих проектах и обсуждение принципов работы данного решения.
Достоинства:
- Книга состоит из множества примеров-кусочков кода с пояснениями. Можно последовательно запускать в интерпретаторе и проверять свое понимание.
- Среди тем рассматриваются довольно непростые, например, метаклассы, декораторы, многопоточность, взаимодействие с С-библиотеками.
Гарри Персиваль. Python. Разработка на основе тестирования
Книга демонстрирует преимущества методологии разработки через тестирование (TDD). Вы научитесь писать и выполнять тесты для создания любого фрагмента вашего приложения и затем разрабатывать минимальный объем программного кода, необходимого для прохождения этих тестов. Рассказано, как работать с различными инструментами и фреймворками, такими как Django, Selenium, Git, jQuery и Mock. Издание предназначено для разработчиков, которые уже освоили начальный уровень программирования на Python и хотят перейти на следующий.
Достоинства:
- Полнота и качество кода, хорошие разъяснения.
- Последовательно описывается процесс разработки проекта через приемочные и модульные тесты, рефакторинг кода.
Книги Python для продвинутого уровня и специальные разделы
Мигель Гринберг. Разработка веб-приложений с использованием Flask на языке Python
Книга в оригинале в сообществе @progbook
Пошаговые примеры создания законченного приложения на Flask. Автор книги Мигель Гринберг знакомит с основными функциональными возможностями фреймворка и показывает, как расширять приложения дополнительными веб-технологиями.
Достоинства:
- Доступное изложение.
- Примеры из книги доступны в электронном виде (по ссылке).
Недостатки:
- Мягкая обложка, книга легко закрывается.
- Код книги постепенно устаревает, хотя принципы построения остаются в силе.
Андреас Мюллер и Сара Гвидо. Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными
Полноцветная книга, источник информации для каждого, кто собирается использовать машинное обучение на практике. Подробно объясняются все этапы, необходимые для создания успешного проекта машинного обучения, с использованием языка Python и библиотек scikit-learn, NumPy и matplotlib. Авторы сосредоточили свое внимание исключительно на практических аспектах применения алгоритмов машинного обучения, оставив за рамками книги их математическое обоснование.
Достоинства:
- Полноцветная книга, хорошее качество бумаги и иллюстраций.
- С места в карьер: уже с введения приводится код.
- Программный код доступен на GitHub.
- Довольно простым языком рассказывается об алгоритмах машинного обучения, разбираются плюсы и минусы, области применения.
Недостатки:
- Встречаются экземпляры книги с перевернутыми страницами или неправильно расположенными блоками страниц.
- Мягкий переплет – не очень удобно одновременно работать за компьютером.
- Без знаний о программировании и базовых знаний высшей математики книгу будет читать тяжело.
Дж. Вандер Плас. Python для сложных задач. Наука о данных и машинное обучение
Подробное руководство по вычислительным и статистическим методам для Data Science. Читатели, уже имеющие опыт программирования и желающие эффективно использовать Python в сфере Data Science, найдут в этой книге ответы на всевозможные вопросы, например: 1) как мне считать этот формат данных в мой скрипт? 2) Как преобразовать, очистить эти данные и манипулировать ими? 3) Как визуализировать данные такого типа? Как при помощи этих данных разобраться в ситуации, получить ответы на вопросы, построить статистические модели или реализовать машинное обучение?
Достоинства:
- Системный рассказ о библиотеках, используемых для решения задач из области Data Science.
- Большое количество примеров.
- Хорошо дополняет соответствующие курсы Stepik, Coursera и др.
Недостатки:
- Не затронута тема нейронных сетей.
- Содержит ошибки в иллюстрациях и коде.
- Несколько устарела (некоторые модули переименованы или перенесены).
- Мало математического обоснования методов.
Франсуа Шолле. Глубокое обучение на Python
Как упомянуто выше, книга Вандер Пласа не затрагивает темы нейронных сетей. Следующая книга подойдет для погружения в тему как нельзя лучше – ее написал Франсуа Шолле, один из создателей Keras – высокоуровневой оболочки для работы с нейросетевыми фреймворками.
Достоинства:
- Вместо заторов математики – простой, понятный, рабочий код.
- Последовательное изложение особенностей библиотеки Keras.
- Книга развивает инженерный подход к работе с данными.
- Честно рассказывается об ограничениях глубоких сетей.
Ян Эрик Солем. Программирование компьютерного зрения на Python
Если вы хотите разобраться в основах теории и алгоритмов компьютерного зрения, то эта книга – как раз то, что нужно. Вы узнаете о методах распознавания объектов, трехмерной реконструкции, обработке стереоизображений, дополненной реальности и других приложениях компьютерного зрения. Изложение сопровождается понятными примерами на Python. Объяснения даются без погружения в сухую теорию. Издание подойдет для студентов, исследователей и энтузиастов-любителей с базовыми знаниями математики и навыками программирования.
Достоинства:
- Понятная подача алгоритмов компьютерного зрения.
- Много примеров.
- Цветные иллюстрации.
Хуан Нуньес-Иглесиас и Штефан Ван дер Уолт. Элегантный SciPy
На протяжении книги вы будете работать с примерами из обширной научной экосистемы Python, используя программный код, который иллюстрирует кратко очерченные принципы. Используя реальные научные данные, вы будете работать с практическими задачами вместе с SciPy, NumPy, pandas, scikit-image и другими библиотеками Python.
Достоинства:
- Коротко и по делу, без лирических отступлений.
- Примеры взяты из реальных научных работ: генетика, обработка изображений, радиолокация, биология, нейрофизиология.
Недостатки:
- Преимущество конкретных примеров одновременно является и недостатком: требуется углубиться в описываемую область, чтобы точно понять пример.
- Неаккуратное использование научной терминологии в переводе.
Если вы не увидели любимую книгу в списке, пожалуйста, не стесняйтесь порекомендовать ее в комментариях. Если вы читали перечисленные книги, дополните наши описания – какие преимущества и недостатки отметили бы вы.
Библиотека программиста любит язык Python. Вот три недавних публикации: