
Java — сильно типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре с помощью виртуальной Java-машины. Дата официального выпуска — 23 мая 1995 года.
Несмотря на возраст, Java остаётся самым популярным и самым востребованным языком. Чтобы упростить его изучение, мы подготовили подборку книг по программированию на Java, которые пригодятся начинающим разработчикам.

Содержание
- Java: The Legend
- Introduction to Programming Using Java (7-е издание)
- Изучаем Java
- Think Java
- Программирование на Java для начинающих
- Java Programming for Kids
- Философия Java
- Object-Oriented vs. Functional Programming
- What’s New in Java 8
- Java. Библиотека профессионала. Том 1. Основы
- Java for Python Programmers
- Java: A Beginner’s Guide
- Head First Java, 2nd Edition (Изучаем Java) Kathy Sierra (Кэти Сьера)
- Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick
- Core java (Java. Библиотека профессионала, том 1-2) Cay S. Horstmann (Кей С. Хорстманн)
- Thinking in Java (Философия Java) Bruce Eckel (Брюс Эккель)
- Effective Java: Programming Language Guide (Java. Эффективное программирование) Joshua Bloch (Джошуа Блох)
- Clean code (Чистый код) Robert Martin (Роберт Мартин)
- Clean coder Robert Martin
- Java Concurrency in Practice Brian Goetz
- Java Puzzlers Joshua Bloch and Neal Gafter
- SCJP Sun Certified Programmer for Java 6 Exam 310-065 (Книга для подготовки к экзамену на сертификат Java программиста)
- Algorithms in Java (Алгоритмы на Java) Robert Sedgewick (Роберт Седжвик)
- Head First Java, 2nd Edition (Изучаем Java) Kathy Sierra (Кэти Сьера)
- Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick
- Core java (Java. Библиотека профессионала, том 1-2) Cay S. Horstmann (Кей С. Хорстманн)
- Thinking in Java (Философия Java) Bruce Eckel (Брюс Эккель)
- Effective Java: Programming Language Guide (Java. Эффективное программирование) Joshua Bloch (Джошуа Блох)
- Clean code (Чистый код) Robert Martin (Роберт Мартин)
- Clean coder Robert Martin
- Java Concurrency in Practice Brian Goetz
- Java Puzzlers Joshua Bloch and Neal Gafter
- SCJP Sun Certified Programmer for Java 6 Exam 310-065 (Книга для подготовки к экзамену на сертификат Java программиста)
- Algorithms in Java (Алгоритмы на Java) Robert Sedgewick (Роберт Седжвик)
- Java для чайников
- Head First Java
- Java 8. Руководство для начинающих
- Java для начинающих. Объектно-ориентированный подход
- Java SE 9. Базовый курс
- Java. Библиотека профессионала
- Head First. Паттерны проектирования
- Java. Эффективное программирование
- Проектирование баз данных для простых смертных
- Справочник по производительности Java
- Грокаем алгоритмы
- Чистая архитектура. Искусство разработки программного обеспечения
- Рекомендуем к прочтению
Java: The Legend
В этой книге рассказывается о развитии языка Java. Рассматриваются его история, влияние, которое он оказал на другие языки, становление Java EE, а также его будущее: Java 9, Project Panama, Project Valhalla и интернет вещей.

Introduction to Programming Using Java (7-е издание)
Эта книга — учебник по программированию для начинающих, где в качестве языка выбран Java. Каждый раздел снабжён упражнениями, а в конце прилагается весь необходимый код.

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

Think Java
Эта книга отлично подойдёт в качестве учебного пособия для начинающих программистов. Сложность тем постепенно увеличивается: сперва обсуждаются базовые принципы, а затем — рекурсия и ООП. Все примеры кода выложены на GitHub.

Программирование на Java для начинающих
Книга довольно небольшая (около 190 страниц). В ней достаточно сжато подаются основы языка Java, но после прочтения книги станет возможным писать собственные приложения на Java. Пособие наполнено иллюстрациями, поясняющими результат исполнения кода. Книга подойдет для тех, кому нужно максимально быстро освоить синтаксис Java.

Java Programming for Kids
Цель этой книги — помочь в изучении Java. В ней описываются принципы создания приложений с графическим пользовательским интерфейсом на примере двух игр: «Крестики-нолики» и «Пинг-понг». Хотя книга и рассчитана на детей старше 12, программистам постарше она тоже подойдёт. Последняя глава — бонусная: в ней рассказывается, как публиковать свой код на GitHub.

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

Object-Oriented vs. Functional Programming
Споры между фанатами ООП и функциональщиками не прекращаются уже много лет. В своей книге автор обсуждает сходства этих парадигм программирования и тенденцию по их сближению. Примеры на Java помогут вам:
- узнать, как лямбды (анонимные функции) помогают объектно-ориентированным языкам работать с параллелизмом и конкурентностью;
- понять, как SOLID — 5 основных принципов ООП — сопоставляются с возможностями функционального подхода;
- изучить главные шаблоны ООП и научиться применять их в функциональном программировании.

What’s New in Java 8
Эта книга — короткое введение в Java 8. Она поможет разобраться в основных фичах этой версии языка, таких как Project Lambda, Date-Time API, Streams и Nashorn.

Java. Библиотека профессионала. Том 1. Основы
Книга ориентирована на читателей, уже имеющих опыт в программировании на каком-либо языке. В десятом издании рассматривается Java SE 8.
Книга состоит из двух томов. В данной подборке рассматривается первый том. В нем рассматриваются самые разные вопросы: от принципов объектно-ориентированного программирования до обобщений, коллекций, лямбда-выражений, разработки графического интерфейса средствами библиотеки Swing, а также новейшие методики параллельного и функционального программирования.
Java for Python Programmers
Эта книга рассчитана на тех, кто уже знает Python. Сперва рассматривается простая Java-программа, затем рассказывается об основных конструкциях, которые присутствуют почти во всех языках. После основ разбираются уникальные фичи Java.

Java: A Beginner’s Guide
Краткое введение в Java от Oracle. Описываются его история и философия, а также основы разработки.
Также рекомендуем изучить стайлгайд от Google, спецификации Java SE и официальные руководства по стандартной и энтерпрайз-версиям языка.
Если вы знаете другие книги, которые стоит разместить в этой подборке, делитесь ими в комментариях.

Подборка основана на советах разработчиков Google, Microsoft, Luxoft и Amazon.com и их личном опыте в изучении Java. Некоторые книги доступны только в оригинале, что служит веским аргументом учить технический английский. Мы пишем об этом в статье «10 советов, как быстро выучить технический английский».
Head First Java, 2nd Edition (Изучаем Java)
Kathy Sierra (Кэти Сьера)
Книга для новичков. Оптимально подойдет для быстрого старта в изучении Java. Вместе с чтением этой книги рекомендуем записаться на наш бесплатный курс по основам Java-программирования.
Introduction to Programming in Java: An Interdisciplinary Approach
Robert Sedgewick
Книга не просто учит Java, она учит использовать данный язык, как инструмент. В ней вы найдете массу полезных упражнений. Помимо этого есть сайт с дополнительной информацией, полностью посвященный этой книге — Introduction to Programming in Java.
Core java (Java. Библиотека профессионала, том 1-2)
Cay S. Horstmann (Кей С. Хорстманн)
Это одна из самых всеобъемлющих книг по Java. В ней описаны все необходимые средства языка и библиотеки. Здесь только факты и углубленные исследования, которые помогут в написании реальных программ.
Thinking in Java (Философия Java)
Bruce Eckel (Брюс Эккель)
Эта книга заслужено является частым ответом на вопрос: «с чего начинать учить Java?». Но если вы только начинаете изучать язык и при этом не имеете программистского бэкграунда, то можете ее не осилить. В таком случае лучше начать с чего-то более простого и традиционного.
Effective Java: Programming Language Guide (Java. Эффективное программирование)
Joshua Bloch (Джошуа Блох)
Джеймс Гослинг, автор языка Java, когда эта книга вышла, сказал: «Некоторые, возможно, думают, что мне не нужны никакие книги по Java, но эта мне нужна.» Здесь вы найдете более 50-ти лучших практик и советы по усовершенствованию кода от выдающегося эксперта в даной области.
Clean code (Чистый код)
Robert Martin (Роберт Мартин)
Книга о том, как писать код так, чтобы его понимали. Она научит отличать плохой код от хорошего и трансформировать плохой код в хороший. Но стоит помнить о том, что некоторые мысли там выражаются слишком категорично и поэтому могут быть неправильно восприняты новичками.
Clean coder
Robert Martin
Это более гуманитарная книга об отношении к работе. Она затрагивает тему коммуникации и дает общий обзор того, что значит быть профессиональным программистом.
Java Concurrency in Practice
Brian Goetz
Если вы имеете серьезные намерения насчет разработки на Java, то нельзя игнорировать параллелизм и многопоточность. Книга вооружит вас концепциями и техниками, необходимыми для написания безопасных и масштабируемых программ под новейшие платформы.
Java Puzzlers
Joshua Bloch and Neal Gafter
Книга написана в соавторстве главного инженера с Java-евангелистом Google. Она состоит из 95-ти обучающих головоломок, которые будет понятны всем, кто имеет навыки работы с Java, но даже для самых опытных ветеранов эти задачки покажутся сложными.
SCJP Sun Certified Programmer for Java 6 Exam 310-065 (Книга для подготовки к экзамену на сертификат Java программиста)
Учебное пособие для подготовке к сдаче SCJP экзамена.
Algorithms in Java (Алгоритмы на Java)
Robert Sedgewick (Роберт Седжвик)
Книга для того, чтобы попрактиковаться на задачках, набить руку в программировании и прокачать мозг.
Однако одного чтения книг недостаточно. «Главное побыстрее выучить основы и искать работу стажера или Juniora, а там уже знания будут накапливаться по экспоненте, если человек не ленивый, конечно. Я начал программировать, когда действительно клюнул петух в одно место — поставили уже на работе конкретную задачу и дали сроки. На работу попал Junior’ом по устному собеседованию, считаю что повезло и мне сделали большое одолжение» — говорит Дмитрий Фатеев, Senior Java Developer в Luxoft Russia.
А в полной мере освоить Java можно, записавшись на профессию «Программист Java».

Подборка основана на советах разработчиков Google, Microsoft, Luxoft и Amazon.com и их личном опыте в изучении Java. Некоторые книги доступны только в оригинале, что служит веским аргументом учить технический английский. Мы пишем об этом в статье «10 советов, как быстро выучить технический английский».
Head First Java, 2nd Edition (Изучаем Java)
Kathy Sierra (Кэти Сьера)
Книга для новичков. Оптимально подойдет для быстрого старта в изучении Java. Вместе с чтением этой книги рекомендуем записаться на наш бесплатный курс по основам Java-программирования.
Introduction to Programming in Java: An Interdisciplinary Approach
Robert Sedgewick
Книга не просто учит Java, она учит использовать данный язык, как инструмент. В ней вы найдете массу полезных упражнений. Помимо этого есть сайт с дополнительной информацией, полностью посвященный этой книге — Introduction to Programming in Java.
Core java (Java. Библиотека профессионала, том 1-2)
Cay S. Horstmann (Кей С. Хорстманн)
Это одна из самых всеобъемлющих книг по Java. В ней описаны все необходимые средства языка и библиотеки. Здесь только факты и углубленные исследования, которые помогут в написании реальных программ.
Thinking in Java (Философия Java)
Bruce Eckel (Брюс Эккель)
Эта книга заслужено является частым ответом на вопрос: «с чего начинать учить Java?». Но если вы только начинаете изучать язык и при этом не имеете программистского бэкграунда, то можете ее не осилить. В таком случае лучше начать с чего-то более простого и традиционного.
Effective Java: Programming Language Guide (Java. Эффективное программирование)
Joshua Bloch (Джошуа Блох)
Джеймс Гослинг, автор языка Java, когда эта книга вышла, сказал: «Некоторые, возможно, думают, что мне не нужны никакие книги по Java, но эта мне нужна.» Здесь вы найдете более 50-ти лучших практик и советы по усовершенствованию кода от выдающегося эксперта в даной области.
Clean code (Чистый код)
Robert Martin (Роберт Мартин)
Книга о том, как писать код так, чтобы его понимали. Она научит отличать плохой код от хорошего и трансформировать плохой код в хороший. Но стоит помнить о том, что некоторые мысли там выражаются слишком категорично и поэтому могут быть неправильно восприняты новичками.
Clean coder
Robert Martin
Это более гуманитарная книга об отношении к работе. Она затрагивает тему коммуникации и дает общий обзор того, что значит быть профессиональным программистом.
Java Concurrency in Practice
Brian Goetz
Если вы имеете серьезные намерения насчет разработки на Java, то нельзя игнорировать параллелизм и многопоточность. Книга вооружит вас концепциями и техниками, необходимыми для написания безопасных и масштабируемых программ под новейшие платформы.
Java Puzzlers
Joshua Bloch and Neal Gafter
Книга написана в соавторстве главного инженера с Java-евангелистом Google. Она состоит из 95-ти обучающих головоломок, которые будет понятны всем, кто имеет навыки работы с Java, но даже для самых опытных ветеранов эти задачки покажутся сложными.
SCJP Sun Certified Programmer for Java 6 Exam 310-065 (Книга для подготовки к экзамену на сертификат Java программиста)
Учебное пособие для подготовке к сдаче SCJP экзамена.
Algorithms in Java (Алгоритмы на Java)
Robert Sedgewick (Роберт Седжвик)
Книга для того, чтобы попрактиковаться на задачках, набить руку в программировании и прокачать мозг.
Однако одного чтения книг недостаточно. «Главное побыстрее выучить основы и искать работу стажера или Juniora, а там уже знания будут накапливаться по экспоненте, если человек не ленивый, конечно. Я начал программировать, когда действительно клюнул петух в одно место — поставили уже на работе конкретную задачу и дали сроки. На работу попал Junior’ом по устному собеседованию, считаю что повезло и мне сделали большое одолжение» — говорит Дмитрий Фатеев, Senior Java Developer в Luxoft Russia.
А в полной мере освоить Java можно, записавшись на профессию «Программист Java».
Любому программисту, который ступает на IT-дорожку, нужны книги. Кто-то только начинает и ищет с чего начать изучать язык, другие в поисках литературы в конкретных направлениях. В этой статье будут представлено несколько книг разного уровня, от начального уровня до узких специализаций. Надеемся, что те, кто будет читать этот материал, найдут для себя что-то интересное.
Java для чайников

Именно с нее рекомендуем начать. Тут все просто и доступно разъясняется про язык, что это, с чем его едят и т.д. Читается быстро и легко. В принципе, прочитав материал, вы сможете определиться, нравится вам Java или стоит поискать что-то другое. Практики здесь не очень много, на справочник книга тоже слабо похожа. Так что эта литература – своеобразное введение к Java.
Head First Java

Пожалуй, одна из самых простых книг, которая есть для первоначального изучения Java. И отзывы многих программистов, начинающих и более опытных, прямое тому подтверждение. Эта книга именно для старта в познании Java. Очень простое изложение, легкий язык, воспринимается текст приятно. Многие моменты поданы поверхностно, но для новичков в самый раз. В книге много иллюстраций и примеров с комментариями.
Для более опытных программистов книга покажется слегка раздутой, но на них Head First Java и не рассчитана.
Java 8. Руководство для начинающих

Продолжая тему о книгах для новичков. Герберт Шилдт шел более традиционным способом написания, а потому книга больше напоминает расширенный перевод с дополнениями документацию с большим количеством примеров. Но есть небольшой недостаток: автор иногда начинает очень и очень подробно расписывать что-то и при этом некоторые сложные моменты проскакивает мимолетом, нагружая еще сверху и задачкой. Задачки – это круто, но надо бы и теорию давать в должном объеме.
Книга хороша, но иногда придется искать дополнительную информацию по конкретным примерам и темам.
Java для начинающих. Объектно-ориентированный подход

В написании книги участвовали квалифицированные преподаватели, так что материал подан качественно. Справочник познакомит вас со средой разработки, проведет вас через ООП и основам Java. Все это идет рядом с подробными примерами кода, сравнениями.
Отсюда вы почерпните знания не только основ, но и элементы программирования более высокого уровня. Да еще есть практический раздел, где можно опробовать приобретенные навыки.
Java SE 9. Базовый курс

Учебник авторства Кея Хорстманна, который написал несколько очень известных работ по Java. В книге немало теории, но упор больше сделан на практические занятия. Темы разбиты на небольшие блоки с упражнениями на усвояемость.
Материал подробный, хорошо подан, тут же идут упражнения. Что еще надо для хорошего самоучителя?
Java. Библиотека профессионала

Еще одна книга от Хорстманна. На сей раз именно теория. На название не смотрите: учебник отлично пойдет для новичков, основы изложены на должном уровне. Охват тем очень широк: от синтаксиса до многопоточного написания кода, локализации. Стоит отметить хорошую структурность и последовательность. Отличная книга, которая станет помощником и для новичков и для профессионалов.
Но есть и минусы: нет практики, русскоязычный перевод с косяками, нацелена на Java 8.
Head First. Паттерны проектирования

А это уже продолжение Head First Java для тех, кто уже немного шарит и готов к самостоятельному плаванию. В этой книге практикующие программисты смогут найти шаблоны, которые уже опробованы в работе, удобные и функциональные. Представленные решения отлично подходят к различному ПО.
Java. Эффективное программирование

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

Достаточно старый учебник, который не потерял своей актуальности и сегодня. Здесь расширите и углубите свои знания по проектированию баз данных. Книга почти одинаково будет полезна и для новичков, и для работающих программистов.
Справочник по производительности Java

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

В книге не очень много алгоритмов и структур, но то, что есть – подано просто на ура. Все интересно, познавательно и полезно. В учебнике толково объясняют и соотносят старые понятия по программированию алгоритмов с новыми. Выглядит необычно, заставляя старые приемы играть по-новому. Опытным программистам, вероятно, не очень интересна книга будет, а вот начинающим должна понравиться.
Чистая архитектура. Искусство разработки программного обеспечения

Название говорит само за себя – вы будете учиться архитектурам кода. В процессе вы узнаете о плюсах и минусах разных архитектур ПО. Но упоминать только эту книгу по архитектуре будет неправильно, поэтому рекомендую, основываясь на мнении программистов, обратить внимание на книги «Чистый код» и «Идеальный программист».
Вполне допускаем, что немало читателей начнет негодовать по поводу отсутствия тех или иных трудов.
Будем рады, если вы подскажите несколько хороших и полезных книг в комментариях для начинающих программистов.





