Код
#подборки

17 книг для начинающих, опытных и продвинутых Python-разработчиков

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

Иллюстрация: rawpixel.com / Vectonauta / timmdesign / zlatko_plamenov / Freepik / Дима Руденок для Skillbox Media

Мы попросили экспертов, сведущих в Python-разработке, посоветовать хорошую литературу для программистов разных грейдов. В итоге получилась подборка из 17 книг, проверенных временем, опытом и карьерой :)

В опросе принимали участие:


Книги для начинающих Python-разработчиков

Сложность: ★ ☆ ☆

Дмитрий Курлов

Senior Software Engineer в Smart Agri Labs

«В последние годы самыми популярными источниками информации стали блоги и ютуб-каналы. Но лучшим способом изучить язык по-прежнему остаётся документация.

Выбрать хорошую книгу довольно тяжело — это скорее вопрос везения. Как с курсами на Udemy: может попасться что-то интересное, но, скорее всего, вести курс будет индиец с ужасным акцентом, пересказывающий документацию. Тем не менее есть хорошие книги, которые стоит прочитать новичкам».

Книги из этой подборки дадут представление об основах языка, алгоритмах, фреймворке Django, машинном обучении и лучших практиках написания кода.

«Изучаем Python»

Марк Лутц

Изображение: издательство «Диалектика»

Оригинальное название: Learning Python.

Перевод с английского: Артёменко Ю.

Издательство: «Диалектика». 2019 год, 832 с.

Зачем читать: чтобы начать программировать на Python, даже если вы никогда в жизни не писали код.

«Изучаем Python» Марка Лутца — культовый учебник программирования, рассчитанный на новичков. Поможет освоить Python с нуля — от азов до продвинутых концепций объектно-ориентированного программирования. А ещё в книге много примеров и упражнений — чтобы можно было отточить теорию на реальных задачах.

Учебник Лутца хорош тем, что описывает буквально всё, что нужно знать о Python, — вплоть до работы интерпретатора и виртуальной машины. Если сможете освоить его целиком (800 страниц как-никак), получите фундаментальные знания о возможностях языка и его внутренней кухне.

Преимущества: книга даёт сильную базу не только по основам Python, но и по computer science в целом. Например, описывает, как язык работает с памятью и операционной системой.

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

«Простой Python»

Билл Любанович

Изображение: издательство «Питер»

Оригинальное название: Introducing Python: Modern Computing in Simple Packages.

Перевод с английского: Зазноба Е. В.

Издательство: «Питер». 2021 год, 592 с.

Зачем читать: чтобы в сжатой форме получить всё самое важное о языке.

Ещё один классный учебник для знакомства с Python. Здесь не будет глубокого погружения во «внутренности» языка, зато вы освоите основное: синтаксис, переменные, типы и структуры данных, возможности ООП, а на сладкое — работу с сетью, памятью и популярными фреймворками. И всё это на примере реальных программ, написанных на Python.

Бонусом книга раскрывает возможности Python в искусстве и науке — например, в ней говорится о работе с двухмерной и трёхмерной графикой, диаграммами, визуализациями, графическими интерфейсами. Так что она особенно понравится новичкам, нацеленным на data science, — можно получить базовые навыки работы с данными.

Преимущества: по-настоящему лаконичный учебник по программированию.

Недостатки: многие ссылки из книги уже недоступны.

Django 2 в примерах

Антонио Меле

Изображение: издательство «ДМК Пресс»

Оригинальное название: Django 2 By Example.

Издательство: «ДМК Пресс». 2019 год, 408 с.

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

С помощью книги «Django 2 в примерах» вы изучите возможности платформы, создавая реально работающие приложения: блог, социальную сеть, интернет-магазин и платформу для онлайн-обучения. Научитесь разворачивать проект на сервере и подключать к нему разные полезные штуки — например, формы оплаты, комментариев и авторизации.

Преимущества: написано легко и интересно, с обилием примеров. В книге пошагово разбирается создание сайта и его настройка. Все исходники и библиотеки можно скачать в репозитории на GitHub.

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

«Грокаем алгоритмы»

Адитья Бхаргава

Изображение: издательство «Питер»

Оригинальное название: Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People.

Перевод с английского: Матвеев Е. А.

Издательство: «Питер». 2022 год, 288 с.

Зачем читать: чтобы понять, что алгоритмы — это интересно и совсем не сложно.

Мастрид для всех, кто видит себя в IT. Неважно, работате вы программистом или просто сдаёте ЕГЭ по информатике, — понимание работы алгоритмов будет полезно всем причастным к computer science.

Простым и увлекательным языком автор рассказывает, как работают сортировка, рекурсия, хеш-таблицы, жадные алгоритмы и другие сложные концепции. Если вы любите, когда запутанные вещи объясняют на примере простых аналогий и жизненных ситуаций, вам точно понравится эта книга.

Преимущества: теория дана человеческим языком, с примерами кода на Python.

Недостатки: встречаются опечатки в коде из-за ошибок при редактуре русского издания.

«Грокаем глубокое обучение»

Эндрю Траск

Изображение: издательство «Питер»

Оригинальное название: Grokking Deep Learning.

Перевод с английского: Киселёв А.

Издательство: «Питер». 2019 год, 352 с.

Зачем читать: чтобы начать разбираться в машинном обучении и сделать первый шажок к data science.

Если вы всегда мечтали узнать, как учатся машины и из чего состоят нейронные сети, обязательно прочитайте эту книгу. По стилю подачи это скорее научпоп, а не академический учебник — идеально, чтобы полноценно разобраться в вопросе и не сломать мозг по дороге. Ну и куда же без практики — ближе к концу книги сможете попробовать сделать свои нейронки и ML-фреймворки с помощью популярных Python-библиотек — тех же NumPy и PyTorch.

Преимущества: для прочтения не требуется специальных математических знаний — достаточно простой арифметики и базовых кодерских навыков.

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

Что читать Python-разработчикам уровня Middle

Сложность: ★ ★ ☆

Никита Соболев

Сооснователь компании wemake.services

«Многие новички начинают изучение программирования с чтения книг. Я бы, наоборот, не рекомендовал этого делать и сам редко читаю учебники.

Лучше изучать официальную документацию и исходный код программ: заходите на GitHub, открываете понравившийся проект по Django или Python и читаете исходники. В какой-то момент благодаря этому вы начнёте понимать устройство практически любого проекта.

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

В этой подборке вы найдёте книги о распределённых системах, алгоритмах, инфраструктуре баз данных, глубоком обучении и типизации в Python.

«Python. Книга рецептов»

Дэвид Бизли, Брайан К. Джонс

Изображение: издательство O’Reilly Media

Перевод с английского: Уваров Д.

Издательство: «ДМК Пресс», 2019 год, 646 с.

Оригинальное название: Python Cookbook.

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

«Python. Книга рецептов» — это учебник программирования, заточенный на практику. Скучной теории здесь мало, зато на каждой странице — задача с решением и обсуждением. Все задания основаны на реальных ситуациях в разработке, поэтому их можно воспринимать как готовые инструкции — не зря же это книга рецептов.

Конечно, теоретическая база здесь тоже есть: структуры данных, алгоритмы, работа с итераторами и генераторами, кодирование и обработка данных, функции и так далее. Но всё это максимально привязано к практике — например, можно узнать, как ускорить работу программы, изменив парадигму написания кода.

Преимущества: книгу можно использовать как набор шпаргалок или справочник.

Недостатки: для чтения понадобятся базовые навыки в программировании — новичкам вникнуть будет сложновато.

«Python. Разработка на основе тестирования»

Гарри Персиваль

Изображение: издательство «ДМК Пресс»

Оригинальное название: Test-Driven Development with Python.

Перевод с английского: Логунов А.

Издательство:‎ «ДМК Пресс». 2018 год, 622 с.

Зачем читать: чтобы научиться писать веб-приложения с помощью подхода TDD — разработки через тестирование. Это когда для какого-то фрагмента программы сначала пишут тесты, а потом — код.

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

Преимущества: чуть ли не единственная книга о разработке через тестирование на Python.

Недостатки: читатели отмечают низкое качество перевода — например, некоторые фрагменты кода приведены с ошибками. Плюс часть инструкций по развёртыванию проектов немного устарели.

«Python. К вершинам мастерства»

Лучано Рамальо

Изображение: издательство «ДМК Пресс»

Оригинальное название: Fluent Python: Clear, Concise, and Effective Programming.

Перевод с английского: Слинкин А.

Издательство: «ДМК Пресс». 2016 год, 768 с.

Зачем читать: чтобы начать использовать возможности Python по-максимуму.

Фишка книги в том, что автор не только рассказывает о популярных инструментах, но и поясняет, для каких задач их лучше использовать: например, когда будут уместны списки, а когда — массивы. Многие советуют читать её после книги Лутца, чтобы глубже разобраться в сложных штуках: потоках управления, метапрограммировании, декораторах, замыканиях и вот этом всём.

Преимущества: автор описывает лучшие практики Python-программирования — рассказывает, как писать эффективный и читаемый код.

Недостатки: не подходит для новичков — минуя синтаксис и базовые особенности языка, книга сразу переходит к продвинутым фичам питона.

«Высоконагруженные приложения. Программирование, масштабирование, поддержка»

Мартин Клеппман

Изображение: издательство O’Reilly Media

Оригинальное название: Designing Data-Intensive Applications.

Переводчик: Пальти И.

Издательство: «Питер». 2022 год, 640 с.

Зачем читать: чтобы ещё лучше понимать, как работают сложные серверные приложения.

Книга Мартина Клеппмана — это Священное Писание бэкенд-разработчика. Базы данных, сетевые протоколы, репликация — чего тут только нет. Даже теорию категорий и техники объектно-ориентированного дизайна завезли. Если же обращаться к практической стороне вопроса, из книги вы узнаете:

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

И многие другие вещи, которые гуманитариям лучше не читать на ночь :)

Преимущества: можно получить представление о внутреннем устройстве баз данных и сценариях их использования.

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

«Чистый код»

Роберт Мартин aka Дядя Боб

Изображение: издательство O’Reilly Media

Оригинальное название: Clean Code: A Handbook of Agile Software Craftsmanship.

Перевод с английского: Матвеев Е.

Издательство: «Питер». 2019 год, 464 с.

Зачем читать: чтобы научиться писать чистый код и замечать ошибки там, где другие их не видят.

Эта книга имеет спорную репутацию, и вот почему.

Фишка в том, что очень многие вещи, о которых пишет Дядя Боб, правильные. Но из-за того, что мы не можем приучить себя к высокой культуре написания кода, мы так никогда не пишем. А из-за этого код, который мы видим в книге, кажется нам странным, некрасивым, и мы начинаем его осуждать.

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

Преимущества: можно узнать, какие паттерны разработки предлагают использовать опытные программисты.

Недостатки: примеры из книги рассчитаны на идеалистов и часто неприменимы в коммерческой разработке.

Никита Соболев

Сооснователь компании wemake.services

«Всё прочитанное отложится в голове, только если применять это на практике. Познакомившись с какой-то концепцией, нужно начать использовать её в коде, пытаться применить в уже существующих проектах или создать собственный на её основе. Только через практику вы поймёте, что из прочитанного вам подходит, а что — нет».

«Распределённые системы»

Эндрю С. Таненбаум, Мартен ван Стин

Изображение: издательство «ДМК Пресс»

Оригинальное название: Distributed Systems.

Перевод с английского: В. Яровицкий.

Издательство: «ДМК Пресс». 2021 год, 584 с.

Зачем читать: чтобы прокачаться в создании надёжных масштабируемых систем для бэкенда.

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

  • как работает конкурентный доступ к ресурсам;
  • как реализуются очереди сообщений;
  • как сбалансировать нагрузку на сервер.

Преимущества: неустаревающая классика, написанная простым языком с понятными примерами.

Недостатки: читатели жалуются на качество русского перевода книги. Например, frontend перевели как «передний конец», а commit — как «фиксация». Поэтому эту книгу рекомендуют читать в оригинале, тем более что он опубликован в открытом доступе.

«Типизированный Python для профессиональной разработки»

Алексей Голобурдин

Изображение: команда «Диджитализируй!»

Язык: английский.

Где посмотреть: в репозитории на GitHub.

Автор: Алексей Голобурдин.

Зачем читать: чтобы понять всю прелесть динамической типизации в Python. На примере приложения «Погода» автор рассказывает, как использовать встроенные в Python структуры и типы данных: строки, кортежи, словари и другие.

Преимущества: единственное за долгие годы издание о типизации в питоне. Живое сообщество поклонников — у автора есть популярный ютуб-канал, и не только по этой теме, но и по всей Python-разработке в целом.

Что почитать опытным Python-разработчикам

Сложность: ★ ★ ★

Никита Соболев

Сооснователь компании wemake.services

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

В подборке книг для сеньоров — теория категорий, паттерны проектирования, SQLAlchemy, продвинутый Python: слои приложений, метапрограммирование, событийное программирование и асинхронность.

Category Theory for Programmers

Bartosz Milewski

Изображение: издательство Bartosz Milewski

Язык: английский.

Оригинальное название: Category Theory for Programmers: The Preface.

Издательство: Bartosz Milewski. 2019 год, 350 с.

Зачем читать: чтобы взглянуть на программирование с точки зрения математики, а ещё чтобы разобраться в монадных функциях.

Забудьте про классы, объекты, полиморфизм, наследование. Автор книги, физик по образованию, предлагает разработчикам заглянуть в самые недра программирования — принципы теории категорий, благодаря которым разные части кода вообще можно сочетать друг с другом. Если это и не бином Ньютона, то очень близко к этому.

Это не просто книжка, которую можно прочитать и закрыть. Нужно обдумать прочитанное, написать код, снова обдумать и выполнить предложенные автором примеры кода. Это сложный образовательный процесс. А образовательный процесс — всегда насилие над собой. Нужно будет немножко поиздеваться над собой.

Преимущества: книга даёт программистам расширенную математическую базу. Есть качественный перевод на русский язык. Если хотите поработать с примерами кода из этой книги, можно скачать их в авторском GitHub-репозитории.

Недостатки: сложная книга, но не из-за подачи, а из-за темы. Фрагменты кода приводятся на C++ и Haskell, поэтому понадобится базовое знание этих языков.

Expert Python Programming

Michal Jaworski, Tarek Ziadé

Изображение: издательство Packt Publishing

Язык: английский.

Издательство: Packt Publishing. 2021 год, 630 с.

Зачем читать: чтобы разобраться в новых фишках синтаксиса Python, научиться работать с популярными инструментами и настраивать окружение.

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

  • разворачивать приложения на сервере;
  • интегрировать в Python блоки кода на C и C++;
  • использовать библиотеки событийного, сигнального и асинхронного программирования;
  • оптимизировать код — вычислять уязвимые места в проекте и улучшать их производительность;
  • составлять техническую документацию.

Преимущества: книга позволит глубже изучить язык программирования Python в версии 3.7.

Недостатки: опечатки в коде, нет перевода на русский язык.

«Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура»

Гарри Персиваль и Боб Грегори

Изображение: издательство «Питер»

Оригинальное название: Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices.

Перевод с английского: Андрей Логунов.

Издательство: «Питер». 2021 год, 336 с.

Зачем читать: чтобы разобраться в высокоуровневых паттернах проектирования.

Учебник даёт подробную информацию о подходах к архитектуре приложений. На понятных примерах авторы объясняют принципы предметно-ориентированного проектирования, разработки через тестирование, основные концепции ООП и общую архитектуру программного обеспечения.

Книга учит строить приложение со слоями, менеджерами контекста, пониманием unit of work, управлять сложностью приложений и получать максимальный результат от тестов.

Преимущества: описанные подходы работают не только в Python, но и в других языках программирования.

Недостатки: читатели жалуются на плохую вёрстку и адаптацию русскоязычного издания.

500 Lines or Less

Michael DiBernardo (editor)

Изображение: издательство Lulu Press, Inc.

Язык: английский.

Оригинальное название: 500 Lines or Less.

Издательство: Lulu Press. 2016 год, 478 с.

Зачем читать: чтобы узнать, как опытные программисты решают сложные задачи.

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

  • новичкам — чтобы узнать, как думают опытные коллеги;
  • опытным программистам — чтобы перенять какие-то приёмы и использовать их в работе.

Преимущества: учимся у лучших.

Недостатки: нет.

«Элегантный SciPy»

Хуан Нуньес-Иглесиас и Штефан ван дер Уолт

Изображение: издательство «ДМК Пресс»

Оригинальное название: Elegant SciPy: The Art of Scientific Python.

Перевод с английского: Логунов А.

Издательство: «ДМК Пресс». 2018 год.

Зачем читать: чтобы научиться работать с библиотеками для обработки данных.

Напоследок: книга для настоящих учёных и всех, кто грезит о больших данных. С её помощью можно освоить популярные библиотеки, которые используют в статистике, машинном обучении, визуализации данных и обработке изображений. Это и NumPy, и её надстройка SciPy, и Pandas, и легендарный блокнот Jupyter, который умеет исполнять код по кусочкам. А что ещё нам, учёным, надо?

Преимущества: коротко и по делу, без лирических отступлений — подробное и глубокое погружение в дебри научной Python-экосистемы. Все примеры — на основе реальных исследований. Например, есть примеры с набором данных по экспрессии генов и анализом радарных данных.

Недостатки: нет.

В заключение: как читать книги о программировании, чтобы извлечь максимальную пользу

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

Выбирайте книгу по уровню

Классическая ошибка — читать не ту книгу в неподходящий момент времени. Если вы новичок и читаете книжку для опытных программистов, вы себе вредите. Ведь вы ещё не понимаете проблематики, которая стояла перед автором, когда он эту книгу писал. После этого люди часто начинают «впихивать невпихуемое», а это плохо и для программиста, и для кода, который он пишет.

Не зацикливайтесь на best practices

Коммерческая разработка — это всегда костыли. Зачастую там никакие практики неприменимы. Поэтому будете вы читать книги или нет — никакой разницы. Чтение книг не играет роли в профессиональном становлении.

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

Главное — практика

Книги — лишь некий заменитель развития. Вы развиваетесь, когда что-то делаете. Когда вы читаете, то только делаете вид, что что-то делаете. Вместо этого вы должны полученные знания сразу применить на практике.

Лучший способ чему-то научиться — сделать open-source-проект, который решает конкретную проблему, а потом развивать его и поддерживать. Так вы становитесь экспертом в конкретной проблеме. Если вы не можете создать свой проект, можно присоединиться к существующему, и тогда люди, по работам которых написаны все эти книги, расскажут, как делать и как не делать. Это будет намного полезнее, чем прочитать книгу и не написать ни строчки кода по описанным практикам.

Больше интересного про код в нашем телеграм-канале.  Подписывайтесь!

Жизнь можно сделать лучше!
Освойте востребованную профессию, зарабатывайте больше и получайте от работы удовольствие.
Каталог возможностей
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована