Попросили коллег порекомендовать книги по изучению Python, которые когда-то помогли им прокачать свои навыки. Сохраняйте подборку в закладки — она пригодится и начинающим, и опытным специалистам. А также делитесь своими вариантами в комментариях.
«Изучаем Python»
Автор: Марк Лутц
Уровень: первый том — для начинающих, второй том — для продвинутых
Илья, инженер интеграции:
Бесконечно подробный в вопросах Python справочник. Это и плюс, и минус, но лучшего справочника просто нет.
«Изучаем Python» — это два тома технических подробностей и качественных примеров.
Первый том знакомит с основными конструкциями, парадигмами и модулями.
Основные разделы:
- Типы и операции — объекты в Python, основные типы и структуры данных.
- Операторы и синтаксис — основные операторы (присваивания, выражений, вывода) и основные конструкции (условия, циклы).
- Функции и генераторы — общая теория про часто-используемые функции, области видимости, генераторы и включения.
- Модули и пакеты — основные сведения, чек-лист по написанию собственных модулей (на Python).
Второй том полезен для продвинутых. Повествование начинается с объектно-ориентированного программирования и заканчивается на теме метаклассов.
Основные разделы:
- Классы и объектно-ориентированное программирование — общая теория, детали в реализации классов, перегрузка операций и другое.
- Исключения и инструменты — общая теория, детали обработки исключений, объекты исключений, проектирование с использованием исключений.
- Более сложные темы — Unicode и байтовые строки, управляемые атрибуты, декораторы, метаклассы.
Есть издание, объединяющее в себе два тома. Хотите системно изучить Python — вперед. Но запаситесь терпением: это хоть и структурированный, но сложный в восприятии учебник.
Где купить или скачать
Книгу можно приобрести на
сайте издательства. На данный момент заказать оригинальную бумажную версию из-за рубежа проблематично. Однако эту же книгу можно купить во многих книжных магазинах.
«Python для сетевых инженеров»
Автор: Наталья Самойленко
Уровень: начинающие
Денис, стажер в отделе развития сети:
Хорошая база с некоторыми тонкостями и рекомендациями по дальнейшему обучению. Полезна сетевым инженерам, которые плохо знают Python.
В книге также описаны основы Python, но среди остальных выделяется интересной подачей — ориентирована на сетевых инженеров и на работу со специальным оборудованием.
Отрывок из книги «Python для сетевых инженеров».
Отдельное внимание автор уделила работе с базами данных. Есть целый раздел про SQL, SQLite, модуль sqlite3, а после него — практикум на закрепление материала.
Кроме специфических разделов в книге описаны модули для веб-программистов. Например, про шаблонизатор веб-страниц Jinja.
Где купить или скачать
Это бесплатный учебник, он доступен на
сайте.
«Простой Python. Современный стиль программирования»
Автор: Билл Любанович
Уровень: начинающие
Илья, инженер интеграции:
Если сравнивать с трудами Лутца, у книги идеальный размер: 350 страниц против 1600. Нет перегруза листингами с кодом, все примеры очень простые для понимания.
Эта книга для тех, кто только начинает изучать как программирование, так и сам Python. В основе — самые базовые разделы про типы данных, коллекции и основные конструкции. А предпоследняя глава — про concurrency и сети, в которой автор рассказывает про очереди, процессы и потоки.
Кроме того, в книге есть дополнительные разделы про применение Python в науке. Сопровождаются они не только интересными, но и прикладными примерами.
Пример реализации географической карты, книга «Простой Python. Современный стиль программирования».
Где купить или скачать
В бумажном и электронном вариантах можно найти
здесь.
«Python. К вершинам мастерства»
Автор: Лучано Ромальо
Уровень: смешанный
Павел, архитектор сервисов работы с данными:
В книге хорошо описаны разделы про потоки управления и метапрограммирование. Хотя это не простые темы.
Книга ориентирована на тех, у кого есть базовый опыт программирования. Она раскрывает особенности Python. Каждый раздел сопровождается рекомендациями. Например, когда лучше не использовать рассматриваемые инструменты. Взаимен автор предлагает альтернативные варианты.
Отрывок из книги «Python. К вершинам мастерства».
Кроме того, книга насыщена подробными листингами с кодом и комментариями. Для некоторых это минус: учебник может показаться «нудным». Для других — плюс: такие описания помогают разобраться, как писать эффективный код.
Основные разделы:
- Модель данных в Python — основные типы данных: строки, числа, булевы значения.
- Структуры данных — списки, кортежи, словари, множества, специальные операторы для работы со структурами (срезы, распаковщики), numpy-массивы, всевозможные методы и многое другое.
- Функции как объекты — основы теории, пакеты для функционального программирования, декораторы и замыкания.
- Объектно-ориентированные идиомы — введение объектов через ссылки, работа с классами, парадигма ООП, наследования и перегразка операторов.
- Поток управления — контекстные менеджеры, генераторы, сопрограммы и запуск программ в параллельных потоках через concurrent.futures и asyncio.
- Метапрограммирование — свойства, дескрипторы атрибутов, декораторы классов и метаклассы.
Где купить или скачать
В бумажном и электронном вариантах можно найти
здесь. На данный момент заказать оригинальную бумажную версию из-за рубежа проблематично. Однако эту же книгу можно купить во многих книжных магазинах.
«Python. Книга рецептов»
Авторы: Дэвид Бизли, Брайан К. Джонс
Уровень: смешанный
Илья, старший бэкенд-разработчик
В книге почти нет теории, она полностью состоит из примеров. На каждой странице — задача, решение и обсуждение.
Пример из «Python. Книга рецептов».
Если лучше воспринимаете формат «шпаргалок», это ваш вариант. В книге — рецепты почти на все случаи жизни разработчика. Есть даже инструкции по работе с потоками, памятью и ресурсами CPU.
Вот, по нашему мнению, самые интересные рецепты:
- Написание простого модуля расширения на C — для тех, кто хочет писать «шустрые» модули.
- Заставляем ваши программы выполняться быстрее — пригодиться, если дополнительные расширения на C не нужны, а ускорить программу нужно: автор рассказывает, как с помощью простых приемов — чистки кода и изменения его парадигмы — увеличить производительность программы.
- Установка лимитов на использование памяти CPU — рецепт для настоящих системных администраторов; описывает, как устанавливать ресурсные ограничения для программ, выполняющихся в Unix.
Где купить или скачать
В бумажном и электронном вариантах можно найти
здесь. На данный момент заказать оригинальную бумажную версию из-за рубежа проблематично. Однако эту же книгу можно купить во многих книжных магазинах.
«Чистый Python. Тонкости программирования для профи»
Автор: Бейдер Дэн
Уровень: смешанный
Илья, старший специалист по закупке оборудования:
Легкое и «не давящее» повествование с постепенным погружением в мир Python. Редкие отсылки из жизни автора оживляют книгу. Она очень приятна для изучения и помогает разобраться с разными приемами.
Подойдет для тех, кому надоела скучная литература. Автор книги не боится сказать рассказывает не скучно, разбавляет теорию разными историями. Хотя подача на любителя: если не любите объемные книги и авторские рассуждения, то посмотрите на другие учебники.
Зато в книга подробная. Прочитав ее, научитесь:
- работать с исключениями, assert-ами, контекстными менеджерами, magic- и dunder-операциями,
- грамотно использовать стандартные структуры, ассоциативные массивы, хеш-таблицы, коллекции данных и очереди (FIFO, LIFO, с приоритетами),
- оптимизировать программы с помощью исследования модулей и объектов, изоляции зависимостей при помощи Virtualenv,
- работать со стандартными конструкциями, ООП-методами и «эффективными функциями».
Где купить или скачать
В бумажном и электронном вариантах можно найти
здесь.
Возможно, эти подборки тоже вас заинтересуют:
→ 8 книг по PostgreSQL для новичков и профессионалов
→ Книги по MySQL: пособия для начинающих и продолжающих
→ Книги по SQL: что почитать новичкам и специалистам
«Паттерны разработки на Python»
Авторы: Гарри Персиваль и Боб Грегори
Уровень: профессионалы
Павел, архитектор сервисов работы с данными
Подойдет тем, кто хочет изучить современные высокоуровневые паттерны проектирования. Примеры описаны на популярных фреймкорках — Flask и SQLAlchemy.
Для построения элегантной и надежной архитектуры приложений используют паттерны — без них не обойтись при масштабировании проектов.
Есть несколько основных групп высокоуровневых паттернов — предметно ориентированный подход (DDD), разработка через тестирование (TDD) и паттерны событийно-ориентированной архитектуры. Но их адаптация «под Python» не всегда очевидна.
Автор книги разложил все по полочкам. Для демонстрации паттернов автор рассматривает структуру реального проекта, в котором все из них используются. Поэтому книга не только полезна, но и интерактивна. Код проекта доступен на Github.
Где купить или скачать
В бумажном и электронном вариантах можно найти
здесь.