10 полезных книг для Java программиста
Туториалы, которые можно почитать на украинском и английском
Согласно свежему рейтингу DOU, Java — второй самый популярный язык для коммерческого использования (и первый — если говорить только о Backend). Это не самый простой язык для новичка, но если у вас уже есть опыт программирования или вас не пугают трудности, рекомендуем иметь под рукой пару книг по Java.
В списке ниже — те книги, которые завоевали популярность у Java-программистов во всем мире. Часть из них уже доступна на украинском, остальные мы очень ждем в переводе.
Книги по языку программирования Java на украинском языке
«Head First. Java. Легкий для сприйняття довідник», Кетті Сьєрра, Берт Бейтс
Очень известная книга «для самых маленьких», которая воспитала не одно поколение джавистов. Авторами выступили опытные преподаватели курсов по Java, которые больше 25 лет занимаются учебными программами по всему миру.
Оригинальное издание вышло в 2003 году Head First Java (2th edition) на украинском появилось в 2022 году. Выпускает книгу издательство «Фабула».
Чем полезна: С помощью издания можно изучить основы языка Java, разобраться с работой с потоками, сетевым взаимодействием и распределенным программированием. Кроме теории, в книге есть и практические задания. Например, создание игры Sink The Dot Com или музыкального чата.
Кому полезна: По мнению многих читателей, Head First. Java — одна из лучших книг для начинающих программистов, включая тех, кто до этого не написал ни строчки кода.
Цена: 891 грн
«Head First. Патерни проєктування», Ерік Фрімен, Елізабет Робсон, Берт Бейтс, Кеті Сьєрра
Еще одна книга из серии Head First, которая вышла благодаря издательству «Фабула». Издана в 2020 году. К паре авторов предыдущей книги присоединился бывший технический директор Disney Online & Disney.com и его жена, соосновательница образовательной платформы WickedlySmart.
Чем полезна: У книзі розбираються проблеми дизайну програмного забезпечення. Автори занурюють читача у світ патернів, показують, як вони працюють та виглядають. Зокрема розглядається використання патернів у Java API та вбудованої підтримки патернів Java на реальних прикладах.
Кому полезна: «Патерни проєктування» рекомендуется читать после Head First. Java, потому что она разбирает более сложные вопросы. Однако даже если первую книгу вы не читали, но уже имеете опыт программирования на Java и интересуетесь паттернами, учебник вам подойдет.
Цена: 890 грн
«Програмування мовою Java», Олексій Васильєв
Еще одна книга для начинающих, в которой собраны основные приемы создания программ на Java. Пособие издает «Навчальна книга — Богдан», а его создателем выступил профессор КНУ им. Шевченко, автор многих книг по программированию и математическим пакетам Алексей Васильев.
Чем полезна: В книге рассматриваются все аспекты языка Java: работа с основными операторами и типами данных, управляющими инструкциями, классами и объектами. Кроме того, учебник рассказывает о наследовании, перегрузке и переозначивании методов, интерфейсах, лямбда-уравнениях, ошибках и их обработке, потоках, обобщенных типах, работе с файлами и многом другом.
Кому полезна: Новичкам, желающим с головой окунуться в мир Java. Читатели отмечали в отзывах, что не всякому новичку эта книга дастся просто. Но попробовать точно стоит — объем знаний она дает обширный.
Цена: 520 грн
«Чистий код», Роберт Мартін
Это, как и следующее пособие в нашей подборке, написал рок-стар среди IT-шников Роберт «Дядюшка Боб» Мартин, книги которого обязательны к прочтению не только джунами, но и опытными программистами. Все книги «чистой» серии выпускает издательство «Фабула».
Чем полезна: Издание состоит из трех частей: в первой даны принципы и паттерны с примерами создания чистого кода, во второй — практические сценарии с возрастающей сложностью, в третьей — база знаний, помогающая перестроить мышление в процессе программирования.
Важно! В отзывах пишут, что принципы из книги действительно полезные и нужные, но примеры кода на Java несколько устарели.
Кому полезна: Книга, которая будет полезна не только джавистам всех уровней, но и разработчикам на других языках.
Книги, которые должен прочитать Java программист: от новичка до профессионала
[Примечание переводчика: термины градации «профессионализма» оставлены англоязычные в связи с трудностью их адекватного перевода на русский и несовпадением с привычными Junior-Middle-Senior-Lead. Перевод достаточно вольный — если знаний языка хватает, то лучше читать оригинал, как и советует автор. Оба языка для меня не родные, так что про ошибки сообщайте в личку — исправим. Здесь и далее в квадратных скобках примечания переводчика]
Я заметил, что в последние месяцы я рекомендую одни и те же книги как новичкам, так и опытным разработчикам. Поэтому я решил составить список этих книг. Они составили мне неплохую компанию в процессе моего роста от новичка до сегодняшнего уровня (какой-бы он не был 🙂 ) Составить список мне помогали друзья и коллеги. Особая благодарнасть Frank Appel, Rüdiger Herrmann, Benjamin Muskalla и Ralf Sternberg
Порядок книг в списке отражает мой персональный выбор. Меняйте его, как вам угодно 🙂 Одна важная вещь — если вы покупаете книгу из этого списка, то всегда выбирайте англоязычный вариант. Даже если есть перевод на ваш родной язык, оригинальная версия почти всегда лучший выбор.
Beginner
Если вы только начали знакомство с Java, то для начала нужно познакомиться с синтаксисом языка. Существует большое количество книг для этого. Практически всегда содержание этих книг очень похоже, но вот стиль написания отличается кардинально.
Есть две книги, которые стоит порекомендовать. Head First Java нестандартная, но легкочитаемая. Как и вся серия, вы можете любить её или нет (я обожаю их). Java, A Beginner’s Guide более традиционная книга, которая отлично объясняет Java. После того, как вы сполна ознакомились с синтаксисом и базовыми конструкциями, я рекомендую прочитать еще одну книгу перед тем, как переходить к следующему этапу (это справедливо и для других языков программирования). Test Driven Development (автор Kent Beck) описывает технику программирования, который мы используем в EclipseSource. ИМХО TDD должна входить в курс обучения каждого программиста.
Journeyman
Journeyman — программист, которые уже знает язык, сделал несколько небольших проектов, но которому еще предстоит развиться до профессионала. Конечно, я уверен, что вы не согласны с этим утверждением (я не был согласен, например). Но после пяти лет в этом статусе вы согласитесь 🙂
Простых знаний языка недостаточно — вам необходимо углублять их. Для этих целей практически любой профессионал Java порекомендует книгу Effective Java, автор Joshua Bloch. Другая книга — The Pragmatic Programmer — похожа на сборник заметок. Она подробна раскрывает те темы, с которыми вы столкнетесь как программист, поэтому ее также обязательно надо прочитать. Но знание языка не научит вас хорошо писать программы. С моей точки зрения одна из долгосрочных задач программиста — научиться правильно создавать архитектуру приложений. Для этих целей Design Patterns Book, написаная Бандой Четырех [нет, это не те, которые левые в КПК, а распространённое название группы авторов (Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес)] — хорошее начало.
Согласно книге TDD (автор Beck) золотое правило — это: красный, зеленый, рефактор. Martin Fowler объясняет последний пункт в своей книге Refactoring Book. После того, как все тесты прошли успешно и вы основательно переработали код, необходимо прочитать книгу Clean Code (Robert C. Martin) (минимум два раза). После первого раза я более чем уверен, что вы начнете думать про свой код по-другому [и вряд ли в лучшую сторону]. OSGi in Action смотриться странно в этом списке. Я добавил ее сюда, потому что я думаю, что модульность один из самых важных принципов дизайна приложений. Java-программисту просто необходимо знать OSGI. Помните, я упомянул, что вы не будете соглашаться со мной, что вы не станете Professional, пока не побудете в статусе Journeyman по крайней мере несколько лет? Я уверен, что после прочтения The Clean Coder я вас убедил. Robert C. Martin пишет про себя и свой путь развития от новичка до профессионала. Это действительно самое настоящее откровение!
Professional
Я использую слово «Professional», потому что в этом контексте его используют многие авторы. Но я не люблю использовать это слово для описания уровня программиста. «Professional» звучит так, как будто вы уже достигли вершины. Но это просто-напросто неправда. Программист никогда не может закончить свое обучение [впрочем, это справедливо для 83% профессий]. Книги, которые я поместил в эту категорию — просто более продвинутые. Они углубляются в детали или тренируют вас на роль лидера команды.
Совсем немного можно сделать в Java, не используя многопоточность. Пока вы в статусе Journeyman, скорее всего у вас в команде будет человек [ну-да, ну-да], который сможет вам помочь с этой темой. Но рано или поздно настанет момент, когда вам нужно будет научиться многопоточности самому. Brian Goetz проделал огромную работу в своей книге Java Concurrency in Practice. Быть профессионалом — значит брать ответственность. А так как вы программист — это еще значить нести ответственность за устаревший код. Micheal Feathers описал эту скучную тему немного веселее в книге Woking Effectively with Legacy Code. Также вы должны уметь брать ответственность за свою команду. Tom DeMarco и Timothy Lister постарались раскрыть эту тему в Peopleware, где описали, как работают эфективные команды и важные характеристики таких команд. Просто объяснить трудную тему — очень тяжелая задача. Немноге авторы способны на это. Martin Fowler проделал огромную работу в книге Patterns of Enterprise Application Architecture, где подробно описал процесс проектирования ПО.
Надеюсь, вам понравились (или понравятся, если вы еще не читали) эти книги. Если вы не согласны со списком, или можете порекомендовать другие интересные книги — отмечайтесь в комментариях [присоединяюсь к автору. Также в комментариях к оригинальной статье есть несколько интересных книг. Те книги из списка, что я уже прочитал — однозначно стоили этого. Ну и теперь есть неплохой список для продолжения]
5 лучших книг по Java для новичков и профи, на которые стоит обратить внимание в 2022 году
Привет, Хабр! Мы поговорили с командой разработчиков Сбера и попросили поделиться книгами по Java, которые, по мнению коллег, заслуживают внимания как новичков, так и профессионалов.
Результат обсуждения ― в подборке ниже. Она будет полезной и тем, кто только начинает свой путь в мире Java, и тем, кто уже давно стал разработчиком. Если у вас есть собственный вариант хорошей книги по этому языку программирования ― делитесь в комментариях.
«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. Важно то, что любой из примеров кода может быть запущен отдельно от других. Ну и да, кроме разбора паттернов, авторы рассказывают, где именно и каким образом их нужно и стоит использовать ― об этом обычно говорится в конце главы.
«Чистый код. Создание, анализ и рефакторинг»
Автор книги: Роберт Мартин
Ну и ещё одна книга, которая должна быть в библиотеке разработчика. Дело в том, что автор рассказывает, как научиться писать хороший код. На Хабре много раз писали о рефакторинге, о том, насколько сильно плохой код мешает развитию проекта, отнимает ресурсы компании и отдельных разработчиков. Поэтому книге стоит уделить особенное внимание.
В книге три части. В первой приводится большой объём примеров реального кода, который автор берёт из собственной практики. Во второй части читатель учится чистить собственный код либо преобразовывать проблемный код в хороший. Ну а последняя часть посвящена выводам относительно хорошего кода, содержит набор правил и советов.
Отличная книга, которая действительно помогает писать хороший код. Она может быть полезна как для профи, так и для новичков.
Подборка не такая и большая, но в ней собраны книги, которые считают полезными многие разработчики. Если у вас есть собственные рекомендации и советы по теме ― пишите в комментариях, рассказывайте о книгах, которые оказались полезными для вас.
- java
- программирование
- читальный зал
- книги
- книги по программированию
- Блог компании Сбер
- Программирование
- Java
- Читальный зал
Какие книги должен прочитать каждый Java-программист?
Олег Чирухин Fullstack-разработчик в компании Axiom JDK
У разных людей разные вкусы. Если вы поспрашиваете знакомых программистов-сеньоров о том, какие книги они прочитали, у каждого будет свой список. Но одни и те же названия будут повторяться снова и снова. Здесь перечислены десять первых книг, которые можно порекомендовать всем, кто решил связать профессиональный путь с Java. У разных людей разные вкусы. Если вы поспрашиваете знакомых программистов-сеньоров о том, какие книги они прочитали, у каждого будет свой список. Но одни и те же названия будут повторяться снова и снова. Здесь перечислены десять первых книг, которые можно порекомендовать всем, кто решил связать профессиональный путь с Java. 1. Java. Библиотека профессионала (том 1, том 2) Кей Хорстман Оригинал: Core Java (Cay S. Horstmann) Среди учебников «для самых маленьких» эта книга, пожалуй, самая популярная. Она пережила одиннадцать изданий только на русском языке, двенадцатое пока существует только на английском и выпущено в 2021 году.
Java-разработчик
Java уже 20 лет в мировом топе языков программирования. На нем создают сложные финансовые сервисы, стриминги и маркетплейсы. Освойте технологии, которые нужны для backend-разработки, за 14 месяцев.
Профессия / 14 месяцев
Java-разработчик
Освойте востребованный язык
4 290 ₽/мес 7 150 ₽/мес
- о разделении сложных систем на уровни;
- моделировании структуры и поведении на уровне объектов и реляционных баз данных;
- типовых решениях обработки данных;
- бытовом параллелизме;
- отображении данных в вебе.
Эрик Эванс
Оригинал: Domain Driven Design (Eric Evans)
Книга наполнена примерами из реальных проектов, приемами и методиками, основанными на практическом опыте автора. Она помогает инженеру-разработчику и специалисту в предметной области найти единый язык, чтобы разговаривать друг с другом. Это полное руководство по моделированию предметных областей и созданию контекста, в котором подход можно успешно объяснять и преподавать.
Мартин Фаулер
Оригинал: Refactoring (Martin Fowler)
Автор списком приводит примеры более 70(!) конкретных способов улучшить код, а в начале объясняет суть рефакторинга.
Научиться писать код может каждый. Но далеко не все умеют делать это хорошо. Кроме красивой теории и больших идей, написание кода — это множество мелкой, ежедневной, рутинной работы. Если делать ее плохо и неэффективно, она может испортить все удовольствие от профессии.
Поэтому «Рефакторинг» наполнен небольшими, но важными советами вроде: «Почувствовав потребность написать комментарий, попробуйте сначала изменить структуру кода так, чтобы любые комментарии стали излишними». Автор дает полный список инструкций, как конкретно добиться поставленной цели.
Роберт Мартин (Дядя Боб)
Оригинал: Clean Code (Robert C. Martin)
Книга очень полезная. Ее можно прочитать за пару вечеров. В ней ясно и однозначно описано множество бытовых вопросов, о которых молчат окружающие.
Как называть классы и методы? Нужно ли в комментариях объяснять каждую строчку? Как получается, что простые проблемы процедурного программирования сложно выглядят в объектно-ориентированном виде?
На часть вопросов можно взглянуть ретроспективно, с учетом развития других языков программирования (если вы их знаете). Например, в книге есть обсуждение вопроса: стоит ли из функций бросать исключения или можно ограничиться возвратом кодов ошибок? Программисты на Java и Go могут устроить по этому поводу спор о хорошем вкусе и правильной архитектуре.
Дэвид Томас, Эндрю Хант
Оригинал: The Pragmatic Programmer: From Journeyman to Master (Andrew Hunt, David Thomas)
На моей самой первой работе книгу советовали читать всем джунам-джавистам. У нас был огромный список книг по Java, и она стояла в нем самой первой, несмотря на минимальное количество примеров кода.
«Программист-прагматик» не привязывается к конкретному языку программирования или технологии, не обсуждает мелкие технические вопросы из репертуара StackOverflow. Она рассказывает о сути профессии и вечных темах профессионального роста.
Ее можно читать и перечитывать из года в год и каждый раз находить что-то новое в свете опыта, свежих технологий и ситуации в мире. Рекомендую прочитать ее два раза: до и после чтения всех книг в этом списке. И посмотреть, что изменится.
Программирование — дело не простое. Сказочно простых книг и легких гайдов здесь не существует. Тому, кто хочет, чтобы это стало его профессией, должны нравиться такие трудности. Я начинал учиться сразу со сложных книг. Желаю вам успехов в учебе и профессии.
Олег Чирухин Fullstack-разработчик в компании Axiom JDK