Архив по категории ‘книги’.

Прогресс в написании книги про Python в октябре

Прогресс в написании книги про Python в октябре

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

Судя по графику, удалось войти в более-менее рабочий ритм. Обычно книгу я пишу вечером после работы и в выходные. В среднем получается в день продвинутся на 2-3 страницы, а за неделю книга увеличивается примерно на 15 страниц. В последнее время прирост немного больше, потому что сейчас начался более длинный код для примеров.

Читать далее ‘Прогресс в написании книги про Python в октябре’ »

Прогресс с написанием книги про Python

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

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

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

Начал писать книжку про Python

А расскажу-ка я вам об одной авантюре, в которую недавно ввязался. Ну, может это и не совсем авантюра, но по крайней мере дело, которое требует к себе особого внимания. Если совсем коротко, то несколько месяцев назад я начал писать книгу про Python.

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

Ориентируюсь на наших студентов, которые учатся не на программистов, но с расчетом на то, что Python они будут использовать для инженерных задач и обработки данных. Поэтому в книге не будет ничего про веб-программирование, глубоко копать ООП тоже не будем (никакого множественного наследования и метаклассов), но при этом надо будет поподробнее рассказать про библиотеки Numpy, SciPy, Matplotlib и Pandas. При этом подразумевается, что студенты уже имеют представление о том, что такое программирование, переменные и циклы, и, возможно, даже поверхностно знают C.

Я думаю, что в телеграм-канале я буду периодически рассказывать, как продвигаются дела.

Книга Алекса Сюя «System Design»

На днях дочитал книгу Алекса Сюя «System Design. Подготовка к сложному интервью». Эта книга меня заинтересовала тем, что в ней описаны подходы к проектированию архитектуры сложных веб-сервисов со стороны бэкенда. Книга построена в формате интервью на собеседовании при приеме на работу, когда кандидата просят нарисовать, как бы он выстраивал структуру какого-нибудь сервиса, если бы он начинал проектировать ее с нуля. Во всех примерах речь идет о высоконагруженных сервисах с миллионами пользователей.

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

Кандидату в этой книге предстоит построить такие высоконагруженные системы, как поискового робота, систему сокращения URL-адресов, систему для отправки уведомлений пользователям (push-уведомления, SMS-уведомления, через почту и т.п.), ленту новостей блога, чаты, систему автозаполнения поисковых запросов, а в завершение ему предлагается нарисовать архитектуру будущих конкурентов для Youtube и Google Drive. Есть еще несколько глав, где требуется спроектировать один из компонентов таких систем — хранилище типа «ключ-значение», ограничитель трафика и распределенный генератор уникальных идентификаторов.

Читать далее ‘Книга Алекса Сюя «System Design»’ »

Книга Александра Пиперски «Конструирование языков»

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

Книга, о которой пойдет речь далее, вполне могла попасть в раздел «программирование», но проблема заключается в том, что ее написал лингвист, а не программист. Поэтому в результате книга оказалась написанной не про компиляторы… И вот тут я задумался… Сначала я хотел написать, что книга про языки, которыми пользуются обычные люди, в смысле не программисты, но это не так, потому что в книге в основном описаны языки, которыми никто не пользуется (кроме некоторых исключений). Да и по поводу «обычных людей» тоже не все так просто — нельзя просто так взять и проигнорировать языки эльфов, которым посвящена целая глава. Ну и про языки некоторых других фантастических тварей существ (да простят меня эльфы) тоже написано.

Автор этой книги — достаточно известный в определенных кругах популяризатор лингвистики Александр Пиперски, а его книга «Конструирование языков. От эсперанто до дотракийского» была издана уже в далеком 2017 году, а в 2020 вышло второе издание. Именно его я и читал. По сути в этой книге приводится краткий обзор искусственных языков, созданных для различных целей, как для художественных произведений, так и для реального использования. Мне особенно понравилась подача материала про некоторые языки, когда в начале главы приводятся несколько фраз на описываемом языке с переводом, а потом на основе этих данных читателю предлагается найти логику в построении этих выражений и выполнить задания по переводу других приведенных предложений. Затем в тексте главы автор вместе с читателем распутывает этот ребус, выявляя структуру построения фраз на описываемом языке.

Читать далее ‘Книга Александра Пиперски «Конструирование языков»’ »

Книжные итоги 2023

Книжные итоги 2023

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

Читать далее ‘Книжные итоги 2023’ »

Про книгу Дэвида Сиббета «Визуализируй это!»

Есть у меня вредная привычка дочитывать книжки до конца, даже если ее страницы уже давно утонули в воде, которую разлил автор. Обычно я до последней страницы надеюсь, вдруг там попадется что-нибудь полезное хоть в гомеопатических дозах. Часто результат не стоит потраченных усилий. Вот эта книжка как раз из таких.

Читать далее ‘Про книгу Дэвида Сиббета «Визуализируй это!»’ »

Книга Стива Макнила про старые компьютерные игры «Hey! Listen!»

Давненько я не брал в руки шашек книжек по истории IT. Книга Стива Макнила «Hey! Listen!» на меня уже давно с укоризной смотрела, стоя на полке рядом с другими еще не читанными книгами на эту тему. Наконец, я до нее добрался.

Автор этой книги — один из ведущих британского шоу о компьютерных играх «Dara O Briain’s Go 8 Bit», а к тому же еще и комик, поэтому на протяжении всей книги он пытается острить, имхо, не очень смешно (возможно, это такой британский юмор), а потом еще сам иронизирует по поводу своих шуток. Выглядит местами странно, и судя по некоторым отзывам, кого-то это раздражает, но меня его шутки как-то не бесили.

Полное название книги «Hey! Listen! Путешествие по золотому веку видеоигр». Здесь подразумеваются 80-90-е годы прошлого века, и автор честно заявляет, что это его субъективный взгляд, хотя на самом деле книга охватывает более широкий диапазон времени. Эта книга даже не столько про игры, сколько про развитие игровой индустрии, начиная с пинбольных столов и первой игры в теннис на экране осциллографа и примерно до конца 1990-х годов, иногда заглядывая в начало 2000-х. Макнилу неплохо удалось показать переходы от повсеместного распространения одного типа дейвайса для игр к другому: от механических игровых автоматов к цифровым, затем появление приставок, затем появление PC и конкуренция этой платформы с приставками за игроков, особенно после выхода Windows 95 и DirectX. В книге упоминается огромное количество игр, но ни на одной из них автор долго не задерживается, в основном рассказывая про производителей «железа» — сначала пинболов, затем игровых автоматов, потом приставок.

Читать далее ‘Книга Стива Макнила про старые компьютерные игры «Hey! Listen!»’ »

Про книгу Энтони Шоу «Внутри CPython»

После того, как более-менее освоишь какой-либо инструмент, которым постоянно пользуешься, полезно заглянуть в его «внутренности», чтобы его работа не воспринималась как магия, которая каким-то неведомым образом что-то делает. Поэтому, когда вышла книга Энтони Шоу «Внутри CPython», я ее сразу заказал. На днях я ее дочитал и расскажу о ней в этом посте.

Сразу определимся с терминологией, чтобы было ясно, о чем книга. CPython (не путайте с Cython) — это эталонная реализация Python, которая написана на языке C. Собственно, это и есть тот самый интерпретатор Python, которым пользуются большинство питонистов. Как вы, наверное, знаете, есть и другие интерпретаторы Python, написанные на других языках. Например, PyPy (интерпретатор, написанный на Python), IronPython (реализация Python под платформу .NET), Jython (реализация на Java). В данной же книге речь идет о всем знакомом интерпретаторе, а не о каком-то экзотическом (да простят меня пользователи перечисленных выше реализаций).

Сразу скажу, что книга оставила у меня неоднозначное впечатление. Наверное, я ожидал от нее чуть более высокоуровневого описания работы Python, надеялся, что больше будет написано про байт-код и его ассемблерные команды. В реальности книга представляет собой обзорную экскурсию по исходникам интерпретатора Python. На самом деле это тоже любопытно, но эти знания более удалены от практики применения Python. Эту книгу можно посоветовать тем, кто хочет начать участвовать в разработке CPython. К сожалению, она уже начала устаревать. В ней речь идет о Python 3.9, и когда я ее начал читать, то решил, что я буду смотреть в исходники Python 3.11, но там уже некоторых файлов не стало, а какие-то были переименованы. Особенно это касается частей кода, связанных с парсером. О некоторых подобных изменениях автор предупреждает, говоря о том, что парсер был переписан, но в Python 3.9 можно было найти обе версии, а в 3.11 осталась только новая. С другой стороны, это был тоже любопытный квест, искать куски кода, если указанного файла нет.

Читать далее ‘Про книгу Энтони Шоу «Внутри CPython»’ »

Книга Рэя Монка «Роберт Оппенгеймер. Жизнь в центре»

В конце прошлого года, если вы помните, я писал о достаточно объемной книге Ричарда Роудса «Создание атомной бомбы». После ее окончания я решил продолжить чтение на эту тему, к тому же некоторое время назад на одной из московских книжных ярмарок я купил еще одну большую книгу с биографией Дж. Роберте Оппенгеймера — руководителя Менхэттенского проекта, в рамках которого были созданы первые в мире атомные бомбы. Это книга Рэя Монка «Роберт Оппенгеймер. Жизнь в центре» («Robert Oppenheimer. A Life Inside the Center»), про которую и расскажу в этом посте.

При всей своей замечательности книги Роудса, в «Создании атомной бомбы» непосредственно про Оппенгеймера было написано не особо подробно, сделав упор на других ученых. Именно поэтому книга Монка отлично ее дополняет. Удивительно, что несмотря на монументальность обеих книг, во время чтения «Оппенгеймера» не было ощущения, что читаешь что-то повторно, настолько по-разному сделаны акценты в этих книгах, причем Монк иногда ссылается на книгу Роудса, написанную на 26 лет раньше (Роудс свою книгу написал в 1986 году, а оригинал книги Монка вышел в 2012 г).

Читать далее ‘Книга Рэя Монка «Роберт Оппенгеймер. Жизнь в центре»’ »