Как я писал книгу про Python
Полтора года назад я начал писать книгу про Python. Когда-то я писал посты о том, как продвигаются дела с этой книгой. Потом долгое время в блоге я эту тему как-то игнорировал, хотя в Телеграме про нее писал периодически и процесс написания продолжался. И вот, наконец, книга под названием «Python для инженерных задач» вышла. Сразу оставлю ссылку на сайт издательства, где можно прочитать оглавление и заказать ее. Книга получилась большая, больше, чем предполагалась изначально. На сайте написано, что она состоит из 416 страниц, но в реальности она содержит около 670 страниц.
Представитель издательства уже написал пост об этой книга на Хабре, а здесь я напишу о работе над этой книгой со своей стороны.
Все началось зимой 2024 года, когда мне написал Олег Сивченко, руководитель проектов в издательстве БХВ. Мы немного пообсуждали уже вышедшие книги, и Олег предложил написать книгу про Python. Надо сказать, что этот разговор случился в очень удачное время, когда я готовился к двухсеместровому курсу для студентов, в рамках которого я сначала рассказываю основы Python, а потом перехожу к алгоритмам моделирования электродинамических задач, а в перспективе у меня маячил еще один двухсеместровый курс полностью про Python. В момент общения с Олегом я как раз планировал темы для лекций, готовил исходники и презентации. И тогда я подумал, почему бы не согласиться на такое интересное предложение и действительно не оформить материал в виде книги?
Тогда можно было не торопиться, и через несколько месяцев у меня устаканился план лекций, и на его основе я написал первую версию оглавления книги. Мы с Олегом немного подкорректировали первоначальное оглавление и через несколько итераций его утвердили. Я грубо (очень оптимистично) прикинул, сколько страниц займет такой текст. По моим первоначальных подсчетам должно было быть около 500 страниц.
Руководство издательства согласилось, что такая книга их интересует, окончательно утвердили оглавление, и в конце мая 2024 года я подписал договор с издательством, по которому обещал через год отправить им текст книги. Работа началась.
Планируемые 500 страниц будущей книги меня не пугали. Изначально я думал, что напишу их до конца 2024 года — за 7 месяцев, а потом возьмусь за окончательное редактирование получившегося текста. К счастью, оглавление было было уже достаточно хорошо проработано, был материал в виде исходников и презентаций, подготовленный для студентов (почти все исходники для книги я в итоге переделал, а из презентации в текст попало только несколько картинок), оставалось только взять и заполнить текст между намеченными заголовками. На самом деле каждая глава у меня была оформлена в отдельном файле в формате docx, а набирал текст я в LibreOffice Writer.
Когда я только начал писать текст книги, то понял, что мне нужно какое-то средство, чтобы видеть прогресс и оценивать, насколько я отстаю от плана (кажется, еще ни один живой человек в мире не опережал намеченный план). Для этого я завел файл с электронными таблицами в LibreOffice Calc. Этот файл содержал три страницы. На первой из них была таблица с подсчетом количества страниц в каждой главе:
Вторая страница такая же, только вместо страниц я там писал количество символов — бесполезная информация, я с ней ничего полезного не сделал.
А на третьей странице подсчитывалось суммарное количество страниц, символов (как я уже сказал, это оказалось лишнее) и еще я там писал количество завершенных глав — дробные части для недописанных глав я считал, исходя из количества написанных разделов внутри глав по сравнению с запланированными.
И в итоге на основе суммарного количества страниц строились два графика: количество страниц и количество написанных глав в зависимости от даты:
Это оказалась очень полезная статистика, которую я раз в месяц выкладывал у себя в телеграме (и здесь было несколько постов на эту тему), отчитываясь перед подписчиками о проделанной работе. Это хорошо стимулировало продолжать работать.
Текст я писал в достаточно спокойном ритме. Из графика видно, что прогресс был практически линейным. Сначала процесс шел медленно, но это во многом было связано с тем, что первые главы, которые по сути были введением, писать тяжелее всего, потом, когда дело дошло непосредственно до описания языка, стало проще. Плюс к этому сначала еще пробовал разные стили написания (более серьезный или более расслабленный), договаривался сам с собой по поводу используемой терминологии (составил себе список используемых слов). Потом где-то на месяц случился заметный подъем (это у меня начался отпуск), а затем скорость прибавления страниц оставалась примерно на одном уровне.
Текст я писал в основном по вечерам после работы где-то часа два, каких-то ночных авралов у меня не было. Если в выходные я оставался дома, то старался в эти дни написать побольше. Получалось, что на главу уходила неделя или две в зависимости от ее объема. При этом, когда я писал главу, то я ее почти никогда не перечитывал, оставив это дело на второй этап работы, который начался после того, как все главы были написаны. Так делал специально, чтобы потом посмотреть на написанный текст свежим взглядом и с учетом того, что будет написано далее и где-то расставить ссылки на будущие главы.
В процессе работы оказалось, что практически ни одна из глав в запланированный объем не умещается, все они были на 5-10 страниц длиннее. Я уже морально готовился к тому, что придется что-то сокращать (в первую очередь я был пустить под нож главу про тестирование). К счастью, оказалось, что тот объем, который получается, тоже приемлем, главное все-таки не превысить 700 страниц. В конце концов ничего сокращать не пришлось. Но из-за этого до конца года я не успевал дописать все главы, как планировал изначально. В итоге последнюю главу я закончил писать к концу марта 2025 года. Времени на вычитку и редактирование оставалось все меньше, и это меня начало напрягать.
Начиная с этого момента работа переключилась в новый режим. В процессе предварительной правки каждая глава проходила хотя бы две итерации. Сначала я перечитывал главу и вносил крупные исправления, потом перечитывал ее заново и правок было уже поменьше. Если было подозрение, что нужна еще одна итерация, то перечитывал еще раз. При этом окончательно оформлял текст согласно требованиям издательства.
В этом режиме работы перестала работать статистика, ведь теперь количество страниц перестало быть показателем, а следить за прогрессом как-то надо. Тогда я себе завел что-то вроде лог-файла, только на бумаге. В те дни, когда вносил какие-то правки, писал, до какой страницы какой главы дошел, сколько глав осталось перечитать и исправить.
К этому моменту несколько читателей моего Телеграм-канала согласились выступить в качестве бета-тестеров книги. После правки каждой главы я отправлял им главу. Они присылали свои замечания, и с некоторым временным лагом я их вносил в текст. Это было очень полезно. Помимо стилистических и орфографических ошибок, они вылавливали ошибки в коде и неточности формулировок. Благодаря им в тексте более аккуратно стали использоваться такие термины как «оператор», «выражение», «инструкция» и т.д., не сводя все к слову «оператор». Некоторые места я дополнял новым текстом, но старался не увеличивать общий объем, помня о том, что текст не должен распухать дальше. На самом деле, в процессе редактирования я надеялся сократить текст, но получалось наоборот — каждая глава увеличивалась где-то на страницу-две. Я себя успокаивал тем, что потом в издательстве специально обученные люди включат перенос слов (я писал без них), аккуратно расставят рисунки в процессе верстки, и объем немножко сожмется.
В конце июня этого (2025) года я отправил текст в издательство. Теперь можно было немножко перевести дух. У меня было полтора месяца отдыха, пока для проекта в издательстве не назначат редактора, и он не начнет свою работу. После этого началась работа с редактором. Надо сказать, что задачей редактора было выправить стиль текста, не исказив при этом суть. Редактор присылал файл с правками (их было дикое количество), я еще раз перечитывал главы (в который раз! Сколько можно!?). С правками я в основном соглашался, что-то исправлял еще раз и отправлял обратно редактору. Интересно, что в процессе редактирования до отправки в издательство я старался сделать текст более сухим, убирая фразы вроде «таким образом», «а также » и т.п., а редактор наоборот делал текст более живым. В таком режиме мы с ним работали месяца полтора.
После этого опять можно было какое-то время отдохнуть — текст отдали на верстку. В это время мы обсудили и утвердили обложку. Где-то через месяц (в конце октября ) мне прислали верстку книги. Надо было ее еще раз перечитать (опять!) и выявить проблемные места. Поскольку в этот раз в основном надо было смотреть на оформление, а не на суть, то 670 страниц книги я осилил где-то за неделю. Отметил проблемные моменты и отослал обратно в издательство.
После этого я уже книгу не видел, ее начали готовить к отправке в типографию. В конце ноября книжка появилась на сайте издательства, бумажная версия пришла ближе к началу декабря. На момент написания этих строк в бумаге я ее еще не видел, жду, когда вот-вот должны прийти авторские экземпляры. После этого я отправлю несколько экземпляров книги тем, кому обещал отправить подписанные версии — тем, кто помогал и вычитывал текст.
На этом можно поставить себе галочку в итогах года, что удалось завершить работу над книгой. И, конечно, всем огромное спасибо: и тем, кто читал бета-версию, и работникам издательства (сколько людей над ней работало!) Это был интересный опыт. Надеюсь, что эта книга хоть кому-нибудь пригодится :).
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.










Андрей:
А когда будет доступна (или будет ли вообще) к покупке электронная версия книги?
Jenyay:
@Андрей
В издательстве говорят, что продажа электронной версии книги начнется только весной.