Продолжаем обзор книг по Питону для начинающих и сегодня на очереди забавная книга Пола Бэрри «Изучаем программирование на Python».
Книга неформатная как по размерам, так и по подаче материала. Внутри много картинок, забавных иллюстраций и мемасиков. Автор утверждает, что это улучшает восприятие информации, а также повышает активность мозга. И в целом, так и есть, визуализация действительно для мозга более понятна, чем простой текст.
Мозг вообще не умеет читать, эволюция не заложила такую способность, для мозга буквы и слова — это просто картинки, которые он распознает в образы и сопоставляет с шаблонами в памяти.
Две расходящиеся линии с перемычкой посередине — это А. И так далее.
Но вернемся к книге и первое, что о ней нужно знать — она не для новичков в программировании. Она для тех, кто не знает Python, но умеет программировать на другом языке: на Java, C++, PHP, на чем угодно.
И об этом написано на первой странице введения, хотя кто читает введение, кроме меня.
А еще эта «Изучаем программирование на Python» не претендует на глубину материала, то есть это не справочник по всем возможностям 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 адрес и номер порта. Вообще, я считаю, что во время обучения не бывает глупых вопросов, если вы что-то не поняли это в большинстве случаев, недоработки учителя. Ведь конечная цель обучения Python — это не прочитать лекцию или вывалить на ученика весь свой опыт, а чтобы вы поняли и смогли применить знания на практике.
Но вернемся к созданию простого сайта на flask.
После запуска элементарного приложения, автор рассматривает два подхода хранения больших фрагментов HTML кода — в длинных строках, с тройными кавычками, и в шаблонах. Заметьте, что вариант с принтами, как в книге Майка МакГрата, тут даже не рассматривается, потом что там был говнокод.
Да и вариант хранения кода в python файлах тоже отметается, автор сразу переходит к системе шаблонов Jinja2. И это самое грамотное решение. К тому же Jinja2 устанавливается автоматически вместе в Flaskом.
В общем, я минут 30-40 почитал, немного попрограммировал и легко закончил главу. Каких-то проблем и у меня не возникло, и я запустил небольшой локальный сайтик. Я даже почувствовал небольшой драйв от создания чего-то нового, что раньше не делал.
Как старт в web-программирование на Flaskе книга просто великолепная. И при этом — это только пятая глава, даже не середина. Но давайте посмотрим, что там дальше.
Расширение приложения
А дальше мы продолжаем работать с Flask и расширяем наше web-приложение, попутно прокачивая скилы в Python.
После идет целая глава посвященная работе с базами данных на примере MySQL. Причем — это работа с чистым SQL. Никакого ORM.
Далее автор немного углубляется в классы, менеджеры контекстов, декораторы и исключения. И делает он это на примере кода, который мы прошли раньше. То есть, опять же, идет постоянное расширение веб-приложения и углубление в Python. Это классный подход. По себе знаю, что очень сложно построить такой педагогический сторителлинг.
В конце книги есть немного продвинутых тем про генераторы, виртуальное окружение и тд.
Заключение
В целом, книга «Изучаем программирование» Пола Бэрри мне понравилась. И если вы уже умеете программировать, у вас есть немного времени и не хочется читать скучные руководства, то она отлично зайдет.
Пока, и успехов в учебе!