Рецензия на книгу
Python — быстрый старт

Джейми Чан

Обложка книги Python - быстрый старт (Джейми Чан)

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

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

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

Продолжаем обзор книг по Python для начинающих разработчиков и сегодня на очереди — «Python. Быстрый старт» Джейми Чана.

Совсем крохотная книга для совсем новичков. Однако для написания такой небольшой книги требуется огромный талант, ведь нужно убрать всё лишнее и оставить только самое важное. Здесь нет места для несмешных анекдотов как у Рика Гаско или для комплексных чисел как у Дэна Бэйдера. Также в таких книгах вы не найдете какой-то глубины и нестандартного применения Python. Только основа. Но этой основы вам должно хватить, чтобы начать писать простые программы, а затем и перейти к изучению более сложных и глубоких концепций языка. И это я всё говорю не про «Python. Быстрый старт», а про маленькие книги в принципе.

С быстрым стартом нам еще предстоит разобраться и давайте посмотрим, что там внутри. Книга традиционное начинается с со знакомства с Python, и знаете, чего тут нет? Тут нет того, что Python назван в честь британского сериала Летающий цирк Монти Пайтона, а не в честь змеи.

И это уже хорошее начало, потому что Летающий цирк Монти Пайтона — самая неважная информация о Питоне, которая только существует.

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

В целом, тут всё понятно и легко, единственное меня смутил лишний пробел после функции print() и отсутствие пробела после решетки в комментарии.

Проблема с print() в книге

Лишний пробел в функции print(), тревожный звоночек.

Это не в стиле Python и далее по книге автор везде придерживается такого стиля.

Я решил погуглить кто такой Джейми Чан и, судя по всему, Питон — это не его основной язык. Джейми Чан — это профессиональный технический писатель, автор серии «Learn Coding In One Day And Learn It Well». У него есть книги по SQL, Java, PHP, C#, CSS, SQL и так далее.

И данная книга, это уже второе издание. Первое можно легко найти в сети и в нём с ходу идут неработающие программы, в которых используются неправильные кавычки. А во втором издании, как иностранном, так и российском все эти ошибки устранены и код рабочий. Что на самом деле очень круто, ведь в прошлый раз на обзоре была книга «Язык программирования Python» Жукова, в которой неработающий код кочует от издания к изданию.

Но вернемся к нашей книге к третьей главе, в которой рассказывается про переменные и операторы.

И тут я снова столкнулся с небольшими неточностями. Во-первых, для имен переменных автор использует lowerCamelCase нотацию, снова не по канонам, но это простительно:

LowerCamelCase нотация в книге

LowerCamelCase нотация в книге

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

Далее автор привел список слов, которые нельзя использовать в качестве имен переменных и записал туда print и input. И он повторил ошибку Николы Лейси.

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

from builtins import print as p

# Используем input и print в качестве имен переменных
input = "input"
print = "print"
p(print, input)

В нём я наглядно показываю, что print и input можно использовать в качестве имён переменных. Разумеется, если вы будете писать так в реальной жизни, то вам спасибо никто не скажет, но тем не менее такая возможность есть.

Далее автор делает еще несколько ошибок, например он приводит оператор целочисленного деления // и пишет, что он округляет до ближайшего целого.

Но это не так, классическое округление округляет до ближайшего целого, а вот целочисленное деление просто отсекает дробную часть. Это другое. Более того, в Python вообще не используется классическое округление, в Python работает банковское округление.

Далее автор приводит оператор сложения с присваиванием += и в книге между плюсом и равно стоит пробел, а это синтаксическая ошибка:

Синтаксические ошибки в книге

Синтаксические ошибки в книге

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

В целом же в книге код рабочий, с хорошим форматированием и неплохими примерами. Единственно автор постоянно использует форматирование через %, а это прямо очень устаревший способ:

Устаревший способ форматирования

Устаревший способ форматирования

Более сложные темы

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

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

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

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

Код которой, для сверки, есть в конце книги. И там вы можете увидеть такой фрагмент:

Плохое понимание того как работают логические выражения

Плохое понимание того как работают логические выражения

Так писать допустимо новичкам, но хорошие программисты пишут просто if newUser:.

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

Сложный код для новичков

Сложный код для новичков

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

В общем я её не рекомендую, есть более достойные книги и вот полный список книг по Python.