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

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

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

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

Про что же в целом книга? Лучше пройдёмся по списку глав и кратко опишем их.

Глава 1. Введение

Общая глава, рассказывающая о Java и о том, как написать на ней первую программу.

Глава 2. Переменные

Описание восьми примитивных типов данных, способов объявление переменных, типов переменных, граничных значений, соглашения об именовании и т. д.

Глава 3. Операции

Приводится описание всех операций в Java. Приводится таблица приоритетов операций, позволяющая однозначно определить порядок их выполнения.

Глава 4. Выражения, инструкции и блоки

Описываются операторы ветвления, циклы, метки и т. д.

Глава 5. Классы и объекты

Рассказывается о создании классов, описании их состояний и методов.

Глава 6. Аннотации

Описывается добавление метаинформации к коду, а также стандартные аннотации, используемые компилятором.

Глава 7. Вложенные классы и лямбда-выражения

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

Глава 8. Интерфейсы

Рассказывается о возможностях интерфейсов в Java и их использовании.

Глава 9. Наследование

Наследование в Java, общий предок Object и его методы, использование методов родительского класса и их переопределение.

Глава 10. Пакеты

Группировка классов и интерфейсов в отдельные пакеты, а также их использование их других пакетов.

Глава 11. Перечисления

Описываются перечисления, их общий предок Enum, ограничения перечислений и их особенности в Java.

Глава 12. Записи

Описывается использование записей (records), появившихся в Java 16.

Глава 13. Числа

Специальные классы для работы с числами. Почему нужно использовать BigDecimal для денежных значений.

Глава 14. Строки

Особенности внутреннего представления и работы со строками в Java.

Глава 15. Автоупаковка и распаковка

Для чего появилась автоупаковка и распаковка, как она работает и когда применяется.

Глава 16. Optional

Упрощение обработки отсутствующего значения. Когда можно использовать Optional.

Глава 17. Модули

Использование модулей, появившихся в Java 9.

Глава 18. Обобщения

Как появились обобщения в Java. Какие у них ограничения и почему. Бриллиантовая операция. Стирание типа.

Глава 19. Исключения

Обработка исключительных ситуаций и создание своих типов ошибок. Иерархия исключений.

Глава 20. Потоки ввода/вывода

Иерархия потоков ввода/вывода InputStream, OutputStream, особенности конкретных реализаций.

Глава 21. Сериализация

Сериализация в Java.

Глава 22. Файлы (NIO.2)

Работа с файлами через java.nio.

Глава 23. Многопоточность

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

Глава 24. Настройки и окружение

Работа с переменными окружения, класс System, чтение настроек и аргументов командной строки.

Глава 25. Регулярные выражения

Регулярные выражения — это довольно обширная и сложная тема. В этой главе они рассматриваются на уровне, достаточном для работы.

Глава 26. Коллекции

Описывается работа с Java Collections Framework как со старыми классами, так и с новыми. Рассказывается об основных интерфейсах и их реализациях. Уделяется внимание стандартным реализациями алгоритмов а также Stream API.

Глава 27. Дата и время

Описываются три основных способа работы с датой и временем, появившиеся в Java в результате многолетнего развития.

Глава 28. Форматирование и парсинг

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

Глава 29. Работа с консолью

Описываются два способа работы с консолью: через экземпляр Console и через System.

Глава 30. Локализация

Создание многоязыкового приложения и адаптация под разные региональные стандарты.

Глава 31. Пример сервиса со Spring

Пример создания простого REST-сервиса на Spring Boot, его запуск в Docker и Kubernetes.

Глава 32. Заключение

Просто философская глава, подводящая общий итог всей книги.

Буду ли я писать ещё книги? Разумеется, да. По плану уже выпущенную книгу по Java предполагается постоянно актуализировать и выпускать более актуальные издания в соответствии с изменениями в мире ИТ. А также по плану в 2023 я собираюсь начать писать ещё одну книгу, но конкретную тематику пока не определили. Возможно, стоит написать продолжение в котором более подробно описать написание серверной части современных приложений на Spring? Или что-нибудь похожее на это. А может, стоит немного отвлечься, и вторую книгу написать, например, про TypeScript? Или про особенности переделки старого кода на J2EE в современное приложение на Spring Boot? Пока ещё не очень понятно, что будет лучше.

Сколько я получил с книги? Пока ничего, но какая-то сумма определённо будет. Как у начинающего писателя она, разумеется, будет не особо большой, но определённо что-то будет. Я, если честно, больше рассматриваю эту книгу как хобби или способ самореализации, чем как реальный способ заработка. Хотя довольно ресурсоемкий процесс по времени, конечно, для хобби.

Вышла книга в самом конце декабря, поэтому, видимо, год выхода сделали 2023.

ISBN

978-5-9775-1689-1

Количество страниц

368

Формат издания

165 x 215 мм

Печать

Черно-белая

Год

2023

Купить бумажный и электронный варианты можно на сайте издательства.

Комментарии (14)


  1. Conung_ViC
    09.01.2023 10:58
    +5

    Можно пару вопросов...
    1. В ИТ Среде распространено мнение, что к моменту издания книги по технологии, данные в книге уже устаревают. А если речь о книге на русском (авторская или перевод), то тем более. Как вы с этим справились?


    2. По джаве есть миллион и еще одна книга от Эккеля до всяких "Джава для чайников". Расписано почти всё. Что у вас в книге нового?

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

    Спасибо.


    1. urvanov Автор
      09.01.2023 13:56

      1. На самом деле, начинал я писать про Java 17. Пока писал успела выйти 18-ая версия, я текст под эту версию подогнал, там не так много изменений было. Пока книга проходила остальные этапы, успела выйти Java 19, но тут уже ничего не поделаешь, при следующем издании разве что актуализировать. Раньше, когда новые версии не так часто выходили, наверное, проще было.

      2. У меня может быть стиль изложения и подача информации немного другая. А так да, язык довольно популярный, книг по нему очень много.

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


  1. rocket
    09.01.2023 11:09

    Как-то странно для сайта издательства видеть, что электронная книга не в наличии:


    1. Holmogorov
      09.01.2023 11:51

      Ничего странного: электронная версия появляется в продаже через 9-12 месяцев после выхода из типографии "бумаги". Так что через годик или чуть раньше обязательно выложим.


  1. artyomsoft
    09.01.2023 11:09
    +2

    То, что Вы потратили время и систематизировали свои знания в виде книги - это хорошо, только одному мне показалось, что статья описывает, что Вы сделали, а не как?


    1. aleksandy
      09.01.2023 12:39

      Угу, тоже такое впечатление.

      Глава 15. Автоупаковка и распаковка

      Сколько занимает эта глава? Что вообще в этом такого, что потребовалась целая глава в книге? Там же информации на страницу в лучшем случае. Ещё страница на пример кода.

      Также довольно странно, что основной контекст использования - это как раз таки коллекции, а они отстоят на 11 (!!!) глав.


    1. urvanov Автор
      09.01.2023 13:49
      +1

      Да, вы правы, название, похоже не очень удачно подобрал. Наверное, стоило назвать "Моя первая книга по Java" или как-нибудь похоже на это.


  1. stackjava
    09.01.2023 11:18
    +9

    Здорово.

    Написать свою книгу - это большая гордость и достижение.

    Поздравляю Вас с таким значемым событием.


  1. un1t
    09.01.2023 11:23

    Сколько в итоге заняло времени от начала работы с издательством до выпуска книги (или до финального варианта если большая разница между этими датами)?


    1. urvanov Автор
      09.01.2023 14:00

      Больше года суммарно вышло. Девять месяцев на написание и ещё почти полгода на остальные этапы.


  1. Avante_sb
    09.01.2023 11:48
    +1

    И при оформлении заказа только 9 городов в выпадающем списке.


    1. Holmogorov
      09.01.2023 11:56

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


      1. Avante_sb
        09.01.2023 13:10
        +4

        Точнее вот так (ответ от издательства):

        При оформлении заказа необходимо:- в поле Страна ввести Россия и выбрать из выпадающего списка- в поле "Населенный пункт" ввести название города (поселка), если это несколько слов - то ввести первое слово.Дождаться появления выпадающего списка (несколько секунд) и выбрать нужный населенный пункт.- выбрать тип доставки- если доставка через ПВЗ, то по зеленой кнопке выбрать ПВЗ на карте

        и эти несколько секунд в моем случае были равны - 38. Я просто не был готов к такому )


  1. Max2392
    10.01.2023 19:43

    Огромный труд, спасибо за это