Привет, Хабр! Поговорим о книгах?
Есть мнение, что люди начали читать меньше и всё чаще многие потребляют уже готовый контент в виде роликов на YouTube или сокращённых вариантов различных произведений. Но это вряд ли, ведь если бы люди не читали книги, могли бы тогда развиваться отечественные и зарубежные сервисы для любителей чтения? К примеру, LitRes, Bookmate и другие.
И да, в IT-команде Сбера много книголюбов с самыми разными предпочтениями. А поскольку мы на Хабре, то поговорим сегодня о технической литературе. Точнее, о Python и лучших книгах по этому языку для профи, программистов среднего уровня и начинающих. Подборка ― уже под катом.
В помощь начинающим
Среди нас много тех, кто только начал свой путь в изучении Python. И это круто, ведь столько всего нового ещё предстоит узнать! Благо, есть немало книг для новичков в мире Python.
Марк Лутц «Изучаем Python»
В нашей команде есть те, кто считают эту книгу must have для разработчиков, и это вполне справедливо, ведь она в доступном виде показывает особенности Python и преимущества языка. Автор действительно постарался, так что книга получилась полезной, с теорией и большим количеством практического контента.
Преимущества:
Техническая литература отличается от художественной (побудем тут капитанами). Некоторые моменты не так легко запомнить, поэтому авторы в конце каждого раздела приводят своеобразное «домашнее задание». Это вопросы по прочитанному разделу плюс практические упражнения.
Благодаря тому, что автор не наливал «воду», в книге коротко и весьма понятно объясняется, что такое типы объектов, функции, модули, есть подробный рассказ об инструментарии языка. Сказать, что автор ответил на всё, нельзя, но на очень многое ― точно.
О популярности книги и качестве изложения свидетельствует то, что она постоянно переиздаётся. Как только накапливается критический объём обновлений языка ― автор выпускает новую версию.
Недостатки:
Практически нет, единственное ― в русскоязычных изданиях последнего времени появилось довольно много опечаток, так что будьте внимательны к примерам. Лучший способ выйти из положения ― читать на английском.
Эрик Мэтиз «Изучаем Python. Программирование игр, визуализация данных, веб-приложения»
Ещё одна отличная книга для начинающих. Есть как российская, так и оригинальная англоязычная версии. Как и в книге, о которой мы рассказывали выше, здесь представлена и теория, и практика. Причём, что логично, вначале идёт объяснение, после чего читатель волен проверить всё на практике. В целом, отличная книга, но было бы ещё интересно услышать и мнение пользователей Хабра.
Преимущества:
Автор неплохо объясняет, в русскоязычном варианте есть хороший перевод, так что можете быть уверены в том, что книга действительно поможет разобраться в сложностях и нюансах языка.
Автор не забрасывает техническими терминами, понимая, что книгу будут читать новички, объяснение ведётся по веками проверенной схеме ― от простого к сложному.
Даётся интересное «домашнее задание», которое необходимо выполнять по примерам и объяснениям текущей главы или раздела.
Книга не скучная: в ней есть множество нюансов, которые могут увлечь любознательного новичка.
Недостатки:
Как и в предыдущем случае, их почти нет. Иногда есть опечатки, не совсем корректный перевод, но таких случаев, к счастью, немного.
Эл Свейгарт «Автоматизация рутинных задач с помощью Python. Практическое руководство для начинающих»
Важная книга для тех, кто решил облегчить себе жизнь, поставив на службу Python и собственные мозговые извилины. Один из лучших вариантов ― это как раз Эл Свейгарт, который весьма неплохо всё объясняет по поводу автоматизации рутинных задач. Это здорово экономит время как разработчика, так и компании, в которой он работает. Время, как известно, ― деньги, так что книга поможет заработать, прямо или косвенно.
Достоинства:
Большое количество кейсов из личного опыта автора.
То, что показано в книге, может пригодиться в любой момент, ненужной информации практически нет.
Недостатки:
Если есть, то расскажите о них, мы не обнаружили.
Майкл Доусон «Программируем на Python»
Ещё одна отличная книга для начинающих, которая вместе с остальными, предложенными выше, действительно может многому научить. А почему? А потому, что в книге автор использует проверенный приём для привлечения читателей из мира технологий ― он приводит в основном кейсы из разработки игр.
Судя по отзывам, многим читателям книга, что называется, «зашла», положительных рецензий очень много. В книге 12 глав, в каждой из них разбирается минимум одна игра. В трёх последних главах описываются графические интерфейсы, графика, звук и анимация.
Ну и плюс подход у автора весьма оригинальный ― даже вместо Hello World он предлагает печатать Game Over.
Преимущества:
Всё рассказывается с практической точки зрения, так что если вы уже знакомы с теорией, можно сразу же приступать к чтению.
В книге отлично объясняется, как работает язык и что он может, несмотря на то, что большинство кейсов показываются на примере игр.
Недостатки:
Их в целом нет, если не считать то, что не каждый разработчик мечтает о создании игр. Ну а поскольку в книге практически нет других кейсов, то стоит взвесить все за и против перед приобретением книги.
Книги для среднего уровня
Дэн Бейдер «Чистый Python. Тонкости программирования для профи»
Книгу рекомендуем читать в оригинале, поскольку уже с перевода названия начинаются неточности. Оригинальное название ― Python tricks, там про «профи» ничего нет. Ну и содержимое предназначено для разработчиков среднего уровня. Профи тоже могут найти что-то полезное для себя, но в основном это всё же материал для программистов, которые уже не новички, но ещё и не профи.
Преимущества:
Практически всё содержимое книги может оказаться крайне полезным разработчику в той или иной ситуации. Те самые tricks приводятся из практики самого автора, и они реально нужны. Для того чтобы понимать написанное, достаточно уметь разбираться с основами языка, имея относительно небольшой опыт разработки.
Недостатки:
Неточность перевода, поэтому повторим совет: если знаете английский, то книгу рекомендуем читать в оригинале.
Бизли и Джонс «Python. Книга рецептов»
В книге раскрываются многие нюансы, которые нужны разработчикам если не каждый день, то частенько. В частности, авторы приводят рецепты, которые охватывают разные темы языка, плюс практические задачи, у которых весьма обширный спектр применения. Вместе с теорией авторы приводят и практику, то есть примеры кода, которые помогают понять, что к чему.
Преимущества:
В относительно простой форме подан сложный материал, который можно быстро усвоить как раз благодаря подаче.
Есть примеры ― участки кода с пояснениями, с которыми можно работать самостоятельно.
Недостатки:
Практически нет.
Гарри Персиваль «Python. Разработка на основе тестирования»
Одна из лучших книг, которая есть в библиотеке многих программистов. В ней раскрываются нюансы методологии разработки через тестирование (TDD). Читателю рассказывают о том, как писать и выполнять тесты для создания практически любого участка приложения. Также автор показывает, как разрабатывать минимальный объём программного кода, требуемого для прохождения тестов.
В целом, книга по сложности описываемых моментов ближе к начальному уровню. Так что её можно считать важной для тех, кто уже не новичок, но ещё и не особо опытный разработчик, как-то так.
Преимущества:
Автор даёт практические знания, в частности учит работать с разными инструментами и фреймворками, включая Django, Selenium, Git, jQuery и Mock.
Недостатки:
Практически нет.
Книги для профи
Дж. Вандер Плас «Python для сложных задач. Наука о данных и машинное обучение»
В этой книге уже рассматриваются весьма сложные и объёмные задачи, которые довольно часто встречаются профессионалам в ходе работы. Издание представляет собой руководство по вычислительным и статистическим методам для Data Science. Идеально подходит для разработчиков, у которых уже есть неплохой опыт, а также для тех, кто желает усилить опыт и знания в Data Science.
Автор уделяет особое внимание работе с данными разных типов, включая анализ ситуации, получение ответов, создание статистических моделей и машинное обучение.
Достоинства:
В книге много практических примеров, включая считывание разных форматов в скрипт, преобразование, очистку данных и манипуляцию ими, визуализацию данных определённого типа.
Недостатки:
Нет, или мы не смогли их найти.
Ян Эрик Солем «Программирование компьютерного зрения на Python»
Ещё одна крутая книга, которая заточена на решение специфических задач, а именно ― компьютерного зрения. Она открывает перед разработчиком новый мир, полный методов распознавания объектов, трёхмерной реконструкции, обработки стереоизображений, AR, VR и других нужных и важных технологий.
Достоинства:
Большое количество практических примеров, которые увязывают в единое целое теорию и практику.
Недостатки:
Как и в предыдущем случае, мы не смогли их обнаружить.
В целом, на этом всё. Если у вас есть любимые книги по Python, которые не попали в подборку, то кидайте в комментариях название и автора, обсудим! Кроме того, если читали что-то из того, что в подборку попало, давайте тоже поговорим, ведь мнения могут быть очень разными, а в дискуссии можно выяснить много полезного для себя.
Комментарии (9)
yulyakravczova1995
29.07.2022 21:05+1Для общей картины не хватает книги "Программист-фанатик" Чеда Фаулера о том, как правильно направить себя в нужное русло
omaxx
29.07.2022 21:05+2Мне казалось, что заголовок «Лучшие книги по Python 2021-2022 года: для новичков и профи» подразумевает, что в обзор должны включаться новинки, вышедшие в 2021-2022 году…
OlegZH
30.07.2022 19:31А куда можно отнести книгу "Программирование на Python 3. Подробное руководство" Марка Саммерфилда?
Myxach
31.07.2022 07:37Эрик Мэтиз «Изучаем Python. Программирование игр, визуализация данных, веб-приложения»
Очень интересно. Сочетание воды и при этом "пробежимся только по верхушкам и даже основы не все расскажем" . Идеальный пример типичной бесполезной литературы: 200глав на то, что-бы рассказать как вывести хелловорлд и потом отправка в документацию по языку
4reddy
Нельзя просто так взять и не упомянуть в статье про лучшие книги по python книгу Лутца.
Кстати, в недостаток этой книги можно дописать отсутствие главы про "аннотации типов". Но будем надеяться, что в новом издании информация будет актуализирована.
Vertoletto
Автор довольно скептически относится к этой идее )
https://learning-python.com/python-changes-2014-plus.html#types35
4reddy
Не знал. Спасибо за ссылку.
Хорошо, что разработчиков языка это не останавливает :)
OlegZH
Разве обзор не начинается с Лутца?