Привет, Хабр! Поговорим о книгах?

Есть мнение, что люди начали читать меньше и всё чаще многие потребляют уже готовый контент в виде роликов на 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
https://media.proglib.io

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

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

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

 Недостатки:

  • Неточность перевода, поэтому повторим совет: если знаете английский, то книгу рекомендуем читать в оригинале. 

Бизли и Джонс «Python. Книга рецептов»

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

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

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

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

Недостатки:

  • Практически нет. 

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

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

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

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

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

Недостатки:

  • Практически нет.   

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

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

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

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

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

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

Недостатки:

  • Нет, или мы не смогли их найти. 

Ян Эрик Солем «Программирование компьютерного зрения на Python»

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

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

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

Недостатки:

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

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

Комментарии (9)


  1. 4reddy
    29.07.2022 18:23

    Нельзя просто так взять и не упомянуть в статье про лучшие книги по python книгу Лутца.

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


    1. Vertoletto
      29.07.2022 21:05

      Автор довольно скептически относится к этой идее )
      https://learning-python.com/python-changes-2014-plus.html#types35


      1. 4reddy
        29.07.2022 23:56

        Не знал. Спасибо за ссылку.

        Хорошо, что разработчиков языка это не останавливает :)


    1. OlegZH
      30.07.2022 19:33

      Разве обзор не начинается с Лутца?


  1. yulyakravczova1995
    29.07.2022 21:05
    +1

    Для общей картины не хватает книги "Программист-фанатик" Чеда Фаулера о том, как правильно направить себя в нужное русло


  1. omaxx
    29.07.2022 21:05
    +2

    Мне казалось, что заголовок «Лучшие книги по Python 2021-2022 года: для новичков и профи» подразумевает, что в обзор должны включаться новинки, вышедшие в 2021-2022 году…


  1. igorzakhar
    30.07.2022 07:36
    +3

    "Python. К вершинам мастерства (Fluent Python)." Автор: Лучано Рамальо


  1. OlegZH
    30.07.2022 19:31

    А куда можно отнести книгу "Программирование на Python 3. Подробное руководство" Марка Саммерфилда?


  1. Myxach
    31.07.2022 07:37

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

    Очень интересно. Сочетание воды и при этом "пробежимся только по верхушкам и даже основы не все расскажем" . Идеальный пример типичной бесполезной литературы: 200глав на то, что-бы рассказать как вывести хелловорлд и потом отправка в документацию по языку