Рукопись моей первой книги о Java / Хабр
Как всё начиналось
Как и всем, работающим в ИТ, мне постоянно приходится изучать новые технологии и подстраиваться под изменившийся мир. Зачастую в процессе изучения нужно на чём-нибудь тренироваться: писать свои пет-проекты, записывать основные моменты, которые потом хотелось бы легко вспомнить в нужный момент.
Для своих проектов у меня всегда был свой сайт. Сначала он был просто набором статических страниц, подготовленных в блокноте. Затем в какой-то момент я завёл полноценный блог на WordPress со своим доменом.
Наполнение блога росло. Я перенёс большую часть проектов со старых сайтов, продолжал писать статьи. В тот момент я переучивался на Java и Spring Framework. Мне казалось, что это будет более актуально, чем приложение на C#, в разработке которого я участвовал до этого в небольшой региональной фирме. Пока я учил Java, я читал кучу статей с различных источников интернете, в том числе даже из спецификации.
У меня плохая память. Мне приходится десятки раз перечитывать одно и то же, а затем снова возвращаться к тоже же самому спустя время. В какой-то момент я решил, что буду по крупицам собирать то, что считаю важным для себя, и компоновать у себя на блоге, чтобы в любой момент можно было вернуться, перечитать и вспомнить, а не искать по тысячам заброшенных страниц и сайтов, которые могут и вообще пропасть. Так был начат онлайн учебник по Java 8, который был полностью закончен в 2016 году.
Издательство
В августе прошлого года (2021) мне написали из издательства и предложили написать книгу о Java по мотивам статей с сайта. Сама идея мне сразу понравилась. Если честно, я ещё в детстве был тем ещё книжным червём. И, разумеется, много раз представлял себя на месте автора какой-нибудь книги. Однако я не имел вообще ни малейшего представления о том, какие этапы существуют в издании книги. И уж тем более не понимал, что придётся делать во всем этом процессе мне самому.
После разговора с сотрудником издательства и обсуждения всех условий и этапов мне выдали список требований к оформлению рукописи и шаблон от Microsoft Word с макросами и стилями, которых нужно придерживаться, и начался сам кропотливый процесс написания. Я не особо умею в переговоры, да и неясно, о чём вообще дополнительно договариваться, так как до этого книг не писал ни разу, поэтому я просто согласился на их условия.
По тому, что мне рассказали, будут примерно следующие этапы:
заключение договора со сроками и промежуточными этапами,
написание рукописи книги (разумеется, в электронном варианте),
редактура,
остальная предпечатная подготовка (обложка там и всё остальное),
печать,
продажа в магазинах.
Написание
Полноценная книга — это не статьи в блоге. Хотя большая часть контента как бы уже была готова, но она зачастую была не того формата и не в том стиле, в котором нужно. Многие темы приходилось переделывать под реалии книги, а также переписывать и дополнять, поскольку новые версии Java теперь выходят вообще раз в полгода, а значит, с момента восьмой версии произошло уже достаточно много серьезных изменений. Все эти записи, switch expressions, изменение формата хранения строк, изменение кодировки по умолчанию, текстовые блоки, сборщики мусора, удаление старых пакетов и добавление новых, модули — всё это нужно было аккуратно разнести по всей книге, поправив устаревшую информацию и добавив новую.
По нашей договорённости с издателем основной идеей книги было то, что я буду описывать Java с позиции изменения во времени: как было, и как стало. Поэтому все статьи пришлось несколько раз перечитывать и актуализировать, добавляя новые возможности, которых ещё не было на тот момент, когда я их писал.
В целом у меня получалось примерно каждый месяц отправлять новый вариант книги с дополнительными главами. Я осознанно так делал, особенно с самой первой главой. Очень не хотелось под конец книги узнать, что всё написано совсем не так, как ожидалось. И это было не зря, потому что после первой версии сразу же получил пару дельных замечаний, а именно:
нужно добавлять картинки;
желательно описывать работу в какой-нибудь IDЕ;
нужны компилируемые примеры, которые бы можно было скачать с сайта и запустить;
ещё пара замечаний по стилю текста.
Картинок, действительно, не было. Причем их не было совсем. Художник из меня не очень, рисовать толком не умею. В большинстве случаев, в конечный вариант книги вставлял снимки экрана с окнами IntelliJ IDEA, чтобы наглядно показать, куда кликать для достижения результата из главы. Для пары глав нарисовал очень красивые диаграммы классов с помощью ArgoUML.
Про IDE совет действительно полезный. Большая часть статей в моём блоге была абстрактна и не привязана ни к какой IDE. Только код и только результат. Для книги было бы полезно рассказать хотя бы кратко про работу в какой-нибудь IDE. Я решил в качестве основной IDE взять IntelliJ IDEA, как самую популярную на текущий момент. Заодно вскользь упомянул Eclipse и NetBeans, просто чтобы показать, что существуют и другие.
Примеров особых у меня не было. Это факт. Учебник из блога и набор остальных статей чаще всего был просто с каким-нибудь куском кода, который ни скачать, ни скомпилировать было нельзя, а уж тем более запустить. Пришлось примеры придумывать почти с нуля и собирать их в отдельный проект.
А тем временем, основная моя работа тоже никуда не делась, так что писать книгу я мог далеко не каждый день, и уж тем более не полный день. Очень большая часть была написана в выходные и праздничные дни. Я, в принципе, был к этому готов. Знал на что шёл. Да и статьи на блог я тоже писал примерно в таком формате.
Как я уже говорил, я примерно раз в месяц отсылал новый вариант книги с добавленными главами. В дальнейшем особо серьезных замечаний не было, в основном только какие-то мелкие.
Но перед самым финалом, когда всё было уже почти готово, сотрудник, с которым я контактировал, показал текущий вариант руководству. Возможно, он и предыдущие варианты им показывал, не знаю. Мне было сообщено, что в книгу нужно добавить задания, и сейчас она больше похожа на учебник, хорошо бы какой-нибудь проект провести через всю книгу.
Я, если честно, такого не ожидал. Если добавить задания в конце каждой главы ещё не так сложно, то придумать какой-нибудь проект, а потом провести чего через всю книгу… Это выглядит довольно ресурсоёмко. Я итак уже писал книгу больше полугода. Пока я её писал, успело выйти две новые версии Java. Если сейчас затеять глобальную переделку, но насколько затянется весь процесс? И сколько версий Java успеет выйти к тому момент? Успею ли я вообще её когда-нибудь дописать?
К счастью, после переговоров мы договорились просто о добавлении заданий к каждой главе и к одной отдельной главе в конце книги с небольшим проектом, использующим Spring Boot, Docker, Kubernetes и всё остальное.
А в самой книге уже в некоторых главах было некое подобие небольших, но вполне законченных проектов.
Например, глава про работу с файлами включала в себя небольшой двухпанельный файловый менеджер наподобие Far Manager. Он использовал практически все возможности работы с файлами: копирование, перемещение, простановку атрибутов для разных файловых систем, прослушивание изменений каталога и автоматическое обновление списка файлов и т. д.
Также глава про модули из Java 9 содержала пример калькулятора, который автоматически подгружал плагины через ServiceLoader.
После добавления раздела заданий к каждой главе и раздела с проектом на Spring Boot были ещё небольшие правки, но в целом, было видно, что рукопись книги уже готова.
Редактура
Двадцатого мая рукопись моей первой книги наконец-то перешла на следующий этап — её приняли на редактуру. Не знаю, на сколько затянется этот этап, но по завершении постараюсь написать следующую статью, с описанием процесса.
Страница 3 с использованием 21
Top Tutorials
|
|
Нет результатов
Добро пожаловать обратно
Вы ознакомились с этими уроками в прошлый раз. Пожалуйста, опишите те, которые вы нашли полезными.
Вы также можете быть заинтересованы в:
Frequently Asked Questions(FAQs)
What is Java Spring Framework?
Java Spring Framework is a Java platform which offers complete infrastructural support to develop applications in Java. Any application running Java can access the core features of the framework. The spring framework enables programmers to design applications from POJOs (Plain Old Java Objects). The Spring framework modules consist of Data access/Integration blocks which include OXM, JMS, Transactions; the Web block consists of Servlet, Portlet, and Struts. Most importantly, the core container consists of Beans, Core, Context and Expression Language blocks.
What are the Prerequisites for learning Java Spring Framework?
There are many Java Spring Framework tutorials available online that can guide you through the basics of java spring framework programming. However, before you begin to learn java spring framework, make sure you take note of the prerequisites for learning the framework. To learn Java Spring framework, the knowledge of core and advanced Java is a must. Once you become proficient in the core and advanced Java, you can invest some time in learning about database through MySQL, HTML, CSS, and JavaScript. Even though they are not necessary, they can help you get better at java spring framework programming.
Why should you learn Java Spring Framework?
Java Spring framework has become quite popular in the past few years due to its core features. The core concepts of java spring framework programming include Inversion of Control (IoC) container, which means the objects do not create or look for dependent objects but give their own dependencies. Another core feature of the programming is that it removes the dependency from the code of the application so that it can be easy to manage and test the application. Furthermore, it uses aspect-oriented programming, which breaks the program logic into multiple parts, which are known as concerns, which results in a cohesive development.
How can Hackr.io help you find the best Java Spring Tutorials?
Hackr.io can guide you through the best Java Spring Framework tutorials to help you learn java spring framework programming and become an expert. The platform offers tutorials and courses that are submitted and voted by the community members only, which implies that the top courses you see are used by other budding and expert programmers to learn Java Spring framework. The website offers Spring tutorials of various genre, i.e., free, paid, books, video, etc. Follow Java Spring framework tutorials and courses on Hackr.io to stay up to date on the latest news, insights, tips and tricks.
Изучение Java? Ознакомьтесь с этими 11 рекомендуемыми онлайн-курсами на 2023 год [бесплатно + платно]
Java — это, по сути, язык программирования высокого уровня, предназначенный для того, чтобы программисты могли писать один раз и запускать где угодно (WORA). Будучи языком программирования высокого уровня, он имеет сильную абстракцию от деталей компьютерной системы, и его гораздо легче понять и интуитивно написать.
В то же время это объектно-ориентированный язык программирования, что упрощает изменение полей данных объекта. Эти объекты могут содержать данные и код в виде полей. В результате скомпилированный код Java может работать на всех платформах, поддерживающих Java, без какой-либо перекомпиляции. Он был разработан в результате сотрудничества Джеймса Гослинга и Sun Microsystems в 19 году.95.
Первоначально он назывался «Дуб», вдохновленный дубом возле офиса Джеймса; Позже он был изменен на «Зеленый», а затем на «Java Coffee» (из Индонезии) и, наконец, на «Java» в 1995 году.
При разработке языка преследовалось пять основных целей. К ним относятся:
- Простой, объектно-ориентированный и знакомый
- Прочный и безопасный
- Нейтральный и портативный
- Высокая производительность
- Резьбовые и динамические
Зачем изучать Java в 2023 году?
- Java имеет значительные преимущества перед другими языками и средами, что делает его подходящим для решения практически любой задачи программирования.
- Поскольку этот навык прост в освоении и использовании, в 2023 году он станет важным навыком для добавления в портфолио.
- Java — это платформо-независимый язык, поэтому его можно переносить с одной компьютерной системы на другую.
- Java используется почти 9 миллионами разработчиков по всему миру, и на ее долю приходится около 7 миллиардов устройств.
- Разработчики Java востребованы и занимают высокооплачиваемую работу в отрасли. Средняя зарплата разработчика, использующего Java, может варьироваться от 90 034 47 169 до 106 610 долларов в год.
- Он также популярен среди разработчиков, поскольку доступен бесплатно по лицензии Oracle Binary Code License (BCL).
- Он очень универсален, поскольку используется в различных средах, таких как мобильные устройства, настольные компьютеры, Интернет и т. д.
Java использует интегрированные среды разработки (IDE), такие как Eclipse, NetBeans, IntelliJ IDEA и т. д. Они предоставляют различные возможности, такие как отладка, подсветка синтаксиса, компиляция кода, языковая поддержка, автоматический рефакторинг и т. д. Не имеет значения, учится ли человек в средней школе или учится в колледже. Кодить на Java легко. (Harkiran, 2022)
Примечания для начинающих разработчиков
- Знать, с чего начать изучение кода на языке Java, очень сложно.
- Интернет вещей наполнен самыми разнообразными курсами и книгами по Java, что вызывает много путаницы, связанной с выбором курсов.
- Подвергается постоянным изменениям с большим количеством релизов и версий, что сильно сбивает с толку, если курсы не обновляются регулярно.
- Очень важно выбрать хороший курс в начале кривой обучения, который поможет развить основы кодирования.
Ниже приведен список из 11 таких курсов, которые помогут любому изучать Java онлайн в 2023 году. это. Поэтому для создания этого списка использовались такие факторы, как введение языка, доверие, обновление курса и т. д.
1. Основы программирования на Java и программной инженерии Специализация – Университет Дьюка – Coursera
Курс представляет собой разработанные проекты, которые дают более практический и прикладной дискурс по Java. Обучение на практике является важной педагогической философией, которая постоянно используется в сфере образования. У Coursera есть формат курсов, в которых человек обучается по модели обратной пирамиды, в которой студенты обучаются с общей отправной точкой и в конечном итоге разветвляются на широкий спектр элементов в зависимости от предпочтений человека.
На курсах есть практические проекты, которые помогают формировать представления о языке и дают более практичный подход к языку. Курс состоит из 4 подкурсов, которые охватывают объектно-ориентированное программирование на Java, структуру данных и расширенную структуру данных, и в то же время охватывают освоение курса собеседования по программной инженерии.
Имеет рейтинг 4.6 и имеет набор из четырех инструкторов, что приводит к глубокому пониманию языка и рекомендуется для начинающих. При рекомендуемом темпе 4 часа в неделю этот курс может занять до 5 месяцев.
Полезно демонстрировать работу в виде портфолио, улучшения дерева навыков и резюме.
2. Полный учебный курс по Java-разработке — Learn the Part Inc. — Udemy
Этот курс является одним из лучших курсов по Java на Udemy с рейтингом 4,6. Этот курс начинается с самого базового уровня загрузки Java в вашу систему. После этого курс делится на два модуля: основы Java и концепции Java, такие как объектно-ориентированное программирование и веб-разработка. Кроме того, этот курс предлагает рабочие тетради и задачи для практики и обучения. Они состоят из простых задач, которые можно решить.
Курс состоит из 28 часов и используется рядом крупных компаний, таких как Nasdaq, Volkswagen, Box, NetApp и Eventbrite, для обучения своих сотрудников. Это полный курс для тех, кто хочет всего один курс, который научит их всему, что им нужно знать и изучать о Java. Курс ведут три инструктора.
3. Программирование на Java для начинающих — за 28 минут Официально — Udemy
Этот курс является одним из лучших коротких курсов по Java на Udemy с рейтингом 4,5. Здесь обучают более 200 Java-программам, включая головоломки и упражнения. Интересная часть курса заключается в том, что он также имеет бонус в виде разработки Build Rest API с использованием Spring, Spring Boot и JPA.
Курс развивает глубокое понимание предмета, и после прохождения этого курса становится комфортно читать и писать Java-программы. Этот курс хорошо структурирован и рассчитан на отметку времени в 28 минут, что делает его идеальным для людей, которые не хотят тратить на это много времени. Это делает его отличным курсом для начинающих и особенно для работающих профессионалов, которые хотят улучшить свое портфолио и подняться по профессиональной лестнице.
4. Учебник по Java для начинающих — Программирование с помощью Mosh — YouTube
Этот курс наполнен разнообразными заданиями и методами достижения мастерства в Java. Этот курс длится 2 часа 30 минут и позволяет глубоко погрузиться во весь процесс и размышления, связанные с наукой о программировании.
Это бесплатное видео, которое ведет зрителя от нулевого уровня к решению сложных головоломок и задач на Java. Сегменты внутри видео позволяют зрителям переходить к определенным частям (43 части) в зависимости от уровня их навыков, что является дополнительным бонусом к формату видео. Кроме того, видео учитывает способности людей к обучению и, следовательно, использует технику медленного объяснения.
Курс рассказывает не только об анатомии кода, но и о том, как код работает в компьютере и как формируется результат или цель, связанные с этим кодом. Таким образом, это отличный курс как для начинающих, так и для разработчиков среднего уровня.
5. Полный мастер-класс по программированию на Java на 2023 год — Karthikeya T — Karpado
Этот курс является всесторонним и актуальным для изучения программирования в 2023 году. Преподаватель имеет более чем 15-летний опыт работы на рынке и поэтому руководит зрителя через навигацию по карьере в этой области и особенно полезно для людей, которые не имеют ни малейшего представления, с чего начать.
Курс состоит из викторин, упражнений и заданий, которые делают его более интерактивным и закрепляют полученные знания. Кроме того, применение теории особенно полезно для того, чтобы сделать код более интуитивным без большого количества учебных пособий.
6. Полный курс Java – Amigoscode – YouTube
Этот курс является бесплатным курсом YouTube с отметкой времени 3 часа 35 минут. Курс был недавно обновлен и поэтому состоит из последних модификаций языка java. Курс использует IntelliJ IDEA для разработки кода и подробно рассказывает о разнообразных задачах, ошибках, проблемах и методах, связанных с Java.
Он даже имеет внутри себя различные бонусы, и это помогает зрителю лучше понять предмет. Он говорит о кодировании на очень человеческом уровне и связывает классы и объекты с множеством понятных повседневных объектов. Таким образом, этот курс очень полезен для всех, кто начинает заниматься кодированием и ничего не знает о кодах в целом.
В конце видео инструктор берет пример паспорта, используя сложный код для достижения желаемого результата.
7. Программирование на Java — Академия Neso — YouTube
Этот курс состоит из 129 видеороликов, рассказывающих о преимуществах Java и его анатомии. Он дает глубокое понимание языка и начинается с основных команд, таких как отображение чисел и сообщений в Java. В самом начале также говорится о программах и языках программирования, что дает четкое представление о том, во что ввязывается курс.
Как и другие курсы, он предлагает большое количество заданий и программ для практики на ходу и отработки методов, изучаемых в ходе курса. С логистической точки зрения курс хорошо структурирован и дает хорошее понимание того, какая часть рассказывает о том, что и чего ожидать от каждого видео. Обзор резюме хорошо организован и дает краткую информацию о каждой главе, что упрощает навигацию для начинающих. Такую организованную структуру в бесплатных видеокурсах трудно найти, и она очень хороша для начинающих.
8. Основы Java: язык Java — Джим Уилсон — Pluralsight
Этот курс идеально подходит для понимания концепции Java, классов, объектов, типов данных, потоков, файлов, обработки ошибок и других основных концепций Java. Преподаватель Джим Уилсон имеет более чем 30-летний опыт работы инженером-программистом и дает представление обо всех важных концепциях Java, необходимых для построения карьеры.
Курс дает представление о языке и серверах, которые можно увидеть во всех работах по разработке на основе Java, таких как разработка на стороне сервера и разработка на стороне клиента, включая даже приложения для Android.
Общая продолжительность 7 часов 41 минута.
9. Интерактивное руководство по Java – LearnJavaOnline.org
Этот курс представлен в формате веб-сайта и дает зрителю интерактивный опыт программирования с подходом обучения на практике. Формат сайта простой. Он состоит из нескольких глав, по которым можно щелкнуть, чтобы узнать об этом аспекте Java. Курс разделен на две части. Первая часть посвящена основам, а вторая — более сложным темам. Их можно рассматривать в соответствии с уровнем навыков разработчика и помочь улучшить их понимание языка программирования.
Поскольку разработчик может выполнять большую часть своей работы и видеть результат на самом сайте, он становится отличным средством обучения и, следовательно, развивает у пользователя чувство выполненного долга. Он также состоит из других ссылок на учебники, в которых есть другие подробности о Java как языке. Таким образом, если кто-то хочет узнать больше, он может сделать это с помощью этих руководств. Пользователь может учиться со своей скоростью, и это совершенно бесплатно.
10. Учебник по Java для начинающих (Telusko) — YouTube
Этот курс посвящен различным элементам, таким как переменные, операторы присваивания, операторы switch, теория классов и объектов, а также многие другие основы изучения Java. Как и вышеупомянутые курсы, этот курс также работает с глубоким пониманием Java и его последствий. Он предоставляет временные метки для каждой главы, преподаваемой в курсе. Однако эти штампы не встроены в видео, что затрудняет навигацию по видео, так как нужно ставить видео на паузу, чтобы перейти к описаниям, чтобы перейти к определенным частям видео.
Общая продолжительность видео составляет 12 часов 22 минуты, что может показаться долгим, поскольку оно охватывает большую часть всех аспектов, связанных с Java, и содержит большое количество упражнений и заданий. Это очень обновленное видео, и поэтому оно содержит все новые модификации, через которые прошла Java при разработке.
11. Изучайте Java с нуля — образовательный
Этот курс состоит из 11 глав, организованных и разработанных таким образом, чтобы дать разработчику глубокое понимание. Он интерактивен и состоит из заданий, сделанных для проверки мастерства разработчиков. Курс сфокусирован и стратегически ориентирован на кривую обучения и методы применения.
Курс начинается с простой программы Hello World. Затем он переходит к таким понятиям, как условные операторы, циклические операторы, математика и логика в Java. Наконец, он переходит к гораздо более сложным понятиям, таким как наследование, обобщения и списки массивов.
Этот курс помогает стать разработчиком среднего уровня, который может заняться своими собственными проектами.
Заключение
Можно с уверенностью сказать, что сегодня существует большое разнообразие курсов для изучения Java, что может запутать выбор. Тем не менее, достойный курс с достаточной категоризацией глав и хорошим резюме может быть полезен для начинающих.
Поэтому понятно, что даже бесплатные курсы имеют яркий набор заданий и занятий, направленных на развитие понимания языка. Некоторые курсы могут иметь длительные временные рамки в списке, но в целом объясняют процесс гораздо более подробно, в то же время некоторые курсы могут иметь более короткие временные рамки, но могут иметь меньшее содержание, чем другие.
Поэтому разумнее выбрать курс с временной отметкой в диапазоне от 1 до 2 часов, чтобы он был сбалансирован как по содержанию, так и по структуре. В то же время приятно иметь хорошее введение в каждый курс, чтобы дать представление о том, что влечет за собой курс.
Они могут включать краткую информацию о курсе, отраслевых стандартах и перспективах изучения курса. Это даст новичкам хорошее понимание курса и того, что он влечет за собой.
CodingBat Java
CodingBat Javaid/email | |
пароль | |
забыл пароль | создать аккаунт |
о | помощь | помощь по коду+видео | сделано | настройки |
Добро пожаловать в Codingbat. См. справку для последних.
Прогрев-1 | Разминка-2 |
Строка-1 | Массив-1 |
Логика-1 | Логика-2 |
Строка-2 | String-3 |
Массив-2 | Массив-3 |
AP-1 | Рекурсия-1 |
Рекурсия-2 |