Последнее изменение: 1 сентября 2007г.

Литература

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

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

Кен Арнольд, Джеймс Гослинг. Язык программирования Java. ISBN: 5-8459-0215-0

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

Хорстманн. Java 2. Том 1. Основы. ISBN: 5-8459-0385-8

Несмотря на объем, эта книга почти не содержит воды. Она также предназначена для начинающих. В ней рассматриваются совсем разные аспекты языка – от использования assert (книга базируется на версии Java 1.4, насколько я помню) до регулярных выражений и NIO.

Дэвид Флэнаган. Java в примерах. Справочник. ISBN: 5-93286-042-1

Признаться, я недолюбливаю книги из серии "в примерах". Как правило, они написаны совсем уж для чайников, дабы создать у них ощущение знания технологии. Однако, эта книга, к счастью, другого сорта. Вообще я автора знаю очень давно, его книга "Java in Nutshell", посвященная еще Java 1.1, в свое время очень была мне полезной. Эта же книга, "Java в примерах", содержит множество законченных реализаций отдельных фрагментов технологий, будь то RMI-вызовы, доступ к базам через JDBC и т.п. Эти примера довольно просты для понимания, и их можно легко модифицировать.

Теперь о книгах для более продвинутых разработчиков.

Хорстманн. Java 2. Том 2. Тонкости программирования. ISBN: 5-8459-0345-9

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

Брюс Эккель. Философия Java. ISBN: 5-88782-105-1

Я считаю эту книгу классической. Из списка книг, которые должен прочесть каждый серьезный разработчик. Книга именно о философии языка, о его устройстве, его подходе к описанию мира и решению задач. Книга эта очень глубокая и полезная. Очень рекомендую ее для глубокого понимания, что такое Java. Новичкам она будет, скорее всего, просто бесполезна.

Джошуа Блох. Java. Эффективное программирование. ISBN: 5-85582-169-2

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

В книге 57 слабо связанных друг с другом небольших статей, иллюстрирующих тонкости Java. Ее мог написать ТОЛЬКО практик, ибо знание этих тонкостей может появиться исключительно с опытом, причем с немалым. Несмотря на 9 лет работы с Java я для себя в этой книге нашел несколько моментов, о которых раньше не задумывался.

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

Стивен Стелтинг, Олав Маассен. Применение шаблонов Java. ISBN: 5-8459-0339-4

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

Я намеренно не рекомендую классическую книгу о шаблонах, в которой вообще и появилось понятие "шаблон проектирования", а именно – Гамма, Хелм, Джонсон, Влиссидес. Приемы объектно-ориентированного проектирования. Патерны проектирования. ISBN: 5-2772-00355-1. Не рекомендую ее я вот по какой причине. Возможно, в оригинале она и хороша. Но переводчики приложили все усилия к тому, чтобы испоганить ее до невозможности. Даже зная, о чем идет речь, я не всегда понимаю эту книгу. Достаточно упомянуть хотя бы тот факт, что они умудрились перевести названия шаблонов, которые являются техническими терминами и переводу не подлежат.

Эрик Аллен. Типичные ошибки проектирования. ISBN: 5-88782-304-6

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

Брюс Тейт. Горький вкус Java. ISBN: 5-88782-323-2

Эта книга аналогична предыдущей, с той только разницей, что в ней собраны ошибки программирования с использованием J2EE – сервлетов, JSP, EJB и т.п.

* * *

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