Рецензия на книгу
Изучаем программирование на Python

Пол Бэрри

Обложка книги Изучаем программирование на Python (Пол Бэрри)

Краткая рецензия

Отличная книга для тех, кто уже умеет программировать на других языках. Автор в непринужденной форме, со схемами и иллюстрациями, подробно объясняет основы Python, а также рассказывает как создавать сайты на Flask и работать с базами данных на примере MySQL

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

Полная рецензия

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

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

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

Две расходящиеся линии с перемычкой посередине — это А. И так далее.

Но вернемся к книге и первое, что о ней нужно знать — она не для новичков в программировании. Она для тех, кто не знает Python, но умеет программировать на другом языке: на Java, C++, PHP, на чем угодно.

И об этом написано на первой странице введения, хотя кто читает введение, кроме меня.

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

Автор без лишних прелюдий сразу показывает программу со списками, модулями, методами и условиями. Никаких элементарных вещей вроде "Hello World". Поэтому если вы раньше не программировали, то уже с первой главы вам будет тяжело.

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

Автор преподает Питон с 2007 года и у него выпущено две книги по Python и две по Perl.

Итак, в первой главе идёт подробный разбор кода, который включает, как я сказал, списки, модули и условия. А также попутно автор рассказывает про циклы for и while, показывает как пользоваться документацией и рассказывает про особенности отступов в Python.

При этом весь код рабочий и красивый, не как в книге из прошлого обзора. Кстати, забавно, что обе книги выпущены издательством Эксмо. И здесь в конце они рекламируют Python для начинающих Майка МакГрата, которую я не рекомендую.

Но в данном случае книга сделана грамотно, возможно это связано с тем, что родительское издательство — это О'Райли Медиа, у которой крутые книги по IT и высокие стандарты.

Но вернемся к содержанию. Далее автор рассматривает списки, словари, функции и модули. То есть стандартный набор python программиста. Всё также хорошо объясняется и обильно снабжается иллюстрациями и схемами.

Хотя в некоторых местах всё-таки верстку не дотянули, например ниже показывают пример данных, которые могут быть представлены словарем. И для удобства автор их разбил на две колонки, но в книге почему-то колончатость не сохранилась:

Проблемы с колонками

Проблемы с колонками при верстке.

Радует, что автор уделяет большое внимание стилю написания кода: не лепит всё в одну стоку, а разбивает и попутно объясняет, что так код будет проще читать.

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

Создание сайтов на Flask

Далее автор переходит к написанию web-приложений, в чем Python особо силен. И примеры он приводит на Flask. Я с Flask никогда не работал, мой фреймворк — это Django, поэтому я решил от корки до корки пройти пятую главу.

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

Прототип на салфетке

Прототип будущего приложения на салфетке.

Далее автор рассказал, как установить flask и привел код первого приложения. Пройдя по всем шагам через 5 минут у меня уже был запущен первый сайт на flask. Всё прошло без заминок.

При том, что сам код состоит из 6 строк и автор гармонично туда добавил имена с двойным подчеркиванием, декораторы и аннотации функций. Конечно, большая часть из этого относится к Flask, но сам факт того, что автор внес такие непростые понятия уже в 5 главе, и они тут к месту, — это уважение.

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

Пример задания

Пример задания, которое нужно решить прямо в книге.

На следующей странице вы можете сравнить ваш код с кодом автора. Это интересное педагогическое решение и всего таких упражнений в книге около 80. Конечно, не сравнить с реальным тренажером, но в целом подход хорош.

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

Еще, в книге есть врезки с названием «Это не глупые вопросы», в которых автор даёт пояснения на простые, но всё же не самые очевидные для новичков темы.

Врезка Это не глупые вопросы

Врезка «Это не глупые вопросы».

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

Но вернемся к созданию простого сайта на flask.

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

Да и вариант хранения кода в python файлах тоже отметается, автор сразу переходит к системе шаблонов Jinja2. И это самое грамотное решение. К тому же Jinja2 устанавливается автоматически вместе в Flaskом.

В общем, я минут 30-40 почитал, немного попрограммировал и легко закончил главу. Каких-то проблем и у меня не возникло, и я запустил небольшой локальный сайтик. Я даже почувствовал небольшой драйв от создания чего-то нового, что раньше не делал.

Как старт в web-программирование на Flaskе книга просто великолепная. И при этом — это только пятая глава, даже не середина. Но давайте посмотрим, что там дальше.

Расширение приложения

А дальше мы продолжаем работать с Flask и расширяем наше web-приложение, попутно прокачивая скилы в Python.

После идет целая глава посвященная работе с базами данных на примере MySQL. Причем — это работа с чистым SQL. Никакого ORM.

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

В конце книги есть немного продвинутых тем про генераторы, виртуальное окружение и тд.

Заключение

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

Пока, и успехов в учебе!