Рукопись моей первой книги о Java

Как всё начиналось

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

Для своих проектов у меня всегда был свой сайт. Сначала он был просто набором статических страниц, подготовленных в блокноте. Затем в какой-то момент я завёл полноценный блог на WordPress со своим доменом.

Наполнение блога росло. Я перенёс большую часть проектов со старых сайтов, продолжал писать статьи. В тот момент я переучивался на Java и Spring Framework. Мне казалось, что это будет более актуально, чем приложение на C#, в разработке которого я участвовал до этого в небольшой региональной фирме. Пока я учил Java, я читал кучу статей с различных источников интернете, в том числе даже из спецификации.

У меня плохая память. Мне приходится десятки раз перечитывать одно и то же, а затем снова возвращаться к тоже же самому спустя время. В какой-то момент я решил, что буду по крупицам собирать то, что считаю важным для себя, и компоновать у себя на блоге, чтобы в любой момент можно было вернуться, перечитать и вспомнить, а не искать по тысячам заброшенных страниц и сайтов, которые могут и вообще пропасть. Так был начат онлайн учебник по Java 8, который был полностью закончен в 2016 году.

Издательство

В августе прошлого года (2021) мне написали из издательства и предложили написать книгу о Java по мотивам статей с сайта. Сама идея мне сразу понравилась. Если честно, я ещё в детстве был тем ещё книжным червём. И, разумеется, много раз представлял себя на месте автора какой-нибудь книги. Однако я не имел вообще ни малейшего представления о том, какие этапы существуют в издании книги. И уж тем более не понимал, что придётся делать во всем этом процессе мне самому.

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

По тому, что мне рассказали, будут примерно следующие этапы:

Написание

Полноценная книга — это не статьи в блоге. Хотя большая часть контента как бы уже была готова, но она зачастую была не того формата и не в том стиле, в котором нужно. Многие темы приходилось переделывать под реалии книги, а также переписывать и дополнять, поскольку новые версии Java теперь выходят вообще раз в полгода, а значит, с момента восьмой версии произошло уже достаточно много серьезных изменений. Все эти записи, switch expressions, изменение формата хранения строк, изменение кодировки по умолчанию, текстовые блоки, сборщики мусора, удаление старых пакетов и добавление новых, модули — всё это нужно было аккуратно разнести по всей книге, поправив устаревшую информацию и добавив новую.

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

В целом у меня получалось примерно каждый месяц отправлять новый вариант книги с дополнительными главами. Я осознанно так делал, особенно с самой первой главой. Очень не хотелось под конец книги узнать, что всё написано совсем не так, как ожидалось. И это было не зря, потому что после первой версии сразу же получил пару дельных замечаний, а именно:

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

Про IDE совет действительно полезный. Большая часть статей в моём блоге была абстрактна и не привязана ни к какой IDE. Только код и только результат. Для книги было бы полезно рассказать хотя бы кратко про работу в какой-нибудь IDE. Я решил в качестве основной IDE взять IntelliJ IDEA, как самую популярную на текущий момент. Заодно вскользь упомянул Eclipse и NetBeans, просто чтобы показать, что существуют и другие.

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

А тем временем, основная моя работа тоже никуда не делась, так что писать книгу я мог далеко не каждый день, и уж тем более не полный день. Очень большая часть была написана в выходные и праздничные дни. Я, в принципе, был к этому готов. Знал на что шёл. Да и статьи на блог я тоже писал примерно в таком формате.

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

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

Я, если честно, такого не ожидал. Если добавить задания в конце каждой главы ещё не так сложно, то придумать какой-нибудь проект, а потом провести чего через всю книгу... Это выглядит довольно ресурсоёмко. Я итак уже писал книгу больше полугода. Пока я её писал, успело выйти две новые версии Java. Если сейчас затеять глобальную переделку, но насколько затянется весь процесс? И сколько версий Java успеет выйти к тому момент? Успею ли я вообще её когда-нибудь дописать?

К счастью, после переговоров мы договорились просто о добавлении заданий к каждой главе и к одной отдельной главе в конце книги с небольшим проектом, использующим Spring Boot, Docker, Kubernetes и всё остальное.

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

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

Также глава про модули из Java 9 содержала пример калькулятора, который автоматически подгружал плагины через ServiceLoader.

После добавления раздела заданий к каждой главе и раздела с проектом на Spring Boot были ещё небольшие правки, но в целом, было видно, что рукопись книги уже готова.

Редактура

Двадцатого мая рукопись моей первой книги наконец-то перешла на следующий этап — её приняли на редактуру. Не знаю, на сколько затянется этот этап, но по завершении постараюсь написать следующую статью, с описанием процесса.

@urvanov
23.05.2022 22:07 UTC
Первоисточник

Комментарии

@saipr
23.05.2022 18:04 UTC
+5
В августе прошлого года (2021) мне написали из издательства и предложили написать книгу о Java по мотивам статей с сайта. Сама идея мне сразу понравилась. Если честно, я ещё в детстве был тем ещё книжным червём.

Как это перекликается с тем, что случилось со мной 40 (сорок) лет назад:


После работы с французской диссертацией и реальным программированием по комплексированию различных модулей в среде ОС ЕС Соколов А.П. предложил мне написать учебное пособие. Я, конечно, согласился. Эта была хорошая школа работы с редакционно-издательским отделом. И когда спустя несколько лет я буду издавать книгу в издательстве «Финансы и статистика», мне это очень поможет. Так на свет в 1981 году появится моя первая книга, подготовленная вместе с Володей Андрейченко, под названием «Межмодульные связи в ОС ЕС»:
image

И вот я читаю как на свет появляется книга автора статьи:


после первой версии сразу же получил пару дельных замечаний, а именно:
нужно добавлять картинки;
желательно описывать работу в какой-нибудь IDЕ;
нужны компилируемые примеры, которые бы можно было скачать с сайта и запустить;
ещё пара замечаний по стилю текста.
Картинок, действительно, не было. Причем их не было совсем. Художник из меня не очень, рисовать толком не умею. В большинстве случаев, в конечный вариант книги вставлял снимки экрана с окнами IntelliJ IDEA, чтобы наглядно показать, куда кликать для достижения результата из главы. Для пары глав нарисовал очень красивые диаграммы классов с помощью ArgoUML.

Как сейчас всё стало замечательно: Интернет, IDE, графические редакторы. А тогда, в далеком 1981 году, АЦПУ для распечатки кодов программ, печатающая машинка для печати текста книги, ватман и карандаш. Помню как вчера. Но мы знали, что такие времена как сегодня наступят и "приближали этот день как могли".


Автору пожелаю успешного выхода книги в свет.

@AWE64
23.05.2022 21:10 UTC
+3

Может подскажете, у нас же есть какой-то закон, определяющий, что вся печатная продукция должна быть на литературном русском языке?
Правильно ли я понимаю, что все эти 'представления' вместо вью, 'операторы ветвления' вместо свитчей, 'электронно-вычислительные машины' вместо компьютеров и прочий буллшит появляются именно из-за этого? Или это просто разновидность той же необъяснимой тяги в научной литературе писать 'автор' вместо 'я'?

@Maccimo
23.05.2022 22:12 UTC
0
Bullshit это как раз эти самые «вью», «свитчи» и прочие убогие кальки, родившиеся из-за дефицита словарного запаса в организме.
23.05.2022 22:55 UTC
+2

Какие ваши доказательства?

24.05.2022 03:25 UTC
0

А ваши?

24.05.2022 13:46 UTC
+1

А ваши? (прикольно, да?)

@dyadyaSerezha
24.05.2022 02:54 UTC
+2

Ну так и скока денег за все эти усилия?

@urvanov
24.05.2022 13:47 UTC
0

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

@questor
24.05.2022 18:51 UTC
0

В районе 30 тысяч рублей - на хабре несколько статей было на эту тему, скажем вот https://habr.com/en/company/ruvds/blog/527696/?

@shovdmi
24.05.2022 05:43 UTC
+2

Расскажите, кому будут принадлежать авторские права на текст книги? Были ли в связи с этим какие-нибудь требования от издательства на дублирующийся текст в блоге и книге?

@urvanov
24.05.2022 13:48 UTC
0

Авторские права останутся у меня. У издательства будут права на продажу. Про дублирующийся текст мне сказали, что нормально. Но там полноценной копии точно нет. Я много чего дополнил и переписал.

@NeverIn
24.05.2022 18:02 UTC
0
А где ссылка на тот самый блог?
@urvanov
25.05.2022 05:58 UTC
0

У меня в профиле есть ссылка.

25.05.2022 07:18 UTC
0

я лично не вижу никаких ссылок в вашем профиле

25.05.2022 07:40 UTC
0

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