Привет, Хабр! Мы поговорили с командой разработчиков Сбера и попросили поделиться книгами по Java, которые, по мнению коллег, заслуживают внимания как новичков, так и профессионалов.
Результат обсуждения ― в подборке ниже. Она будет полезной и тем, кто только начинает свой путь в мире Java, и тем, кто уже давно стал разработчиком. Если у вас есть собственный вариант хорошей книги по этому языку программирования ― делитесь в комментариях.
![](https://habrastorage.org/getpro/habr/upload_files/c8b/5a5/efa/c8b5a5efab97b3b50b08d42f71ba4fc1.png)
«JAVA. Руководство для начинающих. Современные методы создания, компиляции и выполнения программ на JAVA»
Автор книги: Герберт Шилдт
Книга помогает начинающим разработчикам разобраться в Java, понять основы создания и работы программ, которые написаны на этом языке. Для того чтобы книга «зашла», нужно уже иметь какие-то знания, поскольку совсем без них будет сложно. Но если есть базовый уровень, то проблем не будет, разобраться можно довольно быстро.
Автор предлагает вниманию читателя и относительно сложные темы, включая многопоточное программирование и лямбда-выражения, Swing, JavaFX и модули. Но объясняет всё очень хорошо и понятно. Одна из тем, которые пригодятся новичку, ― ключевые слова и языковые конструкции Java.
По тексту размещены врезки с дополнительными сведениями или комментариями к рассматриваемой теме. Они даются в виде вопросов и ответов. Кроме того, есть упражнения для самопроверки. Их автор разместил в конце каждой главы, так что пройдя очередную тему, можно себя протестировать. Если что-то осталось непонятым, то стоит повторить тему и закрыть «белое пятно».
«JAVA для чайников»
Автор книги: Барри Берд
Эта книга, как и предыдущая, предназначена для начинающих разработчиков. В ней автор как раскрывает основы ЯП, так и делится советами и важными для разработчика нюансами. В целом, важно и интересно всё, но отдельно стоит упомянуть раздел, где рассказывается о реутилизации уже созданных ранее фрагментов кода в новых программах. Также автор рассказывает о том, как использовать циклы и условные конструкции для ветвления программ.
Ну и плюс есть место для экспериментов. Берд показывает и рассказывает о том, как правильно применять переменные и методы, массивы и коллекции, использовать обработку событий, а также создавать обработчики исключений. Кроме того, рассказывается об основах объектно-ориентированного программирования.
Автор знает, о чём говорит ― у него огромный опыт разработки, также он весьма неплохо раскрывает тему. Эту книгу советуют в качестве основной начинающим разработчикам.
«Java. Библиотека профессионала. Том 1»
Авторы: Кей Хорстманн и Гари Корнелл
Ну а эту книгу стоит рекомендовать уже не новичкам, а тем, у кого есть определённый опыт в разработке. Книга раскрывает важные для профессионала нюансы языка, помогает лучше его понять, а также узнать о библиотеках. Авторы уделяют внимание как ООП, так и важным практикам программирования, включая параллельное, функциональное и т. п.
В книге приведены сотни реальных примеров, которые помогают решать практические задачи прикладного программирования. Например, есть примеры кода, которые демонстрируют возможности модуляризации. Также автор рассказывает и показывает, как писать легко расширяемый и не менее легко сопровождаемый прикладной код.
Кроме всего прочего, автор демонстрирует возможности использования утилиты JShell, которая реализует цикл REPL. Раскрываются и нюансы практического применения усовершенствований в прикладном интерфейсе Process API, протоколировании и компиляции.
«JAVA. Эффективное программирование»
Автор книги: Джошуа Блох
Блох ― довольно известный американский разработчик и популяризатор Java, если так можно выразиться. Он много лет проработал в крупных компаниях, включая Sun Microsystems и Google. Собственно, Блох принимал прямое участие в разработке языка, включая реализацию различных функционалов, например фреймворк коллекций Java Collections, пакет java.math и т. д.
Книга подойдёт как для новичков, так и для профессионалов, здесь много интересного и для первых, и для вторых. Книга помогает понять, как эффективно использовать новые возможности языка. При этом автор не просто рассказывает о разных кейсах использования Java, но и раскрывает, почему ту или иную задачу стоит решать именно так, а не иначе.
В каждом из разделов книги описаны полезные советы, приведены тонкости платформы Java, а также содержатся обновлённые примеры кода. В общем, must have для разработчиков на Java.
«JAVA EE паттерны проектирования для профессионалов»
Авторы книги: Мурат Йенер и Алекс Фидом
Книга ― один из крайне полезных источников информации по работе с Java EE. Кроме того, это едва ли не единственное издание, где рассматривается как теория, так и практика работы с паттернами проектирования на примерах реальных задач. Авторы постепенно раскрывают нюансы темы, показывая, как именно нужно применять паттерны при решении важных прикладных задач.
Традиционно книга разбита на главы, каждая из них посвящена определённому паттерну проектирования. Если такой паттерн классический, то авторы разбирают и простую реализацию на Java. Важно то, что любой из примеров кода может быть запущен отдельно от других. Ну и да, кроме разбора паттернов, авторы рассказывают, где именно и каким образом их нужно и стоит использовать ― об этом обычно говорится в конце главы.
«Чистый код. Создание, анализ и рефакторинг»
Автор книги: Роберт Мартин
Ну и ещё одна книга, которая должна быть в библиотеке разработчика. Дело в том, что автор рассказывает, как научиться писать хороший код. На Хабре много раз писали о рефакторинге, о том, насколько сильно плохой код мешает развитию проекта, отнимает ресурсы компании и отдельных разработчиков. Поэтому книге стоит уделить особенное внимание.
В книге три части. В первой приводится большой объём примеров реального кода, который автор берёт из собственной практики. Во второй части читатель учится чистить собственный код либо преобразовывать проблемный код в хороший. Ну а последняя часть посвящена выводам относительно хорошего кода, содержит набор правил и советов.
Отличная книга, которая действительно помогает писать хороший код. Она может быть полезна как для профи, так и для новичков.
Подборка не такая и большая, но в ней собраны книги, которые считают полезными многие разработчики. Если у вас есть собственные рекомендации и советы по теме ― пишите в комментариях, рассказывайте о книгах, которые оказались полезными для вас.