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

Васильев Алексей Николаевич

Обложка книги Программирование на Python в примерах и задачах (Васильев Алексей Николаевич)

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

С одной стороны, книга написана для новичков, но с другой стороны, в ней плотное повествование, которое знакомит вас с основными концепциями Python уже в первой главе. Тут не будет легкого погружения как в других книга. Заниматься придется усердно с самого начала.

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

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

Продолжаем поиск лучшую книги по Python для ноавичков. И сегодня на обзоре «Программирование на Python в примерах и задачах» Васильева А. Н.

Пару лет назад я уже делал обзор книги этого автора, тогда это была «Python на примерах» — и она мне понравилась. Среди российских авторов Васильев занимает у меня топ.

Единственное, прошлая книга не включала глав про файлы и была слишком математической, что несколько усложняло её текст. А также в ней были проблемы с чистотой кода.

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

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

Первая глава

Также Алексей приводит установку Python 3.7, а значит у нас есть надежда встретить тут f-строки и, в целом, получить более современный взгляд на язык. Хотя, когда я делал обзор на  «Python. Полное руководство» Кольцова, то выяснил, что в начале автор устанавливает Python 3.9, но далее по книге использует чуть ли не вторую версию языка.

Но в данном случае Алексей Васильев заморочился и везде использует Python 3.7, включая примеры установки разных IDE. И в целом знакомство в Питоном тут проходит неплохо. Автор хорошо объясняет и приводит классные примеры.

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

Пример кода в книге

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

А еще автор зачем-то знакомит нас с функцией eval(). И ладно просто знакомит, но Алексей Васильев не предупреждает, что это опасная функция, которую не принято использовать в реальных программах как раз из-за её небезопасности. Но оставим это на совести автора и вернемся к первой главе, в которой, кстати Алексей вводит понятие списка и приводит много несложных примеров его использования. И я не уверен, что списки нужно давать так рано.

Также, в первой главе, вводится понятие генератора списка, цикла for, а после и условие, за которым следует цикл while. В конце главы нас знакомят и функциями. И знаете повествование тут идет очень плотно. Уже в начале книги вы познакомитесь не только с "Hello world", но и узнаете более продвинутые концепции программирования.

Чтобы во всём этом разобраться, вам придется внимательно прочитать всё что пишет автор, выполнить весь код, который он приводит, а затем еще раз всё перечитать. Особенно если вы новичок. Тут не забалуешь.

Если у вас есть хоть какой-то небольшой опыт программирования, то тогда первая глава вам дастся гораздо проще.

Погружение в Python

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

При этом отступы в выражениях заставили меня всплакнуть:

Отступы расставлены как попало

Отступы расставлены как попало.

Не знаю в какой программе Алексей набирал и тестировал код, но, когда я набрал его в PyCharm, он мне подчеркнул все проблемные места и просто нажав Code-Reformat — Code можно было получить красивую и элегантную программу.

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

Длинное выражение

Длинное выражение.

Но её всегда можно было бы оформить в две строчки, что вообще-то не проблема.

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

Небезопасное использование eval()

Небезопасное использование eval().

Так что будьте аккуратны. Я понимаю, зачем Алексей использует eval(), с помощью неё очень удобно объяснить некоторые концепции, которые он приводит далее, в том числе обработку исключений, но опять же, будьте аккуратны с таким кодом. Особенно если им будет пользоваться кто-то кроме вас, особенно на вашем компьютере.

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

После мы подбираемся к словарям, и я решил проверить какую версию Питон автор использует в примерах. Так как на словарях сразу будет видно, это Python 3.7 или более ранние версии.

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

После Алексей Васильев переходит на работу со строками и в том числе рассматривает f-строки, а также разные варианты форматирования и методы строк.

Более глубокое погружение

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

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

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

Далее автор переходит к классам и ООП и посвящает им 130 страниц, это довольно много. 20% от всей книги.

После мы переходим к исключениям и потокам и уделяем им еще 60 страниц, что опять же вполне серьезно. Как и по выбору тем, так и по объему.

Последняя глава книги посвящена программам с графическим интерфейсом на базе ткинтер.

Выводы

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

Единственно в некоторых моментах вам скорее всего понадобится почитать что-то еще: статьи или может посмотреть видео на YouTube. Но это относится вообще к любому обучению.

А еще тут не помешало бы поправить стиль кода и выбрать более удачный шрифт для примеров. Также можно уйти от имен вида a, b, c и значений 1, 2, 3 к более приближенным к реальным. Ведь интересней сортировать не список из букв, а например список покупок, в котором находятся реальные продукты.

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