Рецензия на книгу
Сам себе программист

Кори Альтхофф

Обложка книги Сам себе программист (Кори Альтхофф)

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

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

Завершается книга советами по получению первой работы и прохождению собеседования.

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

Продолжаем поиск лучшей книги по Python для новичков. И сегодня на обзоре очень необычная книга Кори Альтхоффа — «Сам Себе Программист». Как научиться программировать и устроится в eBay.

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

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

Книга начинается с введения в программирование и уже в самом начале приводится цитата Линуса Торвальдса «Большинство хороших программистов делают свою работу не потому, что ожидают вознаграждения или признания, а потому что получают удовольствие от программирования».

Это очень правильные слова. Я знаю многих людей, которые пытаются залезть в IT только потому, что тут высокие зарплаты. И у них плохо получается, а всё, потому что, для того чтобы стать программистом нужно кайфовать от написания кода.

Кстати, сам Линус Торвальдс, автор цитаты, — это известный программист, который создал операционную систему Linux. Советую прочитать его книгу Just For Fun (Только ради удовольствия), в которой он как раз описывает как создавал Linux. В свое время эта книга оказала на меня большое влияние.

И да, цитата, с которой начинается «Сам себе программист» прямо в тему. Это совсем не то, что цитаты из советских фильмов в «Python на примерах: Васильева».

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

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

Сразу после установки, автор предлагает запустить «Hello, World». Отлично. Ваша первая программа готова. В третей главе мы продолжаем изучать программирование и наши примеры усложняются, в том числе автор приводит код простейшего цикла. А мы только на 20 странице. Книга действительно, про написание кода, что и требуется от программиста в первую очередь. В отличии от «Python для чайников», где мы приступили к программированию где-то после сотой страницы.

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

При этом, круто, что переводчик не просто перевел книгу, но и адаптировал её под нашу страну. Например, в качестве значений для переменной home он использует слова Россия и Казахстан:

Пример перевода

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

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

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

Примеры иллюстраций

Примеры иллюстрации.

Я, вообще, люблю такую визуализацию, она только помогает освоению нового материала. Кстати, особенно хорошо она получилась у Пола Бэрри в «Изучаем программирование на Python».

Далее в этой же главе, Кори Альтхофф приводит пример записи списка внутри другого списка:

Пример записи списка внутри другого списка

Пример записи списка внутри другого списка.

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

Шестая глава посвящена операциями со строками, а седьмая циклам. Всё очень лаконично и просто.

Далее Кори Альтхофф рассказывает про модули и файлы. Как обычные, так и CSV.

А в 10 главе, когда вы уже изучите большую часть синтаксиса — автор предлагает написать небольшую игру — «Виселица».

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

Объектно-ориентированное программирование

В них автор дает краткое описание разных парадигм программирования, включая процедурное, функциональное и ООП, а затем знакомит с инкапсуляцией, наследованием, полиморфизмом, абстракцией и композицией. Концепции не простые, но автор очень доступно всё объясняет.

В следующей главе Кори Альтхофф продолжает погружаться в классы, а затем предлагает написать еще одну игру — «Пьяница». Разумеется, с помощью ООП. Финальный код игры занимает три страницы. И я замечу, что код не сильно подробно описан, и при этом в нем есть магические методы, которые реализуют операторы сравнения. Игра получилась не очень сложной, но вам придется потратить время, чтобы разобраться во всех тонкостях её работы. Скорее всего нужно будет где-то что-то почитать за пределами книги. Что опять же логично. Вы же учитесь на программиста, нужно уметь пользоваться разными источниками.

Не только программирование

На этом изучение Python заканчивается, и мы переходим к третьей части «Сам себе программиста». Обращу внимание, что мы дошли до 141 страницы. То есть в одних книгах к этому моменту мы только начинали что-то программировать, а тут уже заканчиваем.

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

Следующий инструмент, с которым вас знакомит Кори Альтхофф — это регулярные выражения. А затем идут системы управления пакетами, а после и репозиториями.

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

Двадцатая глава посвящена практике и на этот раз вам предлагается спарсить контент с сайта Гугл Новостей. Для этого вам потребуется установить библиотеку beautifulsoap и написать не сложный, но интересный код на Python. Это действительно популярная задача в сфере web-разработки, в своё время чего только я не парсил.

Computer Science

Четвертая часть книги посвящена информатике в целом. Не знаю, что было в оригинальном издании, но скорее всего речь про Computer Science. Начинает автор со структур данных: стека и очереди. А затем переходит к алгоритмам и даёт пример решения знаменитой задачи FizzBuzz, которая служит для отсеивания программистов, которые не умеют писать код. Далее Кори немного говорит про последовательный поиск и рекурсию. И опять же, надо понимать, что тут дается самая база. Например, рекурсии посвящено 2 страницы.

Для сравнения у нас есть курс по Алгоритмам, в котором рекурсии посвящено 11 видео уроков общей продолжительностью более 50 минут. А тут 2 страницы.

И да, автор не скрывает, что рекурсия сложная концепция и по началу вам будет тяжело. К тому же, чтобы понять рекурсию, сначала нужно понять рекурсию.

На этом введение в Computer Science мы заканчиваем и переходим к пятой части книги про получение работы.

Первая работа

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

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

Завершается же книга советами о том, куда двигаться дальше, что читать, что смотреть, как развиваться.

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

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

Разумеется, только этой книги вам будет недостаточно, придется много учиться самостоятельно: покупать другие книги и курсы, читать статьи и смотреть видео на YouTube, но как старт в программирование — она самое то.

На этом у меня всё, делитесь статей, подписывайтесь на канал!
Пока и успехов в учебе!