Найти тему
Shultais Education

Рецензия на книгу Простой Python. Современный стиль программирования (Билл Любанович)

Оглавление
Обложка книги "Простой Python. Современный стиль программирования" Билла Любановича
Обложка книги "Простой Python. Современный стиль программирования" Билла Любановича

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

В 2019 году на амазоне вышло второе издание этой книги, но на русском языке пока доступно только первое, датированное 2014 годом. Поэтому будем работать с тем, что есть.

Обложка второго издания книги на английском.
Обложка второго издания книги на английском.

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

Поэтому усаживайтесь поудобней и давайте разбираться что к чему.

ПЕРВАЯ ГЛАВА

Итак, изучение Python обычно начинается с установки интерпретатора, нет смысла читать о крутых возможностях языка или сферах его применения. Это не приблизит вас к программированию ни на бит, а вот запуск первой программы — это уже какой-то прогресс.

И для запуска Python-скриптов сперва нужно установить интерпретатор. Информацию об установке автор вынес в приложения и, в целом, там всё более-менее понятно.

Возникают лишь сложности с запуском самого интерпретатора из командной строки. В книге не написано как это сделать, точнее нет информации о том, как запустить терминал в Linux и MacOS, или командную строку Windows. Автор подразумевает, что вы продвинутый пользователь и сами с этим справитесь.

Пусть будет так. Вы успешно установили Python, запустили терминал и интерактивный интерпретатор, открыли книгу и давайте посмотрим что-же вас ждет в первой главе?

А в ней автор приводит много довольно сложного кода: со словарями, списками, циклами врезками на C++, Java и PHP, а также пример подключения к YouTube по API.

Пример кода из книги.
Пример кода из книги.

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

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

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

СЛЕДУЮЩИЕ ГЛАВЫ

Но давайте посмотрим, что будет дальше, а дальше идет глава про числа, строки и переменные. Что вполне логично.

Каких-то откровений тут вы не найдете. Просто описание элементарных возможностей языка с небольшими примерами.

Тем не менее автор, или переводчик, продолжает начатую в первой главе стратегию неверного использования терминов. Он снова называет срезы функцией slice, а строковые методы функциями. Хотя понятие объекта автор уже ввел и логично бы ввести понятие метода, ведь метод — это как раз функция, связанная с объектом. Тем не менее Билл Любанович предпочитает называть split, join, replace именно функциями.т

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

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

КАК РАБОТАТЬ С КНИГОЙ

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

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

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

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

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

ПРОДОЛЖАЕМ ОБЗОР

Следующая глава посвящена составным структурам данных: спискам, словарям и т. д. Тут уже автор вводит понятие метода. При этом это определение он использует при демонстрации создания списка. И вот как раз такой синтаксис скорее похож на синтаксис вызова функции, а не метода.

Пример использования функции list.
Пример использования функции list.

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

Автор снова всё свалил в кучу. Но к этому мы уже привыкли.

При этом Билл Любанович охватывает очень большой объем тем, включая lambda-функции, генераторы, декораторы, исключения, модули, классы, объекты. То есть он проходится по всем ключевым особенностями языка. Разумеется, не так глубоко, как Марк Лутц, но в целом у вас сложится довольно полное понимание о возможностях Питона.

И чем дальше мы продвигаемся по книге, тем интересней становятся примеры. Так, в главе про классы, в качестве альтернативы простым классам или словарям предлагаются именованные кортежи. Если честно, я даже не знал, что такие существуют:

Именованные кортежи.
Именованные кортежи.

ЗНАКОМСТВО С ПОПУЛЯРНЫМИ БИБЛИОТЕКАМИ

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

Так в 8 главе автор показывает примеры работы с CSV, XML, HTML и JSON файлами, а также учит работать с модулем pickle и подключаться к базам данных, как напрямую, так и с помощью SQLAlchemy.

В том числе Билл затрагивает NoSQL хранилища, включая семейство dbm, про которое я говорил в рецензии на книгу Марка Саммерфилда.

Еще в книге рассказывается о memcache и redis, не очень подробно, но достаточно, чтобы понять, как они работают и зачем нужны. При этом вы найдете много рабочих примеров кода на Python.

После идет глава о сетях, и автор говорит о модулях requests, flask, beautiful soup, а затем переключается на возможности sys, включая работу с каталогами, файлами, символическими ссылками и правами доступа. Всё что я перечислил — это не какие-то сферические инструменты, это реальные библиотеки, с которыми приходится работать постоянно. Особенно если вы веб-разработчик.

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

Последняя же глава называется «Быть питонщиком» и в ней кратко рассказывается о менеджерах пакетов, IDE, стиле кода и PEP8. А также о тестировании, отладке и оптимизации программ. Тут же дается список полезных сайтов и книг.

Среди рекомендаций, например, есть «Изучаем программирование на Python» Пола Бэрри, которую я также высоко оценил. Еще Билл приводит несколько продвинутых книг, включая литературу об анализе данных и создании сложных приложений.

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

ПРИЛОЖЕНИЯ

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

И в целом эта книга мне понравилась, даже с учетом путаницы в терминах в первых главах. Для совсем новичков, как я сказал, она может быть сложной. Я же вижу её полезной для двух категорий разработчиков:

Первая — это начинающие Python программисты, которые уже владеют синтаксисом и хотят быстро познакомиться со всей инфраструктурой, которая есть вокруг Питона: библиотекам, Фреймворками, сервисами. Особенно будет полезно если вы хотите развиваться в области web-разработки.

Вторая категория, это web-программисты на других языках, которые хотят быстро вникнуть в Python и посмотреть какие у него есть инструменты. Например, вы пишите на PHP, а сейчас хотите попробовать Питон и вам надо быстро понять, как реализовать на нем похожие по сложности проекты: как работать с базами данных, как настроить кэширование, как написать парсер сайтов или бэкенд.

Если вы относите себя к одной из этих категорий, то книга может быть полезна. Новичкам же лучше выбрать что-то другое: например, Тони Гэддиса или Майкла Доусона.

ССЫЛКИ

Наука
7 млн интересуются