Ваш проводник к глубокому пониманию Python
Если ваша задача - это подробное и вдумчивое изучение языка, понимание его принципов работы и основного (читать, как встроенного) инструментария, то эта книга Марка Лутца лучшее, что можно найти. Для меня она стала некой настольной книгой, которую изучал дозировано на протяжении очень долгого времени. Уже и без книги активно применяя язык в рабочих задачах, Марк Лутц разжевывает, казалось бы, очевидные темы до тех пор, пока не приходит понимание, почему всё работает именно так. И ты уже пересматриваешь ранее написанное.
Сначала может возникнуть вопрос - а подойдёт ли книга новичку? С одной стороны, конечно, ведь здесь описание языка начинается с базовых конструкций и типов данных. С другой стороны, как мне кажется, столь подробное описание может отпугнуть человека, который до этого не имел дел с программированием вообще. Поэтому без бэкграунда рекомендовал бы сначала отдельно изучить базу. Но если вы вдумчивый, усердный человек с большим терпением, то можно сразу начинать с Марка Лутца.
Это своего рода библия Python. Можно считать это разжеванной документацией с множеством примеров и описанием принципов работы. Я убежден, что эффективное программирование невозможно, если не вникнуть в свой основной инструментарий достаточно глубоко. К тому же 2 тома Лутца - это ещё и отличный фильтр для новичков. Если осилите от корки до корки это пособие, то дальше будет заметно проще и тест на профпригодность можно считать успешным.
Пару слов о содержании. По сути, здесь рассматриваются все основные концепции и функционал языка, который поставляется с Python из коробки. Первый том подробно разбирает типы данных, функциональное программирование, работу с модулями. Второй том практически полностью посвящен объектно-ориентированному программированию в Python. Это подробное описание концепции ООП с понятными примерами - лучшее, что я читал на столь непростую тему. Сюда же добавим метаклассы, декораторы и другие, крайне сложные для понимания концепции языка.
Есть ли минусы? Да. Я бы выделил 3 основных:
1. Слишком частые отсылки к будущим темам. Понятно, что структурировать изучение языка программирования по нарастающей крайне сложно, но автор слишком часто отсылается к тому, что будет в будущем.
2. Самое последнее, 5-е издание книги рассматривает Python до версии 3.3. На момент написания этой рецензии, самая актуальная версия 3.12. Таким образом вы упускаете некоторые вещи, которые были добавлены позже, включая очень важные, например asyncio. Книга ничуть не теряет в актуальности, но после её прочтения придется углубиться в некоторые новые возможности языка отдельно.
3. Слишком много внимания уделено второй версии Python. Здесь предполагается в полной мере охватывать как вторую версию, так и третью, но для новичков полезность информации о Python 2.X стремится к нулю.
Резюмируя. Перед нами - мастхэв для программистов на Python. Даже если вы уже не первый год знакомы с языком, но не читали Лутца - крайне рекомендую. А для новичков, которые уже знают базовые операции или просто не боятся трудностей (а их бояться не надо) - строго обязательно.