Какие книги по python стоит прочитать
Перейти к содержимому

Какие книги по python стоит прочитать

  • автор:

10 книг по Python: как для новичков, так и для профи

Книг по Python довольно много, среди них есть отличные издания, которые будут полезны разработчику любого уровня. Собственно, эту подборку мы и подготовили в расчёте на специалистов с разным опытом и багажом знаний. Книги постарались упорядочить по возрастанию уровня сложности, с указанием плюсов и минусов (если они есть). Итак, поехали!

Книги для Python-разработчиков начального уровня

Программирование на Python в примерах и задачах

Автор: Васильев А. Н.

Книга знакомит читателя с базовыми методами, подходами и конструкциями, которые критически важны для изучения языка. В частности, для понимания принципов его использования на практике. Написана книга таким образом, чтобы быть понятной начинающему разработчику. Сложные (относительно) вещи тоже есть, но и они подробно разъясняются. Возрастной рейтинг — 12+, так что подходит издание и школьникам, и студентам.

Сильные стороны книги:

  • автор приводит большое количество примеров кода;
  • книга хорошо структурирована.

Изучаем Python: программирование игр, визуализация данных, веб-приложения

Автор: Эрик Мэтиз

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

Во второй части уже практическое обучение: читателю предстоит написать несложную 2D-игру, а также веб-приложение на Django. Кроме того, рассказывается о визуализации данных с использованием Matplotlib и Plotly. Кстати, о визуализации в мире Python мы уже писали — статья доступна вот по этой ссылке, она может пригодиться как опытному специалисту, так и начинающему разработчику.

Сильные стороны книги:

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

Простой Python. Современный стиль программирования, 2-е издание

Автор: Любанович Б.

Эта книга даёт возможность не только изучить базовые для языка Python понятия, но и узнать о практиках тестирования ПО, об отладке, повторном использовании кода, асинхронном программировании. Как и в некоторых других книгах об этом ЯП, есть теория и практические задачи. Кстати, во втором издании появился раздел с f-строками, что даёт больше информации читателю.

Сильные стороны книги:

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

Книги для Python-разработчиков среднего уровня

Однострочники Python: лаконичный и содержательный код

Автор: Майер Кристиан

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

Он также учит разбирать и понимать код на Python и использовать эти знания в собственной работе. Раскрываются хитрости и приёмы написания кода, регулярные выражения, полезные алгоритмы. И конечно, подробно разъясняются самые важные понятия computer science.

Сильные стороны книги:

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

Большая книга проектов Python

Автор: Свейгарт Эл

Эта книга рассчитана на тех, кто уже освоил основы Python и готов двигаться дальше. Вот что можно найти внутри:

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

Автор даёт описание программы, результат её выполнения плюс код с весьма понятным и подробным объяснением. Есть, конечно, и задачи для самостоятельной работы.

Сильные стороны книги:

  • в ней действительно много всего полезного, этим она и хороша;
  • книга написана хорошим языком.
  • мы их не заметили.

Алгоритмы неформально. Инструкция для начинающих питонистов

Автор: Такфилд Брэдфорд

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

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

Сильные стороны книги:

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

Книги по Python для опытных разработчиков

Внутри CPYTHON: гид по интерпретатору Python

Автор: Энтони Шоу

Автор рассказывает о принципах работы внутренних механизмов языка. Даются задания, которые позволяют на практике понять то, о чём рассказывает Шоу. В частности, раскрываются такие нюансы, как:

  • грамматика и язык Python;
  • почему CPython написан на C, а не на Python;
  • спецификация языка Python;
  • документация языка;
  • файл грамматики и многое-многое другое.

Читатель, освоив изложенные в книге материалы, сможет разобраться с основными концепциями внутреннего устройства CPython и научиться:

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

Сильные стороны книги:

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

Машинное обучение с использованием Python. Сборник рецептов

Автор: Элбон Крис

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

Сильные стороны книги:

  • автор раскрывает неочевидные приёмы работы, о которых не все знают;
  • приводятся примеры решения частых проблем ML и DS.
  • практически нет, разве что написано суховато, но и тема соответствующая.

Black Hat Python: программирование для хакеров и пентестеров, 2-е издание

Авторы: Джастин Зейтц, Тим Арнольд

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

Сильные стороны книги:

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

Высокопроизводительные Python-приложения. Практическое руководство по эффективному программированию

Авторы: Миша Горелик, Йен Освальд

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

Сильные стороны книги:

  • авторы рассказывают просто о сложных вещах.
  • мы их снова не нашли.

Лучшие книги по Python 2021-2022 года: для новичков и профи

Есть мнение, что люди начали читать меньше и всё чаще многие потребляют уже готовый контент в виде роликов на YouTube или сокращённых вариантов различных произведений. Но это вряд ли, ведь если бы люди не читали книги, могли бы тогда развиваться отечественные и зарубежные сервисы для любителей чтения? К примеру, LitRes, Bookmate и другие.

И да, в IT-команде Сбера много книголюбов с самыми разными предпочтениями. А поскольку мы на Хабре, то поговорим сегодня о технической литературе. Точнее, о Python и лучших книгах по этому языку для профи, программистов среднего уровня и начинающих. Подборка ― уже под катом.

В помощь начинающим

Среди нас много тех, кто только начал свой путь в изучении Python. И это круто, ведь столько всего нового ещё предстоит узнать! Благо, есть немало книг для новичков в мире Python.

Марк Лутц «Изучаем Python»

В нашей команде есть те, кто считают эту книгу must have для разработчиков, и это вполне справедливо, ведь она в доступном виде показывает особенности Python и преимущества языка. Автор действительно постарался, так что книга получилась полезной, с теорией и большим количеством практического контента.

Преимущества:

  • Техническая литература отличается от художественной (побудем тут капитанами). Некоторые моменты не так легко запомнить, поэтому авторы в конце каждого раздела приводят своеобразное «домашнее задание». Это вопросы по прочитанному разделу плюс практические упражнения.
  • Благодаря тому, что автор не наливал «воду», в книге коротко и весьма понятно объясняется, что такое типы объектов, функции, модули, есть подробный рассказ об инструментарии языка. Сказать, что автор ответил на всё, нельзя, но на очень многое ― точно.
  • О популярности книги и качестве изложения свидетельствует то, что она постоянно переиздаётся. Как только накапливается критический объём обновлений языка ― автор выпускает новую версию.

Недостатки:

  • Практически нет, единственное ― в русскоязычных изданиях последнего времени появилось довольно много опечаток, так что будьте внимательны к примерам. Лучший способ выйти из положения ― читать на английском.
Эрик Мэтиз «Изучаем Python. Программирование игр, визуализация данных, веб-приложения»

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

Преимущества:

  • Автор неплохо объясняет, в русскоязычном варианте есть хороший перевод, так что можете быть уверены в том, что книга действительно поможет разобраться в сложностях и нюансах языка.
  • Автор не забрасывает техническими терминами, понимая, что книгу будут читать новички, объяснение ведётся по веками проверенной схеме ― от простого к сложному.
  • Даётся интересное «домашнее задание», которое необходимо выполнять по примерам и объяснениям текущей главы или раздела.
  • Книга не скучная: в ней есть множество нюансов, которые могут увлечь любознательного новичка.

Недостатки:

  • Как и в предыдущем случае, их почти нет. Иногда есть опечатки, не совсем корректный перевод, но таких случаев, к счастью, немного.
Эл Свейгарт «Автоматизация рутинных задач с помощью Python. Практическое руководство для начинающих»

Важная книга для тех, кто решил облегчить себе жизнь, поставив на службу Python и собственные мозговые извилины. Один из лучших вариантов ― это как раз Эл Свейгарт, который весьма неплохо всё объясняет по поводу автоматизации рутинных задач. Это здорово экономит время как разработчика, так и компании, в которой он работает. Время, как известно, ― деньги, так что книга поможет заработать, прямо или косвенно.

Достоинства:

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

Недостатки:

  • Если есть, то расскажите о них, мы не обнаружили.
Майкл Доусон «Программируем на Python»

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

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

Ну и плюс подход у автора весьма оригинальный ― даже вместо Hello World он предлагает печатать Game Over.

Преимущества:

  • Всё рассказывается с практической точки зрения, так что если вы уже знакомы с теорией, можно сразу же приступать к чтению.
  • В книге отлично объясняется, как работает язык и что он может, несмотря на то, что большинство кейсов показываются на примере игр.

Недостатки:

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

Книги для среднего уровня

Дэн Бейдер «Чистый Python. Тонкости программирования для профи»

https://media.proglib.io

Книгу рекомендуем читать в оригинале, поскольку уже с перевода названия начинаются неточности. Оригинальное название ― Python tricks, там про «профи» ничего нет. Ну и содержимое предназначено для разработчиков среднего уровня. Профи тоже могут найти что-то полезное для себя, но в основном это всё же материал для программистов, которые уже не новички, но ещё и не профи.

Преимущества:

  • Практически всё содержимое книги может оказаться крайне полезным разработчику в той или иной ситуации. Те самые tricks приводятся из практики самого автора, и они реально нужны. Для того чтобы понимать написанное, достаточно уметь разбираться с основами языка, имея относительно небольшой опыт разработки.

Недостатки:

  • Неточность перевода, поэтому повторим совет: если знаете английский, то книгу рекомендуем читать в оригинале.
Бизли и Джонс «Python. Книга рецептов»

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

Преимущества:

  • В относительно простой форме подан сложный материал, который можно быстро усвоить как раз благодаря подаче.
  • Есть примеры ― участки кода с пояснениями, с которыми можно работать самостоятельно.

Недостатки:

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

Одна из лучших книг, которая есть в библиотеке многих программистов. В ней раскрываются нюансы методологии разработки через тестирование (TDD). Читателю рассказывают о том, как писать и выполнять тесты для создания практически любого участка приложения. Также автор показывает, как разрабатывать минимальный объём программного кода, требуемого для прохождения тестов.

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

Преимущества:

  • Автор даёт практические знания, в частности учит работать с разными инструментами и фреймворками, включая Django, Selenium, Git, jQuery и Mock.

Недостатки:

Книги для профи

Дж. Вандер Плас «Python для сложных задач. Наука о данных и машинное обучение»

В этой книге уже рассматриваются весьма сложные и объёмные задачи, которые довольно часто встречаются профессионалам в ходе работы. Издание представляет собой руководство по вычислительным и статистическим методам для Data Science. Идеально подходит для разработчиков, у которых уже есть неплохой опыт, а также для тех, кто желает усилить опыт и знания в Data Science.

Автор уделяет особое внимание работе с данными разных типов, включая анализ ситуации, получение ответов, создание статистических моделей и машинное обучение.

Достоинства:

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

Недостатки:

  • Нет, или мы не смогли их найти.
Ян Эрик Солем «Программирование компьютерного зрения на Python»

Ещё одна крутая книга, которая заточена на решение специфических задач, а именно ― компьютерного зрения. Она открывает перед разработчиком новый мир, полный методов распознавания объектов, трёхмерной реконструкции, обработки стереоизображений, AR, VR и других нужных и важных технологий.

Достоинства:

  • Большое количество практических примеров, которые увязывают в единое целое теорию и практику.

Недостатки:

  • Как и в предыдущем случае, мы не смогли их обнаружить.

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

Какие книги по python стоит прочитать

Змеиный язык – находка для программиста, правда, речь не о том, который из Гарри Поттера, а о том, который Python. Подружиться с программированием не так уж сложно, главное – грамотно начать и двигаться постепенно. Самый адекватный способ попробовать свои силы – освоить Python. Это максимально доступный, понятный и простой язык, позволяющий без месяцев изучения создавать креативные и интересные приложения. Идеален для начинающего программиста.

Мы поделимся подборкой из 8 классных книг, помогающих быстро освоить змеиный язык, научиться создавать графику, писать коды для текстовых редакторов и понять другие нюансы Python. Это не просто сборник пособий, а подборка, проверенная практическим методом и одобренная практикующими программистами. Интересные книги найдутся как для новичков, так и продвинутых пользователей.

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

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

2. Думай на языке Python: думай как программист (Allen B. Downey)

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

Проще не бывает! Книга написана феноменально простым языком, все понятия объяснены добротно и полно, непонятных моментов в программировании на Python просто не останется.

Вместо сотен хвалебных од скажем, что данный труд используется как пособие по изучению змеиного языка программирования в Калифорнийском и Бостонском Университетах, а также в Гарварде. Полезные сведения там найдутся и для продвинутых пользователей.

Отличное введение в Python с массой примеров кода, а также вариантов использования стандартной библиотеки. Книга оценена программистами по всему миру и может считать «настольным трудом» для начинающего программиста. Переиздание 3 обновлено по сравнению с предыдущим примерно на 75% и включает информацию об отличиях 2 и 3 версии.

5. Изучаем Python: тяжелый способ (Zed Shaw)

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

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

6. Программирование на Python (Mark Lutz. 4-е издание)

Плавный переход от теории к практике. В книге собраны практические методы программирования и советы для написания программ. Описаны способы решения наиболее типичных задач, по полочкам разложены сферы и способы применения Python.

В общем, если с теорией разобрались – этот труд поможет понять практический аспект и превратить теоретические знания в практические навыки. Написано легко и доступно.

Делаем шаг вперед в познании змеиного языка. После получения базовых навыков можно взяться за эту книгу, где рассмотрены 59 методик написания высокоэффективного и супер-надежного кода. Данное пособие учит писать в истинно «змеином стиле».

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

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

Бонус

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

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

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

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

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

Ещё больше информации о Python на нашем шестимесячном курсе «Профессия: Разработчик». Присоединяйтесь!

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

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

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

Мария Даровская

Мария Даровская

Журналист, коммерческий автор и редактор. Пишет про IT, цифровой маркетинг и бизнес.
Сайт: darovska.com.

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

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

  • Никита Соболев — сооснователь компании wemake.services, топ-70 по коммитам в CPython и топ-6 по коммитам в Mypy и Typeshed.
  • Семён Жаров — инженер по автоматизации и Senior-разработчик.
  • Дмитрий Курлов — Senior Software Engineer в Smart Agri Labs.
  • Аким Акимов — дата-инженер в Amazon Web Service.
  • Гриша Герасев — разработчик.

Книги для начинающих 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

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

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

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

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

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

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

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

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

Издательство: «ДМК Пресс», 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-программирования — рассказывает, как писать эффективный и читаемый код.

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

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

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

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

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

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

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

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

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

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

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

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

«Чистый код»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Category Theory for Programmers

Bartosz Milewski

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

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

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

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

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

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

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

Expert Python Programming

Michal Jaworski, Tarek Ziadé

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

Издательство: 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)

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

Оригинальное название: 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-проект, который решает конкретную проблему, а потом развивать его и поддерживать. Так вы становитесь экспертом в конкретной проблеме. Если вы не можете создать свой проект, можно присоединиться к существующему, и тогда люди, по работам которых написаны все эти книги, расскажут, как делать и как не делать. Это будет намного полезнее, чем прочитать книгу и не написать ни строчки кода по описанным практикам.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *