Привет, Хабр! Поговорим о книгах?  Есть мнение, что люди начали читать меньше и всё чаще многие потребляют уже готовый контент в виде роликов на YouTube или сокращённых вариантов различных произведений. Но это вряд ли, ведь если бы люди не читали книги, могли бы тогда развиваться отечественные и зарубежные сервисы для любителей чтения? К примеру, LitRes, Bookmate и другие.   И да, в IT-команде Сбера много книголюбов с самыми разными предпочтениями. А поскольку мы на Хабре, то поговорим сегодня о технической литературе. Точнее, о Python и лучших книгах по этому языку для профи, программистов среднего уровня и начинающих. Подборка  ― уже под катом.  Среди нас много тех, кто только начал свой путь в изучении Python. И это круто, ведь столько всего нового ещё предстоит узнать! Благо, есть немало книг для новичков в мире Python.   В нашей команде есть те, кто считают эту книгу must have для разработчиков, и это вполне справедливо, ведь она в доступном виде показывает особенности Python и преимущества языка. Автор действительно постарался, так что книга получилась полезной, с теорией и большим количеством практического контента. Преимущества: Техническая литература отличается от художественной (побудем тут капитанами). Некоторые моменты не так легко запомнить, поэтому авторы в конце каждого раздела приводят своеобразное «домашнее задание». Это вопросы по прочитанному разделу плюс практические упражнения. Благодаря тому, что автор не наливал «воду», в книге коротко и весьма понятно объясняется, что такое типы объектов, функции, модули, есть подробный рассказ об инструментарии языка. Сказать, что автор ответил на всё, нельзя, но на очень многое ― точно. О популярности книги и качестве изложения свидетельствует то, что она постоянно переиздаётся. Как только накапливается критический объём обновлений языка ― автор выпускает новую версию.  Недостатки: Практически нет, единственное ― в русскоязычных изданиях последнего времени появилось довольно много опечаток, так что будьте внимательны к примерам. Лучший способ выйти из положения ― читать на английском.  Ещё одна отличная книга для начинающих. Есть как российская, так и оригинальная англоязычная версии. Как и в книге, о которой мы рассказывали выше, здесь представлена и теория, и практика. Причём, что логично, вначале идёт объяснение, после чего читатель волен проверить всё на практике. В целом, отличная книга, но было бы ещё интересно услышать и мнение пользователей Хабра.  Преимущества: Автор неплохо объясняет, в русскоязычном варианте есть хороший перевод, так что можете быть уверены в том, что книга действительно поможет разобраться в сложностях и нюансах языка. Автор не забрасывает техническими терминами, понимая, что книгу будут читать новички, объяснение ведётся по веками проверенной схеме ― от простого к сложному. Даётся интересное «домашнее задание», которое необходимо выполнять по примерам и объяснениям текущей главы или раздела. Книга не скучная: в ней есть множество нюансов, которые могут увлечь любознательного новичка.  Недостатки:  Как и в предыдущем случае, их почти нет. Иногда есть опечатки, не совсем корректный перевод, но таких случаев, к счастью, немного. Важная книга для тех, кто решил облегчить себе жизнь, поставив на службу Python и собственные мозговые извилины. Один из лучших вариантов ― это как раз Эл Свейгарт, который весьма неплохо всё объясняет по поводу автоматизации рутинных задач. Это здорово экономит время как разработчика, так и компании, в которой он работает. Время, как известно, ― деньги, так что книга поможет заработать, прямо или косвенно.  Достоинства:  Большое количество кейсов из личного опыта автора.  То, что показано в книге, может пригодиться в любой момент, ненужной информации практически нет.  Недостатки:  Если есть, то расскажите о них, мы не обнаружили.   Ещё одна отличная книга для начинающих, которая вместе с остальными, предложенными выше, действительно может многому научить. А почему? А потому, что в книге автор использует проверенный приём для привлечения читателей из мира технологий ― он приводит в основном кейсы из разработки игр. Судя по отзывам, многим читателям книга, что называется, «зашла», положительных рецензий очень много. В книге 12 глав, в каждой из них разбирается минимум одна игра. В трёх последних главах описываются графические интерфейсы, графика, звук и анимация. Ну и плюс подход у автора весьма оригинальный ― даже вместо Hello World он предлагает печатать Game Over.  Преимущества: Всё рассказывается с практической точки зрения, так что если вы уже знакомы с теорией, можно сразу же приступать к чтению. В книге отлично объясняется, как работает язык и что он может, несмотря на то, что большинство кейсов показываются на примере игр.  Недостатки: Их в целом нет, если не считать то, что не каждый разработчик мечтает о создании игр. Ну а поскольку в книге практически нет других кейсов, то стоит взвесить все за и против перед приобретением книги.   Книгу рекомендуем читать в оригинале, поскольку уже с перевода названия начинаются неточности. Оригинальное название ― Python tricks, там про «профи» ничего нет. Ну и содержимое предназначено для разработчиков среднего уровня. Профи тоже могут найти что-то полезное для себя, но в основном это всё же материал для программистов, которые уже не новички, но ещё и не профи.  Преимущества: Практически всё содержимое книги может оказаться крайне полезным разработчику в той или иной ситуации. Те самые tricks приводятся из практики самого автора, и они реально нужны. Для того чтобы понимать написанное, достаточно уметь разбираться с основами языка, имея относительно небольшой опыт разработки.  Недостатки: Неточность перевода, поэтому повторим совет: если знаете английский, то книгу рекомендуем читать в оригинале.  В книге раскрываются многие нюансы, которые нужны разработчикам если не каждый день, то частенько. В частности, авторы приводят рецепты, которые охватывают разные темы языка, плюс практические задачи, у которых весьма обширный спектр применения. Вместе с теорией авторы приводят и практику, то есть примеры кода, которые помогают понять, что к чему.  Преимущества: В относительно простой форме подан сложный материал, который можно быстро усвоить как раз благодаря подаче. Есть примеры ― участки кода с пояснениями, с которыми можно работать самостоятельно.  Недостатки: Практически нет.  Одна из лучших книг, которая есть в библиотеке многих программистов. В ней раскрываются нюансы методологии разработки через тестирование (TDD). Читателю рассказывают о том, как писать и выполнять тесты для создания практически любого участка приложения. Также автор показывает, как разрабатывать минимальный объём программного кода, требуемого для прохождения тестов. В целом, книга по сложности описываемых моментов ближе к начальному уровню. Так что её можно считать важной для тех, кто уже не новичок, но ещё и не особо опытный разработчик, как-то так. Преимущества: Автор даёт практические знания, в частности учит работать с разными инструментами и фреймворками, включая Django, Selenium, Git, jQuery и Mock. Недостатки: Практически нет.    В этой книге уже рассматриваются весьма сложные и объёмные задачи, которые довольно часто встречаются профессионалам в ходе работы. Издание представляет собой руководство по вычислительным и статистическим методам для Data Science. Идеально подходит для разработчиков, у которых уже есть неплохой опыт, а также для тех, кто желает усилить опыт и знания в Data Science. Автор уделяет особое внимание работе с данными разных типов, включая анализ ситуации, получение ответов, создание статистических моделей и машинное обучение. Достоинства: В книге много практических примеров, включая считывание разных форматов в скрипт, преобразование, очистку данных и манипуляцию ими, визуализацию данных определённого типа. Недостатки: Нет, или мы не смогли их найти.  Ещё одна крутая книга, которая заточена на решение специфических задач, а именно ― компьютерного зрения. Она открывает перед разработчиком новый мир, полный методов распознавания объектов, трёхмерной реконструкции, обработки стереоизображений, AR, VR и других нужных и важных технологий. Достоинства: Большое количество практических примеров, которые увязывают в единое целое теорию и практику.  Недостатки: Как и в предыдущем случае, мы не смогли их обнаружить. В целом, на этом всё. Если у вас есть любимые книги по Python, которые не попали в подборку, то кидайте в комментариях название и автора, обсудим! Кроме того, если читали что-то из того, что в подборку попало, давайте тоже поговорим, ведь мнения могут быть очень разными, а в дискуссии можно выяснить много полезного для себя.   SMM,